Содержание
Развертывание операционной системы 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 |
| Распаковать | Да |
| Точки распространения | |
| Имя ТР | Выбираем точки распространения, на которых размещен образ |
3. Подготовка шаблона
Создание шаблона установки - «Управление ОС → Шаблоны установки → Создать шаблон»
| Параметр | Значение |
|---|---|
| Основное | |
| Тип | Для Astra Linux выбираем AstraOS |
| Имя | Добавляем понятное имя, например Astra Linux 1.8.6 для разработчиков |
| Родительский шаблон | — |
| Образ ОС | Выбираем образ созданный ранее |
| Домен | указываем домен ALD Pro |
| Тело пункта iPXE меню | см. ниже |
| Файлы ответов | см. ниже |
| Дополнительные действия | |
| Дополнительные действия | см. ниже |
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.
Подготовить файл ответов можно с помощью Конструктора 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, при необходимости добавляет репозиторий и обновляет систему, затем запускает установку и ввод в домен.
- aldprodj.sh
#!/usr/bin/env bash # Copyright (C) 2026 Дмитрий Алифатов <dmitry@alifatov.ru> # Лицензия: GNU GPL v3 или новее <https://gnu.org> # Скрипт поставляется БЕЗ ГАРАНТИЙ любого рода («как есть»). # Вы можете свободно изменять и распространять его, сохраняя эту лицензию. #разбиваем аргументы на массив, аргументы в кавычках могут содержать пробелы 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' | Нет |
На вкладке «Дополнительные действия» создаваемого шаблона необходимо добавить две команды:
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
