====== Развертывание операционной системы Astra Linux 1.8 с помощью Колибри-АРМ ====== ===== 1. Создание служебной УЗ ===== Для автоматического ввода компьютеров Astra Linux в домен ALD Pro необходимо задать служебную учетную запись, обладающую соответствующими правами в домене ALD Pro. //"Конфигуратор → Служебные УЗ → Создать УЗ"// ^ Параметр ^ Значение ^ | Имя | Обозначение этой УЗ в системе Колибри АРМ. Например "ALD Pro join" | | Тип УЗ| Доменная | | Домен | Полное имя домена ALD Pro, например "ald.company.lan" | | Имя пользователя | Логин пользователя, который имеет право на включение компьютеров в домен. Например "admin" | | Пароль | Пароль пользователя | ===== 2. Подготовка образа ===== Установочный дистрибутив Astra Linux скопировать в каталог ''/opt/colibri/packagesshare/img/'' на сервере Колибри-АРМ. Затем на портале управления Колибри-АРМ: //"Управление ОС → Образы ОС → Загрузить образ"// ^ Параметр ^ Значение ^ | **//Общие//** || | Имя образа | Понятное имя образа, например ''Astra Linux 1.8.6'' | | Имя ОС | Для Astra Linux выбираем ''AstraOS'' | | Версия ОС | Понятное обозначение версии, например ''1.8.6'' | | Имя файла | Имя файла образа, например ''installation-1.8.6.39-17.06.2026_11.39.iso'' | | Расположение образа | Имя подкаталога относительно ''/opt/colibri/packagesshare'', в нашем случае ''img'' | | Распаковать | Да | | **//Точки распространения//** || | Имя ТР | Выбираем точки распространения, на которых размещен образ | Файл образа копируется с серверной папки на FTP‑сервер на основном сервере и в последующем копируется на точки распространения. Если в среде только один сервер Системы и на нем же развернута точка распространения с образами ОС, размер диска должен быть достаточным чтобы вместить трёхкратный объем всех iso файлов. Перед развертыванием образа необходимо убедиться, что на общей странице образов и на странице точки распространения (Конфигуратор → Точки распространения), установленной для репликации образа, статусы загрузки образа являются успешными. ===== 3. Подготовка шаблона ===== Создание шаблона установки - "Управление ОС → Шаблоны установки → Создать шаблон" ^ Параметр ^ Значение ^ | **//Основное//** || | Тип | Для Astra Linux выбираем ''AstraOS'' | | Имя | Добавляем понятное имя, например ''Astra Linux 1.8.6 для разработчиков'' | | Родительский шаблон | --- | | Образ ОС | Выбираем образ созданный ранее | | Домен | указываем домен ALD Pro | | Тело пункта iPXE меню | [[https://wiki.alifatov.ru/doku.php/colibri-astra-deploy-os#тело_пункта_ipxe_меню|см. ниже]] | | Файлы ответов | [[https://wiki.alifatov.ru/doku.php/colibri-astra-deploy-os#файлы_ответов|см. ниже]] | | **//Дополнительные действия//** || | Дополнительные действия | [[https://wiki.alifatov.ru/doku.php/colibri-astra-deploy-os#дополнительные_действия|см. ниже]] | ==== 3.1. Тело пункта iPXE меню ==== Тело пункта iPXE для Astra Linux 1.8 kernel {{OsImage.FolderUrl}}/vmlinuz initrd {{OsImage.FolderUrl}}/initrd imgargs vmlinuz fetch={{OsImage.FolderUrl}}/live/filesystem.squashfs boot=live astra_install=1 astra-installer-preseed={{OsTemplate.ResponseFilesUrl["astra-installer-preseed.yaml"]}} boot || goto error Имена переменных в двойных и одинарных фигурных скобках следует указывать как показано в примере. Колибри-АРМ самостоятельно заменит эти переменные на нужные значения. Описание переменных и их значений приведено в документации к Колибри-АРМ ==== 3.2. Файлы ответов ==== Необходимо прикрепить файл astra-installer-preseed.yaml. Подготовить файл ответов можно с помощью [[https://app.alifatov.ru/astra185_preseed/|Конструктора preseed‑конфигурации для Astra Linux 1.8]] Для установки Astra Linux Special Edition 1.8.x используется новая программа установки — astra-installer. Astra-installer использует конфигурационные файлы установки с синтаксисом YAML, несовместимые с debian-installer. ==== 3.3. Дополнительные действия ==== === Скрипт добавления компьютера Astra Linux в домен ALD Pro === В каталоге ''/opt/colibri/repositories/osimages/pefiles'' на сервере Колибри-АРМ необходимо разместить скрипт добавления компьютера Astra Linux в домен ALD Pro. Скрипт автоматизирует подготовку компьютера под управлением Astra Linux и ввод его в домен ALD Pro. Он устанавливает клиент ALD Pro, настраивает hostname и /etc/hosts согласно требованиям ALD Pro, при необходимости добавляет репозиторий и обновляет систему, затем запускает установку и ввод в домен. #!/usr/bin/env bash # Copyright (C) 2026 Дмитрий Алифатов # Лицензия: GNU GPL v3 или новее # Скрипт поставляется БЕЗ ГАРАНТИЙ любого рода («как есть»). # Вы можете свободно изменять и распространять его, сохраняя эту лицензию. #разбиваем аргументы на массив, аргументы в кавычках могут содержать пробелы bash_args="$@" eval "set -- $bash_args" args=("$@") #проходимся по массиву аргументов, выделяем ключи и значения for ((i = 0; i < ${#args[@]} - 1; i++)); do key="${args[i]}" case $key in "--password" | "-p") password="${args[i+1]}" ;; "--account" | "-u") user="${args[i+1]}" ;; "--domain" | "-c") domain="${args[i+1]}" ;; "--orgunits" | "-ou") orgunits="${args[i+1]}" ;; "--host" | "-d") host_name="${args[i+1]}" #приводим имя хоста к нижнему регистру, обрезаем домен, если он есть host_name=${host_name%%.*} host_name=$(echo $host_name | tr '[:upper:]' '[:lower:]') ;; "--repo") repo="${args[i+1]}" ;; esac done #выводим аргументы для отладки, экранируем пароль bash_args="$@" hidden_password=$(echo $password | tr '[:print:]' '*') echo "[$(date +'%Y-%m-%d %H:%M')] аргументы вызова: ${bash_args/$password/$hidden_password}" >&2 #Задать hostname в формате FQDN echo "[$(date +'%Y-%m-%d %H:%M')] задаем hostname: $host_name.$domain" >&2 hostnamectl set-hostname $host_name.$domain #Поправить файл hosts в соответствии с требованиями ALD Pro echo "[$(date +'%Y-%m-%d %H:%M')] обновляем файл /etc/hosts в соответствии с требованиями ALD Pro" >&2 cat << EOF > /etc/hosts 127.0.0.1 localhost.localdomain localhost 127.0.1.1 $(hostname) $(hostname -s) # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters EOF #Добавить репозиторий ALD Pro, если он задан if [ -n "$repo" ]; then echo "[$(date +'%Y-%m-%d %H:%M')] добавляем репозиторий aldpro" >&2 echo $repo > /etc/apt/sources.list.d/aldpro.list #Обновить Linux echo "[$(date +'%Y-%m-%d %H:%M')] выполняем обновление" >&2 sudo apt update sudo apt dist-upgrade -y -o Dpkg::Options::=--force-confnew fi #Установить ALD Pro клиент echo "[$(date +'%Y-%m-%d %H:%M')] выполняемм установку клиента ALD Pro" >&2 sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q aldpro-client #Ввести в домен. Чтобы избежать ошибки специальных символов в пароле, формируем команду запуска через массив аргументов. cmd_args=("/opt/rbta/aldpro/client/bin/aldpro-client-installer" "--domain" "$(hostname -d)" "--account" "$user" "-p" "$password" "--host" "$(hostname -a)" "--gui" "--force" "--unattended") if [ -n "$orgunits" ]; then cmd_args+=("--orgunits" "$orgunits") fi log_command="${cmd_args[*]}" echo "[$(date +'%Y-%m-%d %H:%M')] выполняем ввод в домен командой: ${log_command/$password/$hidden_password}" >&2 "${cmd_args[@]}" == Параметры запуска скрипта. == ^ Параметр длинный ^ Параметр короткий ^ Назначение ^ Обязательный ^ | --password | -p | Пароль учётной записи для ввода в домен | Да | | --account | -u | Имя учётной записи (логин) для ввода в домен | Да | | --domain | -c | Доменное имя (например, `ald.company.lan`) | Да | | --host | -d | Имя хоста (без домена). Скрипт обрежет доменную часть и приведёт к нижнему регистру | Да | | --orgunits | -ou | Организационные подразделения (OU) в формате Distinguished Name (DN) в кавычках, например '''ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan''' | Нет | | --repo | --- | строка репозитория ALD Pro для добавления в `sources.list.d` в формате 'одна строка' (one-line-style), например '''deb %%https://dl.astralinux.ru/aldpro/frozen/01/3.1.0/%% 1.7_x86-64 main base''' | Нет | Обрезание доменной части для имени хоста предусмотрено на случай, если инвентаре Колибри-АРМ запись компьютера, на который развертывается ОС, была создана с указанием FQDN. В таком случае переменная %%{{Computer.Name}}%% будет содержать FQDN компьютера. Приведение к нижнему регистру необходимо поскольку Колибри-АРМ автоматически генерирует имена узлов в верхнем регистре, а это не поддерживается ALD Pro. На вкладке "Дополнительные действия" создаваемого шаблона необходимо добавить две команды: == 1. Копирование скрипта добавления в домен == ^ Параметр ^ Значение ^ | Тип дополнительного действия | Команда | | Имя | Понятное имя, например ''Копирование скрипта добавления в домен'' | | Путь к файлу | curl | | Аргументы (!) | http://{{OsImage.Server}}/osimages/pefiles/aldprodj.sh -o /usr/local/bin/aldprodj.sh | | УЗ | --- | | Игнорировать ошибки | Нет | Имена переменных в двойных и одинарных скобках следует указывать как показано в примере. Колибри-АРМ самостоятельно заменит эти переменные на нужные значения. Описание переменных и их значений приведено в документации к Колибри-АРМ == 2. Ввод компьютера в домен == ^ Параметр ^ Значение ^ | Тип дополнительного действия | Команда | | Имя | Понятное имя, например ''Ввод компьютера в домен'' | | Путь к файлу | /bin/bash | | Аргументы (!) | * Упрощенный вариант без указания репозитория и подразделения: /usr/local/bin/aldprodj.sh --account {Username} --password {Password} --domain {{OsTemplate.Domain}} --host {{Computer.Name}} * Вариант с указанием репозитория ALD Pro: /usr/local/bin/aldprodj.sh --account {Username} --password {Password} --domain {{OsTemplate.Domain}} --host {{Computer.Name}} --repo 'deb https://dl.astralinux.ru/aldpro/frozen/01/3.3.0 1.8_x86-64 main base' * Вариант с указанием подразделения: /usr/local/bin/aldprodj.sh --account {Username} --password {Password} --domain {{OsTemplate.Domain}} --host {{Computer.Name}} --orgunits 'ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan' | | УЗ | Учетная запись с правами добавления компьютеров в домен ALD Pro созданная ранее | | Игнорировать ошибки | Нет | Имена переменных в двойных и одинарных скобках следует указывать как показано в примере. Колибри-АРМ самостоятельно заменит эти переменные на нужные значения. Описание переменных и их значений приведено в документации к Колибри-АРМ ===== 4. Развертывание ОС ===== //"Управление ОС → Развертывания ОС → Создать развертывание ОС"// == Создание развертывания ОС == ^ Параметр ^ Значение ^ | Имя | Задать понятное имя для задачи по развертыванию ОС | | Шаблон установки | Выбрать шаблон установки созданный ранее | | Коллекция | Выбрать коллекцию в которую будет добавлен компьютер после развертывания | | Разрешено для неизвестных АРМ | Если выбрать, то записи компьютера будут создаваться в Колибри-АРМ автоматически при развертывании. Если нет, то запись компьютера необходимо будет создавать заранее | | Дата начала - Дата окончания | Период в течении которого будет активно задание по развертыванию ОС | ===== 5. Возможные ошибки ===== ==== Ошибки на этапе отработки скрипта добавления в домен ALD Pro ==== //"Управление ОС → Развертывание ОС → <Выбрать имя развертывания> → Результаты → Действия"// Просмотреть журнал событий. ==== Ошибки в preseed-файле ==== На рабочей станции, где произошел сбой отработки preseed-файла: 1) Скопировать preseed-файл из временного каталога: cp /tmp/preseed.yaml . # в конце команды точка, копируем в текущий каталог 2) Просмотреть preseed-файл и исправить ошибки: nano preseed.yaml 3) Запустить установки с исправленным preseed-файлом, просмотреть журнал ошибок во время установки: astra-installer-launcher --preseed preseed.yaml ==== Operating System not found ====