Установка Rosa по сети (PXE) в QEMU (Virt-Manager)

Материал из Rosalab Wiki
Перейти к: навигация, поиск

Настройка сервера PXE

Для установки Rosa Linux по сети (PXE) в среде Qemu нам понадобится:

  1. Сервер Rosa
  2. Образ Rosa Linux, который будет ставится на клиенте

Ставим стандартными шагами Rosa сервер. Для примера, при установке сервера создадим пользовтеля user.

Загружаем сервер, входим под user, и скачиваем (в нашем примере) образ ROSA_2021.1_GNOME_X86_64_46122.iso в домашнюю папку пользователя.

Далее нам надо установить несколько компонентов:

dnf install tftp-server syslinux

Сеть на сервере в Qemu должна быть за NAT. Обычно это настраивается в параметрах Qemu сервера.

Qpxe1.png

Проверяем ip адрес сервера.

ip -br a

Сервер должен получить ip адреса из диапазона 192.168.122.0/24

Если это так, прописываем , через nmcli статический ip адрес для нашего сервера:

nmcli connection modify enp1s0 connection.autoconnect yes ipv4.method manual ipv4.dns 192.168.122.1 ipv4.dns-search mydomen.dom ipv4.addresses 192.168.122.2/24 ipv4.gateway 192.168.122.1

Перезапускаем сервер или рестартим сеть.

Qpxe2.png

От пользователя user делаем следующее:

mkdir -p "~/web"                                                      (создаем папку для веб-сервера)
cd "~/web"                                                            (переходим в эту папку)
mkdir -p ISO                                                          (создаем папку для ISO-образа)
sudo mount -o loop "~/ROSA_2021.1_GNOME_X86_64_46122.iso" "~/web/ISO" (монтируем наш ISO образ в папку ~/web/ISO)

где "~/ROSA_2021.1_GNOME_X86_64_46122.iso" - это путь , куда мы скачали наш установочный образ iso.

Для автоматической установки Rosa Linux мы будем использовать kickstart сценарии для Анаконды. По kickstart сценариям, Анаконда в автоматическом режиме ставит систему.

Создаем файл кикстарт сценария:

nano ~/web/a.ks

Вписываем в него следующее:

cmdline
# https://bugzilla.redhat.com/show_bug.cgi?id=1874434
liveimg --url=file:///dev/mapper/live-base

# System language
lang ru_RU.UTF-8
# Keyboard layouts
keyboard --xlayouts=us,ru --switch=grp:alt_shift_toggle
# Network information
network  --hostname=localhost.localdomain
# System services
services --enabled="chronyd"

autopart
# Partition clearing information
clearpart --all --initlabel
# System timezone
timezone Europe/Moscow --utc
# Passwords
rootpw 123456
user --groups=wheel,users --name=rosa --password=123456
reboot --eject

Сохраняем и выходим. У нас получится, что кискстарт сценарий лежит в ~/web/a.ks

Далее нам надо настроить TFTP сервер.

Копируем в папку сервера TFTP компоненты первоначального загрузчика:

( cd /usr/share/syslinux && cp -v menu.c32 pxelinux.0 ldlinux.c32 libutil.c32 /var/lib/tftpboot/ )

Копируем минимальную версию ОС из ISO-образа в папку TFTP-сервера (от пользователя user, не root):

( cd "~/web/ISO/isolinux" ; sudo cp -v initrd0.img vmlinuz0 /var/lib/tftpboot/ )

Запускаем и добавляем в автозагрузку TFTP-сервер:

systemctl enable --now tftp.service

В предустановленном на образах ROSA языке python есть простой веб-сервер, используем его для PXE-установки.

Запускаем python web сервер (от user:

cd ~/web
python3 -m http.server (запускаем http-сервер из папки)

Qpxe11.png

Сервер будет работать по вашему ip адресу 192.168.122.2 на порту 8000

На это этапе настройка PXE сервера закончена.

Настрокйка iPXE клиента

Открываем Virt-Manager, создаем новую виртуалку:

Новая виртуалка запустится автоматом. Выключаем ее. Заходим в настройки виртуалки, и проверяем следующее:

Qpxe8.png

Сеть должна быть за NAT'ом.

Далее идем в Параметры загрузки. Ставим галочку, напротив нашего "NIC:57:06:7a" сетевого адаптера. И "стрелкой вверх" переводим его в верхнее положение.

Qpxe9.png

Тем самым мы включили загрузку виртуалки (нашего клиента) по сети. Первым, будет идти загрузка по сети.

Сохраняем все наши переделки. И запускаем клиента.

Qpxe10.png

Когда появится меню iPXE, быстро нажимаем Ctrl+B

У нас будет консоль iPXE. Вводим туда следующие данные:

ifconf

Это поднимет сеть, и адаптер получит ip адрес из диапазона 192.168.122.0/24.

Далее:

kernel http://192.168.122.2:8000/ISO/vmlinuz0
initrd http://192.168.122.2:8000/ISO/initrd0.img
imgargs vmlinuz0 systemd.unit=anaconda.target root=live:http://192.168.122.2:8000/ISO/LiveOS/squashfs.img inst.text inst.ks=http://192.168.122.2:8000/a.ks
boot

Qpxe12.png

где команда: imgargs это параметры ядра для загрузки

Установка Rosa Linux

После команды boot начнется установка системы по кистарт сценарию в текстовом режиме.

Надо ждать, пока установится. После установки система сама перезагрузится.

Qpxe13.png

Установка прошла успешно, новая система установилась и загрузилась.