Перейти к основному контенту

Сетевая загрузка

Цель:

Получение навыков по работе с сетевой загрузкой операционной системы

Задачи:

  1. Подключится к виртуальной машине на облачной платформе СПбГУТ
  2. Подготовить образ операционной системы Ubuntu
  3. скомпилировать загрузчик IPXE
  4. Настроить dnsmasq
  5. Установить операционную систему, с помощью сетевой загрузки

Задание 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

  1. Перед вами после перехода в консоль появится UEFI shell в нем необходимо вписать команду exit
  2. После этого в меню вам необходимо выбрать Boot Manager, после этого выбрать вариант загрузки в виде UEFI PXEv4, дальше будет происходить получения ранее созданного ipxe
  3. В меню загрузчика необходимо выбрать образ ubuntu, после нажатия Enter, будет загружен live образ Ubuntu с помощью которого в дальнейшем мы будет производить установку системы. На самом деле перед вами установочное меню операционной системы ubuntu 20 в серверном исполнении, и возможностью установки различных сервисов. В данной работе установка подразумевает под собой установку параметров в режиме по умолчанию. Для навигации по установочному меню используются кнопки клавиатуры: вверх-вниз– для перемещения фокуса выделения по пунктам меню, enter – для нажатия на необходимый пункт, пробел – для выбора пунктов в меню со списком выбора, Tab – для переключения между группами пунктов выбора.
  4. В первом пункте по умолчанию выбран язык English – лучше его изменить на русский, для избегания проблем с локализацией. Для этого переместить фокус выделения на русский язык и нажать – enter.
  5. В следующем пункте выберете вариант продолжения установки без обновления загрузчика
  6. В следующем меню оставить английскую раскладку клавиатуры и нажать готово
  7. В следующем меню – сетевые соединения – оставить все параметры по умолчанию и нажать готово
  8. Меню ввода адреса прокси сервера оставить пустым и нажать – готово
  9. В меню выбора зеркала для скачивания архивов ничего не менять и нажать готово
  10. В меню настройки дисковых устройств выбрать пункт собственной разметки диска, и если он и выбран – нажать готово

Рисунок2.png

Вы должны разметить диски по образцу изображения снизу

В итоге у вас должно получиться разметка как на скриншоте ниже

Рисунок3.png

Когда вы убедитесь, что все сделали правильно нажмите «Готово» В следующем меню заполнить все поля имени пользователя и пароля,в качестве имени пользователя и пароля можно использовать: labuser labpass1!

Рисунок4.png

В новом меню включите установку сервера OpenSSH и нажмите готово

Рисунок5.png

В следующем меню, сразу нажмите готов Дождитесь установки операционной системы и с помощью нажатия Cancel update and reboot, произойдет перезагрузка системы, введите свой логин и пароль установленный в прошлых пунктах и попробуйте проверить работу сети с помощью команды

ping 192.168.0.10