9.7 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 конвертации виртуальной машины в шаблон. Из шаблона копия создаётся на порядки быстрее по времени, чем при полном клонировании. Следуйте следующим шагам:
- настройте машину с общими для всех копий настройками,
- преобразуйте её в шаблон (template),
- создайте клоны из шаблона и донастройте, если необходимо,
- сделайте snapshot с именем
initial
основных машин, чтобы вы и студенты имели возможность отката до рабочего состояния.
Список шаблонов виртуальных машин:
stud0-tabularasa-template
stud0-template
stud0-net-[1-2]-template
stud0-troublesome-[1-6]-template
(TODO Написать скрипт для создания шаблонов.) (TODO Написать скрипт для создания учётки и виртуалок для студента на основе шаблонов.)
При наличии нескольких дисков рекомендуется RAID оптимизирующий производительность. Неправильный raid или медленный тип диска может привести к существенному замедлению работы во время установки ОС или пакетов.
1. Подготовка виртуальной машины к занятиям 01
, 02
, 04
, 05
, 06
, 07
, 08
, 09
, 10
, 11
.
Создайте 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 на каждую. Установите пакеты:
apt install man-db ssh vim tree jq lsof git mc fail2ban
Удалите пакет ifupdown
, так как настройка сети будет производится средствами systemd-networkd
.
apt remove ifupdown
Пробросьте порты: 22
, 80
, 443
.
Организуйте удалённый доступ к машинам по ssh
ключу. Запретите доступ по ssh через пароль.
2. Подготовка виртуальной машины к занятиям 00
.
Данные виртуальные машины предназначены для тренировки в установке debian в уроке 00
.
До начала занятий создайте 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
.
3. Подготовка виртуальной машины к занятиям 03
.
Данные виртуальные машины предназначены для настройки сетевого интерфейса в конфигурациях systemd
в уроке 03
. Студентам необходимо работать в индивидуальных vlan для настройки по DHCP и снижению вероятности ошибок при назначении статического адреса.
Создайте N
vlan без доступа в интернет. Например, bond0.X
и мост vmbrX
с параметрами:
- Bridge ports:
bond0.X
, - VLAN aware:
false
.
Создайте N
виртуальных машин studX-net1
и N
виртуальных машин studX-net2
для vmbrX
. Удалите пакет ifupdown
.
4. Подготовка виртуальной машины к занятиям 12
.
Данные виртуальные
Создайте 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
5. Подготовка к экзамену
До начала занятий создайте N виртуальных машин со следующими характеристиками:
- 1 сокет с 4 ядрами,
- 8 Гб оперативной памяти,
- 6 Гб дискового пространства,
- сетевой интерфейс vmbr499.
Подключите cdrom с образом debian-11.4.0-amd64-netinst.iso
.