Сетевая загрузка
Цель:
Получение навыков по работе с сетевой загрузкой операционной системы
Задачи:
- Подключится к виртуальной машине на облачной платформе СПбГУТ
- Подготовить образ операционной системы Ubuntu
- Cкомпилировать загрузчик IPXE
- Настроить dnsmasq
- Снять дамп траффика во время установки ОС по сети
- Установить операционную систему, с помощью сетевой загрузки
Задание 1. Подготовка образа
В первую очередь необходимо скачать минимальный образ Ubuntu 20.04 Server на виртуальный сервер
s3cmd get s3://lab5/ubuntu-20.04-server.iso ~/
После этого необходимо смонтировать образ в папку /mnt/
sudo mount ubuntu-20.04-server.iso /mnt/
Создайте папку, где в дальнейшем мы разместим образ ubuntu
sudo mkdir /var/www/deploy/ubuntu
Скопируйте все файлы из папки /mnt/
в папку /var/www/deploy/ubuntu
sudo cp -Rf /mnt/* /var/www/deploy/ubuntu
Также необходимо перенести и сам образ Ubuntu в папку /var/www/deploy/ubuntu
sudo cp ubuntu-20.04-server.iso /var/www/deploy/ubuntu
Измените владельца директории и его все его содержимого на Apache
sudo chown -R apache:apache /var/www/deploy
Задание 2. Подготовка загрузчика IPXE
IPXE - это свободная реализация программного обеспечения для начальной загрузки по сети. В первую очередь устанавливаем все необходимые пакеты для скачивания и сборки пакета
sudo yum install git-core gcc binutils make perl syslinux xz-devel
Перейдите в домашнюю директорию
cd ~
Скопируете репозиторий ipxe c официального git репозитория
git clone https://gitlab.resds.ru/tarabanov.if/ipxe.git
Перейдите в директорию с исходным кодом
cd ipxe/src/
Включаем поддержку сетевого хранилища
sed -i 's/#undef\tDOWNLOAD_PROTO_NFS/#define\tDOWNLOAD_PROTO_NFS/' config/general.h
Также нам необходим добавить поддержку команды Ping
sed -i 's/\/\/#define\ PING_CMD/#define\ PING_CMD/' config/general.h
sed -i 's/\/\/#define\ IPSTAT_CMD/#define\ IPSTAT_CMD/' config/general.h
sed -i 's/\/\/#define\ REBOOT_CMD/#define\ REBOOT_CMD/' config/general.h
sed -i 's/\/\/#define\ POWEROFF/#define\ POWEROFF/' config/general.h
Создайте встроенный скрипт embed.ipxe
vi embed.ipxe
Заполните скрипт такой конфигураций
#!ipxe
dhcp
chain http://${next-server}/boot.ipxe || shell
Не допускается пустая строка сверху
Скомпилируйте образ загрузчика IPXE
make bin-x86_64-efi/ipxe.efi EMBED=embed.ipxe
Скопируйте, скомпилированный загрузчик в папку /var/lib/tftpboot/
sudo cp bin-x86_64-efi/ipxe.efi /var/lib/tftpboot/
Дальше необходимо подготовить скачать загрузочное меню
s3cmd get s3://lab5/boot.ipxe ~/boot.ipxe
sudo cp ~/boot.ipxe /var/www/deploy/boot.ipxe
sudo chown -R apache:apache /var/www/deploy/
Задание 3. Настройка DNSMASQ
Установите пакет dnsmasq
sudo yum install dnsmasq
Запустите демон dnsmasq
sudo systemctl start dnsmasq
Добавьте в автозагрузку
sudo systemctl enable dnsmasq
Измените конфигурацию dnsmasq /etc/dnsmasq.conf
dhcp-range=192.168.0.15,192.168.0.15,12h
dhcp-option=option:router,192.168.0.1
dhcp-boot=ipxe.efi,192.168.0.10
enable-tftp
tftp-root=/var/lib/tftpboot/
log-queries
conf-dir=/etc/dnsmasq.d
Перезапустите dnsmasq
sudo systemctl restart dnsmasq
Для проверки состояния можно воспользоваться командой
sudo systemctl status dnsmasq
Задание 4. Развертывания Ubuntu
Для дальнейшей работы нам необходим в инстанс labnode2
- Перед вами после перехода в консоль появится UEFI shell в нем необходимо вписать команду
exit
- После этого в меню вам необходимо выбрать Boot Manager, после этого выбрать вариант загрузки в виде
UEFI PXEv4
, дальше будет происходить получения ранее созданного ipxe - В меню загрузчика необходимо выбрать образ ubuntu, после нажатия
Enter
, будет загружен live образ Ubuntu с помощью которого в дальнейшем мы будет производить установку системы. На самом деле перед вами установочное меню операционной системы ubuntu 20 в серверном исполнении, и возможностью установки различных сервисов. В данной работе установка подразумевает под собой установку параметров в режиме по умолчанию. Для навигации по установочному меню используются кнопки клавиатуры:вверх-вниз
– для перемещения фокуса выделения по пунктам меню,enter
– для нажатия на необходимый пункт,пробел
– для выбора пунктов в меню со списком выбора,Tab
– для переключения между группами пунктов выбора. - В первом пункте по умолчанию выбран язык English – лучше его изменить на русский, для
избегания проблем с локализацией. Для этого переместить фокус выделения на русский язык и
нажать –
enter
. - В следующем пункте выберете вариант продолжения установки без обновления загрузчика
- В следующем меню оставить английскую раскладку клавиатуры и нажать готово
- В следующем меню – сетевые соединения – оставить все параметры по умолчанию и нажать
готово
- Меню ввода адреса прокси сервера оставить пустым и нажать – готово
- В меню выбора зеркала для скачивания архивов ничего не менять и нажать готово
- В меню настройки дисковых устройств выбрать пункт собственной разметки диска, и если он и выбран – нажать готово
Вы должны разметить диски по образцу изображения снизу
В итоге у вас должно получиться разметка как на скриншоте ниже
Когда вы убедитесь, что все сделали правильно нажмите «Готово»
В следующем меню заполнить все поля имени пользователя и пароля,в качестве имени пользователя и пароля можно использовать:
labuser
labpass1!
В новом меню включите установку сервера OpenSSH
и нажмите готово
В следующем меню, сразу нажмите готов
Дождитесь установки операционной системы и с помощью нажатия Cancel update and reboot
, произойдет перезагрузка системы, введите свой логин и пароль установленный в прошлых пунктах и попробуйте проверить работу сети с помощью команды
ping 192.168.0.10