
AD – как много в этих буквах для сердца нашего слилось… Один из ключевых сервисов в любой средней или крупной организации – это Microsoft Active Directory. А какие есть альтернативы?
Open-source решения от Linux — это здорово, дёшево, но не везде применимо. Нужна высокая квалификация инженеров и администраторов, которые будут готовы взять на себя ответственность и обеспечивать функционирование используемых решений без поддержки со стороны.
Альтернативный вариант – использование этих же open-source решений, но в виде коробочных продуктов с корпоративной поддержкой со стороны российского разработчика. Сейчас для них настало золотое время, которое можно использовать для улучшения качества и количества предлагаемых продуктов и сервисов.
В этой статье я поделюсь с вами опытом пилотного внедрения продукта ALD Pro от ГК Астра. А вы, в свою очередь, примете решение, заслуживает ли этот продукт вашего внимания, или стоит пройти мимо и обратить внимание на что-то другое.
Из-за большого объёма информации статья будет состоять из двух частей.
В первой части будут затронуты следующие вопросы:
-
Подготовка ВМ
-
Установка базовой ОС
-
Подготовка к установке ALD Pro
-
Непосредственно установка ALD Pro— развёртывание первого контроллера домена
-
Развёртывание сервера репозиториев ПО
-
Развёртывание сервера DHCP
-
Развёртывание сервера установки ОС по сети
Во второй части рассмотрим:
-
Развёртывание сервера общего доступа к файлам
-
Развёртывание подсистемы мониторинга
-
Создание реплики контроллера домена
-
Создание организационной структуры
-
Заведение учётных записей пользователей
-
Базовые групповые политики
-
Политики установки ПО
-
Задание автоматизации
Итак, часть первая…
ALD Pro (Astra Linux Domain Pro) создавался как альтернатива Microsoft Active Directory и как средство централизованного администрирования и настройки.
ALD Pro используется для администрирования парка компьютеров с ОС Astra Linux, в будущем разработчик планирует добавить поддержку других операционных систем.
ALD Pro — это набор подсистем, которые объединяет единый портал управления. В текущей реализации решения каждая подсистема устанавливается на отдельный физический или виртуальный сервер с ОС Astra Linux Special Edition с максимальным уровнем защищённости – Смоленск.
Требования к аппаратным ресурсам и компонент, на котором основано решение
|
Подсистема |
Требования к ресурсам |
На чём основано |
|
Контролер домена |
CPU: 4 |
FreeIPA, BIND9 |
|
Контролер домена (реплика) (опционально) |
CPU: 4 |
FreeIPA, BIND9 |
|
Сервер подсистемы репозиториев программного обеспечения |
CPU: 2 |
Reprepo |
|
Сервер подсистемы динамической настройки сети узла (DHCP) |
CPU: 2 |
ISC DHCP |
|
Сервер подсистемы установки ОС по сети |
CPU: 2 |
TFTP + PXE |
|
Подсистема мониторинга |
CPU: 2 |
Zabbix, Grafana |
|
Подсистема печати |
CPU: 2 |
CUPS |
|
Подсистема общего доступа к файлам |
CPU: 2 |
Samba |
|
Подсистема сбора логов и событий |
CPU: 2 |
Fluentd |
В качестве инструмента управления конфигурациями используется SaltStack, служба синхронизации времени – Chrony.
Опыт пилотного внедрения
К нам обратился один из наших постоянных заказчиков с просьбой организовать пилотное внедрение ALD Pro с целью познакомиться с продуктом и оценить возможность его использования в качестве замены аналогичных продуктов Microsoft.
Особенностью пилотного внедрения была замкнутая виртуальная среда без доступа к сети Интернет. Нужно было выполнить развёртывание и установку всех необходимых пакетов локально.
Если бы не ограничение замкнутой программной среды,
все пакеты можно было бы установить из Интернет-репозитория Astra Linux и не
пришлось бы создавать дополнительный локальный репозиторий на период
развёртывания группировки серверов.
Подготовка инфраструктуры
Развёртывание проводим в виртуальной инфраструктуре, нам необходимо подготовить 10 виртуальных машин со следующими ролями:
-
ВМ с выходом в Интернет, на которой будут создаваться ISO образы репозиториев.
Для этой ВМ достаточно выделить 2xCPU, 2 Гб RAM и 64 Гб диск. Подойдёт любой Linux, но мы будем использовать Astra SE 1.7.3 в минимальной конфигурации без графического интерфейса; -
ВМ для организации временного локального репозитория. Будет использована для настройки ВМ контроллера домена и ВМ репозитория ПО в составе ALD Pro. По ресурсам и ОС идентична предыдущей ВМ;
-
ВМ для роли контроллера домена;
-
ВМ для реплики контроллера домена;
-
ВМ для репозиториев ПО;
-
ВМ для DHCP;
-
ВМ для подсистемы установки ОС по сети;
-
ВМ для файлового сервера;
-
ВМ для подсистемы мониторинга;
-
Клиентская ВМ, которая будет использоваться в качестве тестового клиента.
Сервер печати и сервер сбора логов и событий не разворачивались, так как заказчик не нуждался в этих ролях.
Подготовка ВМ, на которой будут созданы ISO образы репозиториев ПО
Эта ВМ должна иметь выход в Интернет, так как на ней будут формироваться образы Интернет репозиториев Астры.
Процесс установки ОС описывать не будем, в нём нет ничего особенного. Кратко рассмотрим процесс подготовки образов репозиториев. Он делится на 2 этапа:
-
Создание локального зеркала Интернет-репозитория — https://wiki.astralinux.ru/pages/viewpage.action?pageId=61575159
-
Конвертация локального репозитория в ISO образ.
Для полноценной работы и развёртывания подсистем ALD Pro необходимо наличие 5 репозиториев:
-
Репозиторий для установки ОС по сети – для этого используется установочный диск с ОС —
1.7.3-03.11.2022_15.53.iso -
Репозиторий ОС Astra Linux – base
deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base 1.7_x86-64 main non-free contrib -
Репозиторий ОС Astra Linux – extended
deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-extended 1.7_x86-64 main contrib non-free -
Репозиторий ALD Pro main – используется установочный диск ALD Pro или Интернет-репозиторий
deb https://dl.astralinux.ru/aldpro/stable/repository-main/1.4.0 main -
Репозиторий ALD Pro extended
deb https://dl.astralinux.ru/aldpro/stable/repositoryextended/generic main
Необходимо обратить внимание, что ALD Pro не поддерживает самые новые версии в пакетах операционной системы. Для обеспечения максимальной совместимости необходимо использовать репозитории ветки frozen 1.7.2 или 1.7.3
После того как локальные репозитории будут созданы, необходимо их конвертировать в ISO образы. Для этого можно воспользоваться утилитой genisoimage
В общем виде команда конвертации репозитория будет выглядеть примерно так:
sudo genisoimage -V 1.7_x86-64 -r -o /home/sysadmin/1.7.3-base.iso /repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base/
где-V — идентификатор репозитория-o — путь, по которому будет сохранён iso образ/repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base — путь к скопированному репозиторию
Каждый репозиторий конвертируем отдельно:
sudo genisoimage -V 1.7_x86-64 -r -o /home/sysadmin/1.7.3-base.iso /repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base/
sudo genisoimage -V 1.7_x86-64 -r -o /home/sysadmin/1.7.3-extended.iso /repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-extended/
sudo genisoimage -V 1.4.0 -r -o /home/sysadmin/aldpro_1.4.0-main.iso /repo/apt-mirror/mirror/dl.astralinux.ru/aldpro/stable/repository-main/
sudo genisoimage -V 1.4.0 -r -o /home/sysadmin/aldpro_1.4.0-extended.iso /repo/apt-mirror/mirror/dl.astralinux.ru/aldpro/stable/repository-extended/
Сконвертированные ISO образы необходимо сохранить для дальнейшего использования, эта ВМ нам больше не понадобиться.
Создание и подготовка ВМ для использования в качестве временного локального репозитория.
Эта ВМ будет использована в закрытом контуре (в том же контуре, где будут расположены все серверы группировки ALD Pro).
Для этой ВМ достаточно минимальной установки без графического интерфейса.
После установки ОС необходимо выполнить базовые настройки:
-
Настроить сеть;
-
При смонтированном установочном образе выполнить установку пакета vsftpd —
sudo apt update && sudo apt install vsftpd -
В конфигурационный файл /etc/vsftpd.conf внести следующие данные:
listen=yes listen_ipv6=no # Анонимный доступ разрешен anonymous_enable=YES local_enable=no anon_root=/repo no_anon_password=yes hide_ids=yes
-
Перезапустить сервис ftp —
sudo systemctl restart vsftpd -
Настроить локальные репозитории
Нам необходимо сохранить заранее подготовленные ISO образы репозиториев на этой ВМ или просто подключить их через гипервизор.
После копирования/подключения образов, их содержимое необходимо скопировать в локальную директорию на ВМ.
Создадим директории, в которых будут размещаться файлы репозиториев
sudo mkdir -p /repo/{base,extended,aldpro-main,aldpro-extended}
Смонтируем ISO образ
sudo mount 1.7.3-base.iso /mnt — если скопировали образ в ВМsudo mount /dev/sr0 /mnt – если образ подключали через CD-ROM гипервизора
Скопируем его содержимое в директорию, в которой будут размещены репозитории
sudo cp -r /mnt/* /repo/base sudo umount /mnt
Эти же действия выполним с остальными репозиториями. После копирования всех репозиториев мы должны получить что-то подобное
drwxr-xr-x 4 root root 4096 мар 29 18:21 aldpro-extended drwxr-xr-x 4 root root 4096 мар 29 18:20 aldpro-main drwxr-xr-x 4 root root 4096 мар 29 17:32 base drwxr-xr-x 4 root root 4096 мар 29 17:38 extended root@localrepo:~# du -hs /repo/ 25G /repo/
-
Если ISO образы копировали в ВМ, для экономии места их лучше удалить.
Создание ВМ для подсистем ALD Pro и предварительная настройка
Теперь можно приступать к созданию ВМ, необходимых для подсистем ALD Pro:
-
Контролер домена
-
Контролер домена (реплика)
-
Сервер подсистемы репозиториев программного обеспечения
-
Сервер подсистемы динамической настройки сети узла (DHCP)
-
Сервер подсистемы установки ОС по сети
-
Подсистема мониторинга
-
Подсистема общего доступа к файлам
После того как ВМ будут созданы, можно приступать к установке ОС. Напоминаю: важно, чтобы это была ОС с максимальным уровнем защищённости – Смоленск.
После установки ОС выполним первые базовые настройки и подготовку:
Настройка сети
Если ОС устанавливали с графическим интерфейсом, проще всего сеть настраивать с помощью Network Manager через графический апплет
Если же ОС установили без интерфейса Fly, сеть можно настроить стандартными средствами, которые используются в Debian – редактированием конфигурационного файла /etc/network/interfaces
Между всеми ВМ должна быть сетевая связность.
FQDNsudo hostnamectl set-hostname dc01.astra.lan
Отредактировать /etc/hostsПривести к виду:
127.0.0.1 localhost.localdomain localhost 10.1.3.21 dc01.astra.lan dc01
Подключить временный репозиторий
Это действие выполняется только на ВМ, которая будет выступать в роли контроллера домена ALD Pro и ВМ, которая будет настроена в роли сервера репозиториев
Отредактировать конфигурацию apt на использование подготовленного репозитория.
От рута выполнить
cat <<EOL > /etc/apt/sources.list deb ftp://10.1.3.20/base 1.7_x86-64 main contrib non-free deb ftp://10.1.3.20/extended 1.7_x86-64 main contrib non-free EOL
Добавить репозиторий ALD Pro
Это действие выполняется только на ВМ, которая будет выступать в роли контроллера домена ALD Pro и ВМ, которая будет настроена в роли сервера репозиториев
cat <<EOL > /etc/apt/sources.list.d/aldpro.list deb ftp://10.1.3.20/aldpro-main 1.4.0 main deb ftp://10.1.3.20/aldpro-extended generic main EOL
Кроме добавления репозитория ALD Pro, необходимо установить приоритет пакетам из этого репозитория. Для этого создадим соответствующий файл
cat <<EOL > /etc/apt/preferences.d/aldpro Package: * Pin: release n=generic Pin-Priority: 900 EOL
Обновить пакеты
Это действие выполняется только на ВМ, которая будет выступать в роли контроллера домена ALD Pro и ВМ, которая будет настроена в роли сервера репозиториев
sudo apt update && sudo apt dist-upgrade -y
AstraLinux рекомендует использовать для обновления собственную утилиту astra-update. Обновление можно выполнить так
astra-update -A -r -T
После создания ВМ и предварительной настройки получили такую картину
|
Роль |
FQDN |
IP |
|
Локальный репозиторий (временный) |
localrepo |
10.1.3.20 |
|
Контролер домена |
dc01.astra.lan |
10.1.3.21 |
|
Контролер домена реплика |
dc02.astra.lan |
10.1.3.22 |
|
Сервер репозиториев ПО |
repo.astra.lan |
10.1.3.23 |
|
Сервер DHCP |
dhcp.astra.lan |
10.1.3.24 |
|
Сервер подсистемы установки ОС по сети |
pxe.astra.lan |
10.1.3.25 |
|
Подсистема мониторинга |
mon.astra.lan |
10.1.3.26 |
|
Подсистема общего доступа к файлам |
nas.astra.lan |
10.1.3.27 |
Установка и настройка первого контроллера домена
Для установки всего необходимого для работы контроллера домена ALD Pro используется метапакет aldpro-mp
sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp
После установки всех пакетов (их будет достаточно много) в настройках резолвера необходимо изменить адрес DNS сервера на 127.0.0.1.
В зависимости от способа настройки сети это делается по-разному:
— если сеть настраивали через Network Manager, проще всего значение прописать в графической утилите

— если настройка производилась путём редактирования /etc/network/interfaces, тогда необходимо внести строку nameserver 127.0.0.1 в файл /etc/resolv.conf
sysadmin@dc01:~$ cat /etc/resolv.conf nameserver 127.0.0.1
Обращаю внимание, что редактирование файла /etc/resolv.conf стоит делать только если NetworkManager отключен, в противном случае файл будет перезаписан
Инициализация домена
sudo /opt/rbta/aldpro/mp/bin/aldpro-server-install.sh -d <домен> -n <имя_сервера> -p ‘<пароль>’ --ip <IP-адрес_контроллера_домена> --no-reboot
пароль указываем в одинарных кавычках
для просмотра описания возможных параметров
/opt/rbta/aldpro/mp/bin/aldpro-server-install.sh -h
В нашем случае команда выглядит так
sudo /opt/rbta/aldpro/mp/bin/aldpro-server-install.sh -d astra.lan -n dc01 -p ‘P@ssw0rd’ --ip 10.1.3.21 --no-reboot
Завершится выполнение команды сообщением
Summary for local ------------- Succeeded: 87 (changed=81) Failed: 0 ------------- Total states run: 87 Total run time: 425.555 s
Для применения настроек необходимо перезагрузить сервер.
После перезагрузки сервера можем попасть в панель администратора ALD Pro по доменному имени сервера — https://dc01.astra.lan

Обратите внимание на полный адрес — https://dc01.astra.lan/ad/ui/#/
Если в адресе ad заменить на ipa мы попадём в интерфейс FreeIPA, на котором основан контроллер домена

При работе в закрытом контуре это не требуется, но, тем не менее, упомяну об этом — если система работает с выходом в Интернет, нужно настроить разрешение внешних имён, для этого необходимо настроить форвардинг на внешний DNS. Для этого в панели администратора перейдём по пути
Роли и службы сайта -> Служба разрешения имён -> Глобальная конфигурация DNS

Если глобальное перенаправление не настраивать, тоже должно работать, т.к. Bind9 может выступать в роли резолвера и разрешать имена, делая обход по всем DNS серверам, начиная с корневой зоны “.”.
Развёртывание ролей ALD Pro
Сервер репозиториев ПО
Мы уже выполнили предварительную настройку сервера:
-
настроили сеть;
-
задали доменное имя;
-
указали адрес локальных репозиториев для установки необходимых пакетов;
-
указали приоритет установки пакетов из репозитория ALD Pro.
Осталось сделать:
-
указать в качестве сервера DNS IP адрес контроллера домена;
-
установить пакеты необходимые для работы в качестве клиента домена ALD Pro
sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-client
-
выполнить ввод в домен
sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c <домен> -u admin -p <пароль_администратора_домена> -d <имя_сервера> -i -f
в нашем случае команда выглядит так
sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c astra.lan -u admin -p ‘P@ssw0rd’ -d repo -i -f
после ввода в домен, сервер, на котором устанавливается подсистема, необходимо перезагрузить
После перезагрузки мы увидим в списке компьютеров домена 2 записи: сам контроллер домена и сервер репозиториев
Пользователи и компьютеры -> Компьютеры

Теперь необходимо на сервере repo.astra.lan настроить роль сервера репозиториев ПО.
Для этого необходимо перейти в раздел Установка и обновление ПО -> Репозитории ПО
Нажать на ссылку в центре страницы – развернуть сервер репозиториев ПО

В выпадающих списках указать сервер, на котором разворачиваем роль и Сайт

Нажать кнопку Сохранить
Процесс развёртывания системы можно видеть в разделе Автоматизация ->
Задания автоматизации -> Журнал заданий

После завершения развёртывания статус задания изменится
Кроме этого ход установки можно наблюдать в журналах apt и salt на целевом хосте,
например, (tail -f /var/log/apt/term.log &); (tail -f /var/log/salt/minion &)

Теперь необходимо создать репозитории ПО и добавить в них наши образы репозиториев, которые мы заранее подготовили
Установка и обновление ПО -> Репозитории ПО -> Новый репозиторий
Заполним поля имени, описания и адреса репозитория. Они могут быть произвольными

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

Теперь необходимо добавить версии
Выбираем первый репозиторий из списка и в открывшемся окне переходим на вкладку Версии
Нажимаем кнопку + Новая версия
Указываем путь к установочному ISO образу — 1.7.3-03.11.2022_15.53.iso

Нажимаем Сохранить
Начнётся процесс загрузки образа во временный каталог на сервере репозиториев.

После загрузки начнётся извлечение и индексация пакетов.
Это самый продолжительный процесс. Наберёмся терпения и подождём

Заветное изменение состояния ?

Повторяем процедуру с оставшимися четырьмя репозиториями
После публикации всех репозиториев мы должны увидеть адрес, по которому эти
репозитории будут доступны

Проверим доступность этих репозиториев.
На этом же сервере изменим адреса репозиториев в /etc/apt/sources.list, приведём их к виду

Обратите внимание, что у нас репозитории доступны по https, так как используются самоподписные сертификаты, директивой trusted=yes необходимо явно указать, что мы им доверяем.
Теперь можно обновить индекс пакетов и убедиться, что используются новые репозитории

Ошибок в выводе нет и указаны новые адреса репозиториев.
Так же необходимо изменить адрес репозиториев ALD Pro.

На контроллере домена тоже изменим адреса репозиториев.
Сервер репозиториев в составе ALD Pro развёрнут и функционирует штатно.
С этого сервера по https смогут выполнять обновление и установку пакетов хосты, которые являются членами ALD Pro.
Хосты, которые не являются членами домена, смогут подключиться к серверу репозиториев по http.
Больше нам ВМ localrepo не потребуется.
Сервер DHCP
К ранее выполненным настройкам: IP, hostname
Необходимо в качестве DNS указать адрес контроллера домена – 10.1.3.21
Указать адреса репозиториев ОС и ALD Pro
/etc/apt/sources.list deb [trusted=yes] https://repo.astra.lan/repos/os-base/ 1.7_x86-64 main contrib non-free deb [trusted=yes] https://repo.astra.lan/repos/os-extended/ 1.7_x86-64 main contrib non-free
/etc/apt/sources.list.d/aldpro.list deb [trusted=yes] https://repo.astra.lan/repos/aldpro-main/ 1.4.0 main deb [trusted=yes] https://repo.astra.lan/repos/aldpro-extended/ generic main
Установить приоритет пакетов ALD Pro
/etc/apt/preferences.d/aldpro Package: * Pin: release n=generic Pin-Priority: 900
Выполнить обновление пакетов и установку клиентской части ALD Pro
sudo apt update && sudo apt dist-upgrade -y sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-client
Ввести в домен в качестве клиента
sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c astra.lan -u admin -p ‘P@ssw0rd’ -d dhcp -i -f
и перезагрузить
sudo reboot
После перезагрузки можно добавить роль DHCP в ALD Pro
Роли и службы сайта -> Служба динамической настройки узла -> + Новый сервер
Из выпадающего списка выбираем наш хост – dhcp.astra.lan и указываем сайт

Запустится процесс развёртывания DHCP.
Следить за процессом можно в разделе Автоматизация -> Задания автоматизации ->
Журнал заданий
После развёртывания подсистемы, её необходимо настроить.
Роли и службы сайта -> Служба динамической настройки узла -> dhcp.astra.lan
На вкладке Настройка сетевых интерфейсов необходимо указать интерфейс, на котором будет работать DHCP сервер. Обязательно необходимо указать комментарий, т.к. используется система контроля версий и сохранением изменений мы выполняем коммит.

На вкладке Конфигурация скрипта необходимо указать настройки DHCP сервера
Примеры настроек указаны во встроенном руководстве, попасть в которое можно нажав на значок ? в верхнем правом углу окна. Если встроенной справки покажется недостаточно, вспоминаем, что под капотом ALD Pro используется ISC DHCP, в
сети полно инструкций по настройке.
authoritative; log-facility local7; default-lease-time 600; max-lease-time 7200; allow booting; allow bootp; subnet 10.1.3.0 netmask 255.255.255.0 { range 10.1.3.101 10.1.3.254; option broadcast-address 10.1.3.255; option domain-name-servers 10.1.3.21; option domain-name "astra.lan"; option routers 10.1.3.9; # адрес маршрутизатора next-server 10.1.3.25; # pxe сервер filename "pxelinux.0"; }
Проверить работу DHCP можно, запустив клиентскую ВМ, которую мы подготовили.

В настройках у нас уже указан FTP сервер, с которого будет выполняться установка ОС, но сам сервер еще не настроен, поэтому на экране видим обращение к нему без ответа. Но проверяли мы не это, а то, что IP адрес и прочие сетевые настройки получены успешно.
Сервер установки ОС по сети
Выполняем предварительные настройки, аналогичные тем, которые делали при подготовке сервера DHCP:
-
IP адрес – 10.1.3.25;
-
имя узла – pxe.astra.lan;
-
в качестве DNS адрес контроллера домена – 10.1.3.21;
-
указываем адрес сервера репозиториев для ОС и ALD Pro. Помним, пока компьютер не является членом домена, доступ к серверу репозиториев есть только по http;
-
указываем приоритет для пакетов ALD Pro;
-
выполняем обновление пакетов;
-
устанавливаем пакеты для клиентской части ALD Pro;
sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-client
-
вводим в домен в качестве клиента;
sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c astra.lan -u admin -p ‘P@ssw0rd’ -d pxe -i -f
-
перезагружаем хост;
Установка роли сервера установки ОС по сети в ALD Pro
После ввода сервера pxe.astra.lan в качестве клиента домена, можно приступать к развёртыванию роли.

Автоматизация -> Установка ОС по сети-> + Новый сервер
Выбираем из списка наш сервер, указываем сайт и DHCP. После нажатия кнопки Сохранить, начнётся развёртывание роли.
Следить за состоянием развёртывания можно в разделе Автоматизация ->
Задания автоматизации -> Журнал заданий

Настройка сервера установки ОС по сети
Для возможности установки операционной системы по сети необходимо создать Профиль загрузки, в котором указать параметры установки ОС – preseed, послеустановочный скрипт, скрипт первой загрузки, boot-меню
Переходим в раздел Автоматизация -> Установка ОС по сети -> pxe.astra.lan -> Профили загрузки -> + Новый профиль

После сохранения профиля станут доступны вкладки с настройками, пойдём по порядку:
-
Preseed
Пример файла ответов на вопросы есть во встроенной справке, в нашем случае справка доступна по адресу https://dc01.astra.lan/ad/help/ui/45#preseed
Стоит обратить внимание, что в примере указан адрес репозитория в Интернет, нам это не подходит, поэтому файл необходимо немного модифицировать.
# Подключение сетевого репозитория d-i mirror/protocol string http d-i mirror/http/hostname string repo.astra.lan d-i mirror/http/directory string /repos/os-main # Установка локали и языка d-i mirror/country string manual d-i debian-installer/locale string ru_RU d-i debian-installer/locale select ru_RU.UTF-8 d-i debian-installer/language string ru d-i debian-installer/country string RU d-i debian-installer/keymap string ru # Выбор клавиатуры d-i console-tools/archs select at d-i console-keymaps-at/keymap select ru d-i console-setup/toggle string Ctrl+Shift d-i console-setup/layoutcode string ru d-i keyboard-configuration/toggle select Ctrl+Shift d-i keyboard-configuration/layoutcode string ru d-i keyboard-configuration/xkb-keymap select ru d-i languagechooser/language-name-fb select Russian d-i countrychooser/country-name select Russia # Автоматический выбор сетевого интерфейса d-i netcfg/choose_interface select auto # Подключение non-free,contrib компонентов в репозитории d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true d-i apt-setup/services-select none # Установка часового пояса UTC d-i clock-setup/utc boolean true # Временная зона d-i time/zone string Europe/Moscow # Не обновлять время d-i clock-setup/ntp boolean false # Автоматическая разметка дисков d-i partman-base partman/default_filesystem string ext4 d-i partman-auto/init_automatically_partition \ select Авто - использовать весь диск d-i partman-auto/method string regular d-i partman-auto/purge_lvm_from_device boolean true d-i partman-lvm/confirm boolean true # Разметка для режима bios #d-i partman-auto/choose_recipe select atomic # для UEFI режима: #d-i partman-auto/choose_recipe select /lib/partman/recipes-amd64-efi/30atomic # Не задавать вопросов при разметке d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman-auto-crypto/erase_disks boolean true d-i partman-basicfilesystems/no_swap boolean false d-i partman-target/mount_failed boolean true d-i partman-partitioning/unknown_label boolean true d-i partman-auto/purge_lvm_from_device string true d-i partman-lvm/vgdelete_confirm boolean true d-i partman/confirm_write_new_label string true d-i partman-lvm/confirm boolean true d-i partman/confirm_nooverwrite boolean true d-i anna/no_kernel_modules boolean true d-i base-installer/kernel/image string linux-image-generic # Создание пользователя при установке d-i passwd/make-user boolean true # Имя пользователя d-i passwd/user-fullname string sysadmin d-i passwd/username string sysadmin # Пароль пользователя d-i passwd/user-password password P@ssw0rd d-i passwd/user-password-again password P@ssw0rd d-i debian-installer/allow_unauthenticated string true # Выбор рабочего стола Fly tasksel tasksel/first multiselect Fly, Fly-ssh tasksel tasksel/astra-feat-setup multiselect # Дополнительные пакеты # Специфические настройки Астры d-i astra-additional-setup/os-check select Base security level Orel d-i astra-additional-setup/additional-settings-orel multiselect astra-additional-setup astra-additional-setup/automatic-network-disable multiselect d-i astra-additional-setup/automatic-network-disable multiselect d-i desktop-tablet-mode-switch/tablet-mode multiselect popularity-contest popularity-contest/participate boolean false # В GRUB будет только 1 операционная система d-i grub-installer/only_debian boolean true # Установка в mbr d-i grub-installer/with_other_os boolean true # Установка пароля Grub d-i grub-installer/password password P@ssw0rd d-i grub-installer/password-again password P@ssw0rd grub-installer grub-installer/password-mismatch error # Не показывать диалог окончания установки d-i finish-install/reboot_in_progress note d-i finish-install/exit/poweroff boolean true # Команды, выполняемые после установки ОС d-i preseed/late_command string in-target systemctl enable ssh; \ in-target bash -c "apt-get -y purge linux-image-*-hardened"; \ in-target bash -c "apt-get -y autoremove --purge"; \ in-target bash -c "sed -i 's/deb-src/#deb-src/g' /etc/apt/sources.list"; \ in-target bash -c "/usr/bin/wget -O /tmp/postinstall.sh http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{POSTINSTALL_FILE_NAME}";\ in-target bash -c "/bin/sh -x /tmp/postinstall.sh";\ echo
В примере во встроенной справке присутствует команда смены пароля только что созданного пользователяin-target bash -c "echo -e \"astra:astra\" | chpasswd"; \
я не стал её использовать и удалил.
-
Postinstall
В послеустановочном скрипте необходимо указать адреса локальных репозиториев и сервер сетевой установки, с него будет скачан скрипт первой загрузки на хост.
#!/bin/bash set -x sudo systemctl enable ssh #Добавление репозиториев Astra Linux cat <<EOL > /etc/apt/sources.list deb http://repo.astra.lan/repos/os-base/ 1.7_x86-64 main contrib non-free deb http://repo.astra.lan/repos/os-extended/ 1.7_x86-64 main contrib non-free EOL #Добавление репозиториев ALD Pro cat <<EOL > /etc/apt/sources.list.d/aldpro.list deb http://repo.astra.lan/repos/aldpro-main/ 1.4.0 main deb http://repo.astra.lan/repos/aldpro-extended/ generic main EOL #Установка приоритетов репозиториев cat <<EOL > /etc/apt/preferences.d/aldpro Package: * Pin: release n=generic Pin-Priority: 900 EOL # Скачать скрипт первого запуска # Необходимо заменить IP адрес на ваш сервер ОС wget http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{FIRSTSTART_FILE_NAME} -O /usr/bin/firststart.sh # Подготовка к запуске сервиса первого запуска ОС cat <<EOL > /etc/systemd/system/firststart.service [Unit] Wants=network-online.target After=network-online.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/firststart.sh start [Install] WantedBy=multi-user.target EOL # Запуск сервиса chmod 774 /usr/bin/firststart.sh systemctl enable firststart || true
-
Скрипт первого запуска
В скрипте первого запуска происходит установка пакетов ALD Pro и ввод компьютера в домен.
#!/bin/bash set -x # Установка клиента ALD Pro и ввод компьютера в домен case $1 in start) apt-get update export DEBIAN_FRONTEND=noninteractive apt-get install -yq aldpro-client wget mkdir -p /etc/ssl/freeipa wget -O /root/token http://10.1.3.25/tftp/tokens/$(hostname -f).pwd # Указать IP адрес вашего сервера установки ОС ipa-client-install --hostname=$(hostname -f) --domain=$(hostname -d) --mkhomedir --password=$(cat /root/token) -U rm -f /etc/salt/minion_id /usr/bin/python3 /opt/rbta/aldpro/client/bin/aldpro-service-discovery.py systemctl restart salt-minion ln -s /usr/bin/astra-freeipa-domains-ctl /etc/domains.list.d/ systemctl disable firststart reboot ;; stop) systemctl disable firststart ;; *) echo "$Usage: $0 {start|stop}" ;; esac
-
BOOT-меню
Загрузочное меню для клиентов с BIOS
UI vesamenu.c32 # 0 - отключение приглашения командной строки. Загрузка начнется сразу PROMPT 0 # Автоматический выбор меню по таймеру. Секунды вычисляются делением на 10 введенного значения TIMEOUT 100 DEFAULT bootlocal # Выбор по умолчанию загрузки с диска #DEFAULT pxeinstall # Выбор по умолчанию загрузки по сети menu background isolinux/aldpro_bios.png menu title User Management Portal Boot Menu # Локальная загрузка с диска LABEL bootlocal menu label Boot from first HDD kernel chain.c32 append hd0 0 TEXT HELP Normal boot from HDD ENDTEXT # Загрузка из сети LABEL pxeinstall menu label PXE operation system install kernel linux append initrd=initrd.gz vga=788 auto=true priority=critical debian-installer/locale=ru_RU console-keymaps-at/keymap=ru hostname={HOSTNAME} domain={DOMAIN_REALM} astra-license/license=true url=http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{PRESEED_FILE_NAME} interface=auto netcfg/dhcp_timeout=60 # Необходимо указать IP адрес Вашего сервера установи ОС по сети TEXT HELP Install AstraLinux Operating System ENDTEXT
-
GRUB меню
Загрузочное меню для клиентов UEFI
if loadfont $prefix/font.pf2 ; then set gfxmode=800x600 set gfxpayload=keep insmod efi_gop insmod efi_uga insmod video_bochs insmod video_cirrus insmod gfxterm insmod png terminal_output gfxterm fi if background_image /isolinux/aldpro.png; then set color_normal=light-gray/black set color_highlight=white/black else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi # Установка Astra Linux Special Edition menuentry 'Install AstraLinux Operating System' { set background_color=black linux (http,10.1.3.25)/tftp/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname={HOSTNAME} domain={DOMAIN_REALM} astra-license/license=true url=http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{PRESEED_FILE_NAME} interface=auto netcfg/dhcp_timeout=60 initrd (http,10.1.3.25)/tftp/initrd.gz }
После того как профиль загрузки будет создан, можно добавлять компьютеры, на которые этот профиль будет распространяться.
Автоматизация -> Установка ОС по сети -> pxe.astra.lan -> Перечень компьютеров

После добавления компьютера можно его включить и проверить загрузку по сети и установку ОС. Предварительно необходимо изменить приоритет загрузки – установить его на сетевую загрузку

Продолжение следует…
ссылка на оригинал статьи https://habr.com/ru/companies/syssoft/articles/739428/
Добавить комментарий