Модуль установки ОС

Модуль установки операционных систем (ОС) предназначен для автоматической установки ОС на устройства, поддерживающие BIOS (Basic Input/Output System) или UEFI (Unified Extensible Firmware Interface). Установка выполняется с использованием технологии PXE (Preboot eXecution Environment), которая позволяет загружать ОС через сеть.

При установке только по сети начальная программа-загрузчик iPXE хранится на HTTP(S)-сервере и/или TFTP-сервере, в зависимости от используемой прошивки оборудования (UEFI, включая UEFI CSM для загрузки в режиме BIOS, или BIOS).

В качестве альтернативного варианта программа-загрузчик iPXE может загружаться на устройство с флеш-накопителя (через USB) или с диска (через СD-ROM).

Продукт поддерживает установку по протоколам HTTP или HTTPS.

Доменная модель

Дистрибутив ОС

Сущность, предоставляющая установочный дистрибутив ОС, которая определяет, что будет установлено.

Включает:

  • ссылку на установочное ядро ОС во внешнем хранилище;

  • ссылку на файл временной файловой системы (initrd) во внешнем хранилище.

Профиль установки

Сущность, предоставляющая профиль установки, которая содержит информацию о том, как и с какими параметрами необходимо устанавливать ОС на устройство. Профиль установки может быть переиспользован — для одного установочного дистрибутива может существовать несколько профилей установки, определяющих способ и параметры установки OC из указанного дистрибутива.

Включает:

  • список опций, с которыми запускается установочное ядро ОС;

  • шаблон файла автоответов;

  • шаблон скрипта пост-установки.

План развертывания

Связывает устройство с профилем установки и позволяет указать специфичные для устройства опции установки, а также переопределить часть опций профиля установки.

Включает:

  • данные для создания root-пользователя ОС;

  • данные для создания локального пользователя ОС;

  • доменное имя устройства по умолчанию.

Шаблоны конфигурационных файлов

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

В общем случае шаблоны не являются универсальными (например, шаблон файла ответов существенно различается для семейства Debian и RedHat).

Поддерживается шаблонизация в формате jinja в части подстановки переменных и реализации логики формирования целевых файлов на основе шаблонов.

Поддерживаемые категории шаблонов:

  • файл автоответов;

  • скрипт пост-установки;

  • конфигурационный файл программы-загрузчика.

Поддерживаемые переменные подстановки:

  • переменные подстановки, которые задаются через конфигурационный файл — при указании значений таких переменных в конфигурационном файле к их именам необходимо добавить префикс lcm.provisioner.template-engine.template-placeholders;

    Пример:

    • в файле конфигурации модуля osmax-provisioner:

      lcm.provisioner.template-engine.template-placeholders.unattended_install_file_url=/v1/unattended_install_files
    • в шаблоне:

      {{unattended_install_file_url}}
  • обязательные переменные установки, необходимые для корректной работы модуля установки ОС:

    • osmax.provisioner.template-engine.template-placeholders.osmax_provisioner_base_url=http://<osmax-provisioner-host>:<port>;

    • osmax.provisioner.template-engine.template-placeholders.unattended_install_file_url=/v1/unattended_install_files;

    • osmax.provisioner.template-engine.template-placeholders.repository_cert_url=</path/to/certificate>.

  • переменные подстановки, вычисляемые для связки устройства со способом развертывания:

Наименование Описание Способ вычисления

hostname

Наименование устройства

Соответствует значению атрибута unprovisioned_machine.hostname устройства. Доступно для вычисления, если устройству назначен способ развертывания

domain

Имя домена

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

mac

МAC-адрес

Вычисляется на основании MAC-адреса, указанного на сетевом интерфейсе устройства

architecture

Архитектура процессора

Вычисляется на основании архитектуры процессора устройства

initrd

Путь и имя файла, содержащего образ временной корневой системы

Вычисляется как initrd-атрибут дистрибутива, который планируется к установке

kernel

Путь и имя файла, в котором содержится ядро ОС

Вычисляется как атрибут kernel дистрибутива, который планируется к установке

repository_url

URL-адрес репозитория, где размещается установочный дистрибутив

Вычисляется как атрибут repository_url дистрибутива, который планируется к установке

kernel_options

Дополнительные опции ядра, с которыми выполняется установка

Вычисляется как атрибут kernel_options (дополнительные опции ядра) профиля установки

is_create_user

Признак необходимости создания локального пользователя

Заполняется значением атрибута is_create_user сущности «Способ развертывания»

password_hash_algorithm

Используемый hash-алгоритм для задания паролей, доступные значения: MD5 и SHA512

Заполняется значением атрибута hash_algorithm сущности «Способ развертывания»

root_crypted_password

Hash пароля root (MD5/SHA512)

Заполняется значением атрибута root_hash_password сущности «Способ развертывания»

user_full_name

Полное имя пользователя, который будет создан

Заполняется значением атрибута user_account.userFullName сущности «Способ развертывания», если атрибут is_create_user = true соответствует d-i passwd/user-fullname

user_name

Имя пользователя, логин

Заполняется значением атрибута user_account.userName сущности «Способ развертывания», если атрибут is_create_user = true

user_crypted_password

Hash пароля пользователя

Заполняется значением атрибута user_account.userHashPassword сущности «Способ развертывания», если атрибут is_create_user = true

machine_id

Внутренний идентификатор устройства

Заполняется значением атрибута machine_id устройства

installation_label

Метка развертывания

Вычисляется как unprovisioned_machines.configuration_version_id. Если unprovisioned_machines.configuration_version_id не задано, то вычисляется как unprovisioned_machines.installation_recipe_id

Загрузочный образ

Загрузочный образ, с помощью которого можно выполнить установку OC.

API-методы, предоставляемые модулем установки ОС позволяют варьировать только имя формируемого ISO-образа и имя сущности, а формируемые загрузочные образы имеют одинаковое поведение.

Устройство

Описание конечного устройства, на которое устанавливается ОС. Устройство должно обладать как минимум одним сетевым интерфейсом.

Включает:

  • hostname;

  • сетевой интерфейс (определяет MAC-адрес и доменное имя устройства);

  • ссылка на способ развертывания.

В ходе установки ОС устройство идентифицируется по его MAC-адресу.