Skip to content

Установка и обновление платформы по iPXE

Установка дистрибутива может осуществляться на bare-metal среду с помощью сервиса PXE. Для этого достаточно скачать необходимые ресурсы установки (например, с помощью генератора образов) и настроить хосты для загрузки по PXE из сети (обычно это делается путем установки порядка загрузки в BIOS).

Конфигурация стенда

Стенд включает сервер сетевой загрузки, master-ноду и worker-ноду.

Характеристики машин, использованных при составлении инструкции:

  • CPU: 2 ядра
  • RAM: 3072 МБ
  • Диск: 25 ГБ

Требования:

  • Все машины должны находиться в одной сети.
  • В сети не должно быть других устройств, выполняющих функции DHCP-сервера.
  • Сервер сетевой загрузки должен иметь доступ к сети Интернет, иначе необходимо заранее скачать требующиеся образы и разместить их на севере локально.

Настройка сервера сетевой загрузки

Ниже описан процесс настройки сервера сетевой загрузки на базе JeOS.

Скачивание ISO-образа

Загрузите ISO-образ JeOS:

console
# wget https://nightly.altlinux.org/unstable/x86_64/tested/regular-jeos-systemd-latest-x86_64.iso \
-O /var/lib/libvirt/images/metal-amd64.iso

Установка системы

Добавьте ISO-образ в виртуальную машину net-install-server и выполните установку операционной системы.

Настройка системы

После установки системы войдите в систему под учетной записью root, установите пакет dnsmasq и выполните настройку DHCP командой dnsmasq. Для параметра --interface в приведенном примере изспользуется локальная сеть localnetbr0. Если у сервера сетевой загрузки нет доступа в интернет, скачайте и разместите локально iPXE-script, kernel и initramfs:

console
# dnsmasq --log-queries --interface=localnetbr0 --listen-address=172.16.2.1 --bind-interface --no-daemon --dhcp-range=172.16.2.2,172.16.2.254 --dhcp-option=option:ntp-server,172.16.2.1 --enable-tftp --tftp-root=/srv/tftp --dhcp-option=option:bootfile-name,talos.ipxe

Иначе, если доступ в интернет у сервера сетевой загрузки не ограничен, то можно указать просто пути к необходимым ресурсам в сети:

console
# dnsmasq --log-queries --interface=localnetbr0 --listen-address=172.16.2.1 --bind-interface --no-daemon --dhcp-range=172.16.2.2,172.16.2.254 --dhcp-option=option:ntp-server,172.16.2.1 --dhcp-option=option:bootfile-name,https://factory.altlinux.space/pxe/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba/<VERSION>/<NAME>
console
# cat /srv/tftp/talos.ipxe
#!ipxe

imgfree
kernel https://factory.altlinux.space/image/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba/v11.0/alt-orchestra-11.0-kernel-amd64 talos.platform=metal console=tty0 init_on_alloc=1 slab_nomerge pti=on consoleblank=0 nvme_core.io_timeout=4294967295 printk.devkmsg=on ima_template=ima-ng ima_appraise=fix ima_hash=sha512 selinux=1
initrd https://factory.altlinux.space/image/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba/v11.0/alt-orchestra-11.0-initramfs-amd64.xz
boot

Либо по аналогии отредактируйте конфигурационный файл данной службы /etc/dnsmasq.conf и перезапустите службу.

console
# systemctl enable --now dnsmasq

Загрузка артефактов

Перейдите в учетную запись обычного пользователя (например, admin):

console
# su - admin

Затем загрузите необходимые артефакты для указанной версии:

console
$ talos-img --get <VERSION>

Проверка установки

Убедитесь, что артефакты загружены корректно, выполнив команду:

console
$ talos-img

Начальная загрузка с iPXE

После завершения настройки сервера сетевой загрузки выполните перезагрузку master- и worker-нод. При корректной конфигурации сетевой загрузки система должна запуститься автоматически.

Далее следуйте инструкциям, аналогичным процессу установки с использованием ISO-образа.

Примечание: Для успешного выполнения скриптов необходимо обеспечить доступность master- и worker-нод по сети. В некоторых случаях может потребоваться выполнение этих скриптов с сервера сетевой загрузки.

Конфигурация сетевого интерфейса с помощью netboot-talos

Альтернативой является использование пакета netboot-talos с подготовленным заранее аналогичным командным функционалом. Данный пакет находится на beta-поддержке и доступен только в пакетном репозитории ветки sisyphus.

console
# apt-get update
# apt-get install -y netboot-talos

Определите сетевой интерфейс, используемый для связи с другими машинами в стенде (в данном примере — ens3). Выполните команду для настройки сетевой загрузки:

console
# netboot-setup --iface=ens3 --talos

Опубликовано под лицензией GPL-3.0+. Содержание доступно по лицензии CC BY-SA 4.0, если не указано иное. Разработано участниками ALT Orchestra.