Подготовка узлов#
На этом этапе необходимо подготовить узлы для развертывания Astra Automation с учетом выбранной топологии.
Принципиально различной выглядит подготовка следующих узлов:
узел установщика (установочный узел) – вспомогательный узел, на котором будет установлен и использован пакет развертывания Astra Automation;
узлы платформы для непосредственной установки компонентов Astra Automation.
Общие требования#
Общие требования к узлам:
Все узлы должны иметь постоянные IP-адреса или доменные имена. От этого зависит способ идентификации узлов в файле инвентаря.
Рекомендуется обеспечить передачу данных между всеми узлами плоскости управления Automation Controller с минимальными задержками.
Узлы, используемые для развертывания Private Automation Hub, должны быть доступны с других узлов, входящих в состав развертываемой платформы. В противном случае некоторые узлы не смогут использовать содержимое, хранящееся в Private Automation Hub.
При развертывании без доступа к интернету (с помощью Offline Bundle) зарезервируйте на каждом узле не менее 10 ГБ свободного места для хранения установочных файлов платформы.
На всех узлах используется одна и та же версия ОС.
Установленная на узлах ОС не должна содержать пакеты графического интерфейса.
Если для развертывания платформы используются виртуальные машины, создавайте их на основе образов без пакетов поддержки графического интерфейса.
Такие образы, созданные ПАО Группа Астра, не содержат в названии поле
-gui. Подробности см. в документации универсальных базовых образов Astra Linux.Если вы устанавливаете ОС вручную, на этапе выбора компонентов выключите флаг Графический интерфейс Fly.
Если вы устанавливаете ОС в автоматическом режиме, удалите из файла ответов строки, требующие установки графических пакетов.
Astra Linux Special Edition 1.7 использует для автоматической установки утилиту
debian-installer. Файл ответов называетсяpreseed.cfg. Порядок его создания описан в статье Справочного центра Автоматическая установка Astra Linux Special Edition 1.7.Astra Linux Special Edition 1.8 использует для автоматической установки утилиту
astra-installer. Файл ответов называетсяastra-installer-preseed.yaml. Порядок его создания описан в статье Справочного центра Автоматическая установка Astra Linux Special Edition x.8. Там же приведены инструкции по преобразованию файлаpreseed.cfgвastra-installer-preseed.yaml.Примеры фрагмента файла ответов с исключением пакетов графического интерфейса:
tasksel tasksel/first multiselect Base packages, SSH server tasksel tasksel/astra-feat-setup multiselect
--- # ... tasks: - Base - Fly-ssh
Установочный узел#
Установочный узел должен содержать пакет для развертывания Astra Automation.
Кроме того, для выполнения в дальнейшем операций резервного копирования потребуется утилита rsync.
Установка утилиты rsync#
Установите утилиту rsync:
sudo apt install -y rsync
Установка пакета для развертывания Astra Automation#
Установите пакет для развертывания Astra Automation:
Если в файле
/etc/apt/sources.listне содержатся ссылки на основной (main) и расширенный (extended) репозитории Astra Linux Special Edition, добавьте их.Важно
Версии используемых репозиториев должны соответствовать версии ОС, установленной на узлах платформы.
Например, для Astra Linux Special Edition 1.8.3.UU1 ссылки на репозитории имеют следующий вид:
deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.3/uu/1/extended-repository/ 1.8_x86-64 main non-free non-free-firmware contrib deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.3/uu/1/main-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
Подробности о сетевых репозиториях 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> подставьте версию устанавливаемой платформы, например,
2.0.Доступные версии продукта опубликованы в таблице История обновлений.
Обновите список доступных пакетов:
sudo apt update
Установите пакет
astra-automation-setup:sudo apt install astra-automation-setup --yes
По окончании установки выводится сообщение следующего вида:
В каталоге установщика подготовлены шаблоны файла инвентаря для базовой топологии (
inventory-base) и топологии уровня предприятия (inventory-enterprise). В зависимости от выбранной вами топологии скопируйте соответствующий шаблон в файл инвентаря для установщика:cd /opt/rbta/aa/astra-automation-setup && cp inventory-base.ini inventory
или
cd /opt/rbta/aa/astra-automation-setup && cp inventory-enterprise.ini inventory
На этапе описания инвентаря вы будете редактировать файл inventory так, чтобы он отвечал вашим требованиям.
Узлы платформы#
Каждый узел платформы должен быть доступен и управляем по SSH со стороны установочного узла. Для подготовки узлов к развертыванию платформы выполните следующие действия:
Обеспечьте сетевую связность всех узлов согласно выбранной топологии.
(Необязательно) Обеспечьте конвертацию названий узлов в IP-адреса (с помощью
/etc/hostsили DNS).Настройте доступ к узлам по SSH с использованием ключей.
Инструкция по настройке приведена ниже.
Разрешите выполнение команд с использованием
sudoбез ввода пароля:sudo astra-sudo-control disable
Подготовка узлов для кластера 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 <path/to/file> -N "<password>"
где:
<comment> – комментарий к ключу.
<path/to/file> – путь к файлу, в котором будет приватный ключ. Этот путь необходимо будет указать в настройках инвентаря для установщика. Публичный ключ будет создан по тому же пути в файле с тем же названием, к которому добавляется расширение
.pub.<password> – пароль для защиты приватного ключа. Если пароль пустой, приватный ключ создается без защиты.
Сделайте файл доступным только для его владельца:
sudo chmod 600 <path/to/file>
где <path/to/file> – путь к файлу, в котором сохранен приватный ключ.
Настройка целевых узлов#
Чтобы разрешить подключение к узлу по 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.Сделайте файл доступным только его владельцу:
chmod 600 ~/.ssh/authorized_keys
Добавьте в файл
~/.ssh/authorized_keysсодержимое соответствующего публичного ключа, например (часть содержимого ключа опущена с целью сокращения):Совет
Если узел разрешает подключение по SSH с использованием пароля, публичную часть ключей SSH можно разместить с помощью утилиты
ssh-copy-id, выполнив следующую команду на установочном узле:ssh-copy-id -i <path/to/file> <user>@<host>
где:
<path/to/file> – путь к файлу, содержащему публичный ключ SSH;
<user> – название учетной записи администратора узла;
<host> – IP-адрес или FQDN узла.