ALD Pro – средство централизованного управления и как мы выполняли пилотное внедрение. Часть 1
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 этапа:
Создание локального зеркала Интернет-репозитория
Конвертация локального репозитория в 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/repository-extended/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.
Между всеми ВМ должна быть сетевая связность.
FQDN
sudo 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 → Перечень компьютеров
После добавления компьютера можно его включить и проверить загрузку по сети и установку ОС. Предварительно необходимо изменить приоритет загрузки – установить его на сетевую загрузку
Продолжение следует…