====== Развертывание операционной системы 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 ====