You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

9.0 KiB

Руководство для преподавателя

Подготовка среды проведения лабораторных работ

Лабораторные проводятся на виртуальных машинах в системе виртуализации Proxmox. Задания выкладываются в публичный git репозиторий. Для получения новых заданий студенты первоначально скачивают их по ссылке командой git clone, а затем в начале каждого урок обновляют их командой git pull.

Будем считать, что N - количество студентов умноженное на 1.5, округлённое в большую сторону. X - идентификатор студента от 1 до N.

Создайте N пользователей в Proxmox с именами studX (stud1, stud2, ...). Используйте Realm "Proxmox VE authentication server".

Загрузите образ debian-11.4.0-amd64-netinst.iso в Proxmox хранилище.

Для массового создания виртуальных машин рекомендуется использовать возможность Proxmox конвертации виртуальной машины в шаблон. Из шаблона копия создаётся на порядки быстрее по времени, чем при полном клонировании. Следуйте следующим шагам:

  1. настройте машину с общими для всех копий настройками,
  2. преобразуйте её в шаблон (template),
  3. создайте клоны из шаблона и донастройте, если необходимо,
  4. сделайте snapshot основных машин, чтобы вы и студенты имели возможность отката до рабочего состояния.

При наличии нескольких дисков рекомендуется RAID оптимизирующий производительность. Неправильный raid или медленный тип диска может привести к существенному замедлению работы во время установки ОС или пакетов.

Основные виртуальные машины

Данные виртуальные машины предназначены для всех заданий, исключая:

  • 00_os_installation,
  • 03_networking,
  • 12_troubleshooting,
  • final_exam.

Создайте vlan с доступом в интернет. Например, bond0.499 и мост vmbr499 с параметрами:

  • Bridge ports: bond0.499,
  • VLAN aware: false,
  • IPv4/CIDR: 10.160.179.254/24,
  • Gateway (IPv4): 10.160.179.1.

До начала занятий создайте N виртуальных машин со следующими характеристиками:

  • 1 сокет с 4 ядрами,
  • 8 Гб оперативной памяти,
  • 16 Гб дискового пространства.

Каждой виртуальной машине назначьте статический IPv4 адрес 10.160.179.10 + X (10.160.179.11, 10.160.179.12, ...). Используйте инструкцию из задания про настройку сети данного учебного модуля.

Установите минимальный дистрибутив debian на каждую. Установите пакеты:

  • man-db,
  • ssh,
  • vim,
  • tree,
  • jq,
  • lsof.

Удалите пакет ifupdown.

Пробросьте порты: 22, 80, 443.

Организуйте удалённый доступ к машинам по ssh ключу.

Подготовка к занятию "История операционных систем. Установка Debian"

Данные виртуальные машины предназначены для тренировки в установке debian.

До начала занятий создайте N виртуальных машин со следующими характеристиками:

  • 1 сокет с 4 ядрами,
  • 8 Гб оперативной памяти,
  • 32 Гб дискового пространства,
  • сетевой интерфейс vmbr499 с доступом в интернет.

Студенты могут назначить статический IPv4: 10.160.179.10 + N + X, Gateway (IPv4): 10.160.179.1.

Подключите cdrom с образом debian-11.4.0-amd64-netinst.iso.

Подготовка к занятию "Настройка сетевого подключения"

Данные виртуальные машины предназначены для настройки сетевого интерфейса в конфигурациях systemd. Студентам необходимо работать в индивидуальных vlan для настройки по DHCP и снижению вероятности ошибок при назначении статического адреса.

Создайте N vlan без доступа в интернет. Например, bond0.X и мост vmbrX с параметрами:

  • Bridge ports: bond0.X,
  • VLAN aware: false.

Создайте N виртуальных машин studX-net1 и N виртуальных машин studX-net2 для vmbrX. Удалите пакет ifupdown.

Подготовка к занятию "Поиск и устранение неисправностей"

Данные виртуальные

Создайте N vlan без доступа в интернет: bond0.N+X и мост vmbrN+X с параметрами:

  • Bridge ports: bond0.N+X,
  • VLAN aware: false.

Создайте N виртуальных машин troublesome-gwX, играющих роль шлюза для vmbrN+X. Установите минимальный образ debian. Удалите пакет ifupdown. Каждой виртуальной машине назначьте добавьте два сетевых интерфейса. Для первого интерфейса назначьте IPv4 адрес 10.160.179.100 + X (10.160.179.101, 10.160.179.102, ...). Для второго интерфейса назначьте IPv4 адрес 192.168.0.1.

Создайте виртуальную машину troublesome. Установите минимальный образ debian. Скопируйте скрипты, приведенные ниже в /sbin/. Превратите машину в шаблон Proxmox.

Для каждого из 6 заданий создайте виртуальную машину из шаблона troublesome: troublesomeX-task1, troublesomeX-task2, ..., troublesomeX-task6. Каждой виртуальной машине назначьте статический IPv4 адрес 192.168.0.1 + номер задания. Для 6 задания настройте беспарольный доступ по ssh от пользователя stud к пользователю mike. Команда ssh localhost -l mike должна отработать без ввода пароля. Внесите неисправности, активируя скрипты. Превратите машины в шаблоны.

Создайте N виртуальных машин для каждого задания из шаблонов: troublesomeX-task1, troublesomeX-task2, ..., troublesomeX-task6.

Скрипты для внесения неисправностей для заданий.

1.

#!/bin/bash
# task 1
systemctl disable systemd-networkd
systemctl stop systemd-networkd

2.

#!/bin/bash
# task 2
sed 's/^Gateway=.*$//' -i /etc/systemd/network/ens18.network
networkctl reload

3.

#!/bin/bash
# task 3
sed 's/DNS/#DNS/' -i /etc/systemd/resolved.conf
systemctl restart systemd-resolved

4.

#!/bin/bash
# task 4
sed 's/192\.168/172\.16/' -i /etc/systemd/network/ens18.network
networkctl reload

5.

#!/bin/bash
# task 5 
# ping gateway
ping 192.168.0.1 -c 1 2> /dev/null 1> /dev/null
gateway_mac=$(arp -n | grep 192.168.0.1 | awk '{ print $3 }')
ip link set address "$(gateway_mac)" dev ens18

Активируйте следующий сервис:

# /etc/systemd/system/network-problem.service
[Unit]
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/task5.sh

[Install]
WantedBy=multi-user.target

6.

#!/bin/bash
# task 6
chmod 777 /home/stud/.ssh

Подготовка к экзамену

До начала занятий создайте N виртуальных машин со следующими характеристиками:

  • 1 сокет с 4 ядрами,
  • 8 Гб оперативной памяти,
  • 6 Гб дискового пространства,
  • сетевой интерфейс vmbr499.

Подключите cdrom с образом debian-11.4.0-amd64-netinst.iso.