Настройка модуля установки ОС
| В комплект поставки модуля установки ОС входит предустановленный пример конфигурации, позволяющий выполнять установку ОС Astra SE 1.7.5.9 с использованием медианосителя. Наименование способа развертывания примера — «Установка Astra Linux 1.7.5.9 c загрузочного образа». |
Чтобы настроить модуль установки ОС, выполните шаги:
-
Создайте дистрибутив ОС, используя группу API-методов
/v1/installation_distros.Внешний источник файлов установочного ядра ОС и временной файловой системы ( initrd) должен быть доступен по протоколу HTTP для устройств, на которые будет осуществляться установка ОС. -
Создайте шаблоны конфигурационных файлов, используя группу API-методов
/v1/templates:-
Шаблон, содержащий iPXE-скрипт, который инициализирует сетевой интерфейс устройства и обращается к модулю установки ОС за iPXE-скриптом для конкретного устройства, указывая его MAC-адрес.
Для создания укажите уникальное системное имя шаблона в url-ссылке метода (
/v1/boot_loaders/ipxe/config?templateSlug={templateSlug}).URL-cсылка на скрипт start.ipxeуказывается в конфигурации опций DHCP-сервера или DHCP-proxy. Дальнейший переход между iPXE-инструкциями происходит внутри iPXE-инструкций.Пример скрипта начального конфигурационного файла программы-загрузчика
start-ipxe:#!ipxe isset ${ipxe-osmax-provisioner} || set ipxe-osmax-provisioner {{ osmax_provisioner_base_url }} :start # Механизм получения IP-адреса. В случае ошибки -- предлагает нажать "s" для запуска командной строки. # Иначе -- начать снова. dhcp && goto next || prompt --key s --timeout 1500 Press "s" for the iPXE command line... && shell || goto start :next # В случае успеха загрузить установочный скрипт с HTTP-сервера. # Формируется ссылка вида http://provisioning.wd2.local/v1/boot_loaders/ipxe/config?mac=xx:xx:xx:xx:xx:xx chain --replace ${ipxe-osmax-provisioner}/v1/boot_loaders/ipxe/config?mac=${net0/mac:hex}Пример скрипта начального конфигурационного файла программы-загрузчика
start-ipxeс доверенной установкой:#!ipxe isset ${ipxe-osmax-provisioner} || set ipxe-osmax-provisioner {{ osmax_provisioner_base_url }} :start # Механизм получения IP-адреса. В случае ошибки -- предлагает нажать "s" для запуска командной строки. # Иначе -- начать снова. dhcp && goto next || prompt --key s --timeout 1500 Press "s" for the iPXE command line... && shell || goto start :next # В случае успеха загрузить установочный скрипт с HTTPS-сервера. # Формируется ссылка вида https://provisioning.wd2.local/v1/boot_loaders/ipxe/config?mac=xx:xx:xx:xx:xx:xx chain --replace ${ipxe-osmax-provisioner}/v1/boot_loaders/ipxe/config?mac=${net0/mac:hex} -
Шаблон, содержащий скрипт с инструкциями для конкретного устройства.
Пример шаблона скрипта конфигурационного файла программы-загрузчика
boot.ipxe:#!ipxe {% set autoinstallScript = osmax_provisioner_base_url + unattended_install_file_url + '?mac=' %} :startboot echo Booting Astra-linux kernel {{ repository_url }}{{ kernel }} initrd=initrd.gz initrd=preseed.cfg auto-install/enable=true netcfg/choose_interface=auto {{ kernel_options }} initrd {{ repository_url }}{{ initrd }} initrd {{ autoinstallScript }}${netX/mac:hex} preseed.cfg bootГде:
-
${os_distro}— дистрибутив устанавливаемой ОС согласно заданию на установку; -
${repository_url}— url репозитория, в котором размещается установочный дистрибутив, согласно заданию на установку.Пример шаблона скрипта конфигурационного файла программы-загрузчика
boot.ipxeс доверенной установкой:# cat /osmax_provisioner_base_url/https/astra-linux/boot.ipxe #!ipxe {% set autoinstallScript = osmax_provisioner_base_url + unattended_install_file_url + '?mac=' %} :startboot echo Booting Astra-linux - kernel {{ repository_url }}{{ kernel }} initrd=initrd.gz initrd=preseed.cfg auto-install/enable=true netcfg/choose_interface=auto + kernel {{ repository_url }}{{ kernel }} initrd=initrd.gz initrd=preseed.cfg initrd=rootCA.crt initrd=c16a7ee9.0 initrd=debian-archive-keyring.gpg auto-install/enable=true netcfg/choose_interface=auto initrd {{ repository_url }}{{ initrd }} initrd {{ autoinstallScript }}${netX/mac:hex} preseed.cfg + initrd {{ repository_cert_url }}/certs/rootCA.crt /etc/ssl/certs/rootCA.crt + initrd {{ repository_cert_url }}/certs/c16a7ee9.0 /etc/ssl/certs/c16a7ee9.0 + initrd {{ repository_url }}/astra-linux/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-keyring.gpg bootГде дополнительно указываются пути до файлов с сертификатами и ключами.
-
-
Создайте шаблон скрипта пост-установки.
Использование скрипта пост-установки является опциональным. Если вы предполагаете его использовать, загрузите соответствующий ему шаблон и пропишите вызов скрипта пост-установки в шаблоне файла автоответов. -
Создайте шаблон файла автоответов, используя API-метод
POST /v1/templates.Если вы предполагаете использовать скрипт пост-установки, пропишите его вызов в скрипте автоответов. Пример:
# вызов скрипта пост-установки in-target wget {{osmax_provisioner_base_url}}/v1/provisioning_scripts?machineId={{machine_id}} -O /tmp/post_install.sh; \ in-target chmod +x /tmp/post_install.sh; \ in-target /tmp/post_install.sh; \
-
-
Обеспечьте доступность по HTTP-протоколу зеркал репозитория пакетов, планируемых к установке ОС для устройств. Эти зеркала прописаны в файлах автоответов в следующих настройках:
d-i mirror/http/hostname d-i mirror/http/directory
-
Обеспечьте наличие в шаблоне файла автоответов вызовов, обслуживающих регистрацию статуса установки ОС на стороне модуля установки ОС:
# Регистрация старта установки (внутреннее использование) d-i preseed/early_command string wget --method=put --body-data='{"status":"READY_TO_INSTALL"}' --header="content-type: application/json" -O- {{osmax_provisioner_base_url}}/v1/unprovisioned_machines/{{machine_id}}/status # Финальные действия при установке, для расширения шаблона можно добавлять любые кастомные действия перед командам "вызов скрипта пост-инсталляции" и "Регистрация установки" d-i preseed/late_command string \ # Здесь размещается вызов скрипта постинсталляции если он используется # .. возможный вызов скрипта постинсталляции .. # Регистрация завершения установки (внутреннее использование) wget --method=put --body-data='{"status":"OS_INSTALLED"}' --header="content-type: application/json" -O- {{osmax_provisioner_base_url}}/v1/unprovisioned_machines/{{machine_id}}/status -
Создайте профиль установки, используя группу API-методов
/v1/installation_profiles. -
Создайте план развертывания, используя группу API-методов
v1/installation_recipes. -
Создайте загрузочный образ, используя группу API-методов
/v1/bootable_images.Достаточно сформировать один загрузочный образ. Он является универсальным и подходит для всех способов развертывания. -
Создайте устройства, используя группу API-методов
/v1/unprovisioned_machinesили через пользовательский интерфейс «Кабинет Администратора».