Подготовка узлов#
Для успешного развертывания платформы необходимо настроить узел, на котором будет запущен установщик (установочный узел), и все узлы платформы. При необходимости установочный узел можно включить в состав платформы.
Подготовка установочного узла#
Для настройки установочного узла выполните следующие действия:
Если в файле
/etc/apt/sources.list
не содержатся ссылки на основной (main) и расширенный (extended) репозитории Astra Linux Special Edition, добавьте их.Важно
Версии используемых репозиториев должны соответствовать версии ОС, установленной на узлах платформы.
Например, для Astra Linux Special Edition 1.8.1.UU1 ссылки на репозитории имеют следующий вид:
deb http://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/1/repository-main 1.8_x86-64 main non-free contrib deb http://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/1/repository-extended 1.8_x86-64 main non-free contrib
Подробности о сетевых репозиториях Astra Linux Special Edition 1.8 см. в статье справочного центра Интернет-репозитории Astra Linux Special Edition x.8.
В каталоге
/etc/apt/sources.list.d/
создайте файлastra-automation.list
со ссылкой на репозиторий Astra Automation:deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.8 <version> main
Вместо <version> подставьте версию устанавливаемой платформы, например,
1.2-upd1
.Доступные версии продукта опубликованы в таблице История обновлений.
Обновите список доступных пакетов:
sudo apt update
Установите пакет
astra-automation-setup
:sudo apt install astra-automation-setup --yes
По окончании установки выводится сообщение следующего вида:
Узлы платформы#
Для подготовки узлов к развертыванию платформы выполните на них следующие действия:
Обеспечьте сетевую связность всех узлов.
Обеспечьте конвертацию названий узлов в IP-адреса (с помощью
/etc/hosts
или DNS).Настройте доступ к узлам по SSH с использованием ключей.
Инструкция по настройке приведена ниже.
Разрешите выполнение команд с использованием
sudo
без ввода пароля:sudo astra-sudo-control disable
Если вы не планируете использовать Private Automation Hub, то есть в процессе установки Astra Automation он не будет развернут, выполните следующие действия:
Разверните реестр образов (Docker Registry) в локальной сети.
Поместите в него образы:
aa-1.2/aa-minimal-de (только для случая развертывания контроллера Event-Driven Ansible в составе платформы).
Обеспечьте доступность локального реестра образов.
Примечание
Если Private Automation Hub будет развернут при установке Astra Automation, то самостоятельное развертывание реестра образов не требуется.
Подготовка узлов для кластера Private Automation Hub#
Существует три варианта хранения контента в Private Automation Hub:
Локальная файловая система.
Вариант используется по умолчанию. При этом весь контент сохраняется в локальной файловой системе узла, на котором развернут Private Automation Hub. Этот вариант подходит, когда Private Automation Hub развернут на одном узле. Из-за отсутствия синхронизации между узлами, при отказе одного из них контент может быть утерян.
Рекомендуется для тестовых установок, стендов разработки и ситуаций, когда отказоустойчивость не критична.
Для реализации данного варианта достаточно настроить узел и добавить его в описание инвентаря без дополнительных шагов.
Облачное хранилище типа S3.
Поддерживается подключение к внешнему объектному хранилищу типа S3. Контент хранится вне узлов кластера, что позволяет обеспечить отказоустойчивость и масштабируемость без необходимости настройки локального сервера хранения. Вариант подходит для рабочих или облачных сред при наличии доступа к сервисам, поддерживающим S3, например:
Разделяемое хранилище NFS.
Предусматривает использование отдельного узла – сервера NFS, который предоставляет единое хранилище для всех узлов кластера Private Automation Hub. Такой подход обеспечивает централизованное хранение данных и возможность отказоустойчивой работы в кластере из нескольких узлов. Контент, размещенный в этом хранилище, доступен сразу всем узлам, что делает возможным масштабирование без дополнительной синхронизации.
Разделяемое хранилище NFS#
Настройка разделяемого хранилища может различаться в зависимости от требуемых характеристик. Далее представлен пример настройки разделяемого хранилища NFS для двух узлов Private Automation Hub и одного сервера NFS.
Важно
На всех используемых узлах в файле
/etc/apt/sources.list
должны содержаться ссылки на основной (main) и расширенный (extended) репозитории Astra Linux Special Edition. Версии используемых репозиториев должны соответствовать версии ОС, установленной на узлах платформы.Например, для Astra Linux Special Edition 1.8.1.UU1 ссылки на репозитории имеют следующий вид:
deb http://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/1/main-repository 1.8_x86-64 main non-free non-free-firmware contrib deb http://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/1/extended-repository 1.8_x86-64 main non-free non-free-firmware contrib
Для корректной работы протокола NFS требуется открыть TCP-порты 111 и 2049 на сервере. Разрешите доступ к этим портам только с IP-адресов узлов Private Automation Hub, как показано далее.
Настройте сервер NFS:
Обновите список доступных пакетов:
sudo apt update
Установите пакеты:
sudo apt install -y iptables iptables-persistent
Разрешите доступ к портам NFS (111 и 2049) с узлов Private Automation Hub:
sudo iptables -A INPUT -p tcp -s <ip_pah_1> --dport 111 -j ACCEPT sudo iptables -A INPUT -p tcp -s <ip_pah_2> --dport 111 -j ACCEPT sudo iptables -A INPUT -p tcp -s <ip_pah_1> --dport 2049 -j ACCEPT sudo iptables -A INPUT -p tcp -s <ip_pah_2> --dport 2049 -j ACCEPT
Здесь <ip_pah_1> и <ip_pah_2> – IP-адреса узлов кластера Private Automation Hub.
Сохраните правила:
sudo netfilter-persistent save
Убедитесь, что правила применились:
sudo iptables -L -n | grep -wE '111|2049'
В выводе должны отображаться добавленные правила для IP-адресов клиентских узлов.
Установите сервер NFS:
sudo apt install -y nfs-kernel-server
Создайте каталог, который будет экспортироваться:
sudo mkdir -p /mnt/nfs/pulp_media
Измените режим доступа к созданному каталогу на
755
:sudo chmod -R 755 /mnt/nfs/pulp_media
Добавьте в файл
/etc/exports
следующие строки:/mnt/nfs/pulp_media <ip_pah_1>(sync,rw,no_root_squash,no_subtree_check) /mnt/nfs/pulp_media <ip_pah_2>(sync,rw,no_root_squash,no_subtree_check)
Примените настройку:
sudo exportfs -rav
Перезапустите сервер NFS:
sudo systemctl restart nfs-kernel-server
Проверьте успешность экспорта:
sudo exportfs -v
Пример вывода:
/mnt/nfs/pulp_media <ip_pah_1>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash) /mnt/nfs/pulp_media <ip_pah_2>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
Настройте узлы Private Automation Hub:
Примечание
Нижеуказанные действия необходимо выполнить на каждом узле Private Automation Hub, который должен иметь доступ к общему хранилищу.
Обновите список доступных пакетов:
sudo apt update
Установите клиент NFS:
sudo apt install -y nfs-common
Создайте точку монтирования:
sudo mkdir -p /var/lib/pulp/media
Чтобы общее хранилище монтировалось при загрузке ОС, добавьте в
/etc/fstab
следующие строки:<ip_nfs>:/mnt/nfs/pulp_media /var/lib/pulp/media nfs defaults,_netdev 0 0
Здесь <ip_nfs> – IP-адрес сервера NFS.
Обновите настройки служб systemd:
sudo systemctl daemon-reload
Смонтируйте файловую систему:
sudo mount -a
Убедитесь, что хранилище подключено:
mount | grep pulp_media
В выводе должна присутствовать строка с путем монтирования
/var/lib/pulp/media
.
Проверьте корректность настройки:
На первом узле Private Automation Hub создайте тестовый файл:
sudo touch /var/lib/pulp/media/test_hub1.txt
На втором узле Private Automation Hub убедитесь, что файл доступен:
ls -la /var/lib/pulp/media/
В выводе должен отображаться файл
test_hub1.txt
.Удалите файл на втором узле Private Automation Hub:
sudo rm /var/lib/pulp/media/test_hub1.txt
На первом узле Private Automation Hub убедитесь, что файл отсутствует:
ls -la /var/lib/pulp/media/
В выводе не должен отображаться файл
test_hub1.txt
.
Настройка SSH для доступа к узлам#
Рекомендуемым способом доступа к узлам является подключение по протоколу SSH с использованием ключей. Необходимо создать пару ключей – приватный и публичный. Приватный ключ необходимо оставить на установочном узле, а публичный передать на остальные узлы платформы.
Генерация ключей SSH#
Для генерации пар ключей SSH на установочном узле выполните следующие действия:
Перейдите в каталог установщика, например:
cd /opt/rbta/aa/astra-automation-setup/
Создайте пару ключей SSH:
sudo ssh-keygen -C "<comment>" -f ./<filename> -N "<password>"
где:
<comment> – комментарий к ключу.
<filename> – название файла, в котором будет приватный ключ. Публичный ключ будет в файле с тем же названием, к которому добавляется расширение
.pub
.<password> – пароль для защиты приватного ключа. Если пароль пустой, приватный ключ создается без защиты.
Совет
Также вы можете использовать для создания ключей подкаталог в каталоге установщика.
Установите на приватный ключ права доступа
600
:sudo chmod 600 ./<filename>
где <filename> – название файла, в котором сохранен приватный ключ.
Примечание
Права доступа
600
означают, что только пользователь-владелец файла имеет права на чтение и запись.
Настройка целевых узлов#
Чтобы разрешить подключение к узлу по SSH с использованием ключей, выполните следующие действия:
В каталоге
/etc/ssh/sshd_config.d/
создайте файлssh_auth_keys
со следующим содержимым:PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
Перезапустите сервер SSH:
sudo systemctl restart ssh
В домашнем каталоге пользователя-администратора создайте подкаталог
.ssh/
, а в нем – файлauthorized_keys
.Установите на файл
~/.ssh/authorized_keys
права доступа600
:chmod 600 ~/.ssh/authorized_keys
Добавьте в файл
~/.ssh/authorized_keys
содержимое соответствующего публичного ключа, например (часть содержимого ключа опущена с целью сокращения):Совет
Если узел разрешает подключение по SSH с использованием пароля, публичную часть ключей SSH можно разместить с помощью утилиты
ssh-copy-id
:ssh-copy-id -i <filename> <user>@<host>
где:
<filename> – путь к файлу публичного ключа SSH;
<user> – название учетной записи пользователя-администратора узла;
<host> – IP-адрес или FQDN узла.