Подготовка узлов#

Для успешного развертывания платформы необходимо настроить узел, на котором будет запущен установщик (установочный узел), и все узлы платформы. При необходимости установочный узел можно включить в состав платформы.

Подготовка установочного узла#

Для настройки установочного узла выполните следующие действия:

  1. Если в файле /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.

  2. В каталоге /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.

    Доступные версии продукта опубликованы в таблице История обновлений.

  3. Обновите список доступных пакетов:

    sudo apt update
    
  4. Установите пакет astra-automation-setup:

    sudo apt install astra-automation-setup --yes
    

    По окончании установки выводится сообщение следующего вида:

    ----------------------------------
    Welcome to Astra Automation Setup!
    ----------------------------------
    
    Follow next steps to install Astra Automation:
    1. Go to /opt/rbta/aa/astra-automation-setup
    2. Edit inventory file
    3. Run aa-setup
    4. Enjoy!
    
    For guidance on installing Astra Automation, consult https://docs.astra-automation.ru/
    

Узлы платформы#

Для подготовки узлов к развертыванию платформы выполните на них следующие действия:

  1. Обеспечьте сетевую связность всех узлов.

  2. Обеспечьте конвертацию названий узлов в IP-адреса (с помощью /etc/hosts или DNS).

  3. Настройте доступ к узлам по SSH с использованием ключей.

    Инструкция по настройке приведена ниже.

  4. Разрешите выполнение команд с использованием sudo без ввода пароля:

    sudo astra-sudo-control disable
    
  5. Если вы не планируете использовать Private Automation Hub, то есть в процессе установки Astra Automation он не будет развернут, выполните следующие действия:

    1. Разверните реестр образов (Docker Registry) в локальной сети.

    2. Поместите в него образы:

    3. Обеспечьте доступность локального реестра образов.

    Примечание

    Если 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.

../../_images/centralized-nfs-light.svg ../../_images/centralized-nfs-dark.svg

Важно

  • На всех используемых узлах в файле /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:

  1. Обновите список доступных пакетов:

    sudo apt update
    
  2. Установите пакеты:

    sudo apt install -y iptables iptables-persistent
    
  3. Разрешите доступ к портам 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.

  4. Сохраните правила:

    sudo netfilter-persistent save
    
  5. Убедитесь, что правила применились:

    sudo iptables -L -n | grep -wE '111|2049'
    

    В выводе должны отображаться добавленные правила для IP-адресов клиентских узлов.

  6. Установите сервер NFS:

    sudo apt install -y nfs-kernel-server
    
  7. Создайте каталог, который будет экспортироваться:

    sudo mkdir -p /mnt/nfs/pulp_media
    
  8. Измените режим доступа к созданному каталогу на 755:

    sudo chmod -R 755 /mnt/nfs/pulp_media
    
  9. Добавьте в файл /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)
    
  10. Примените настройку:

    sudo exportfs -rav
    
  11. Перезапустите сервер NFS:

    sudo systemctl restart nfs-kernel-server
    
  12. Проверьте успешность экспорта:

    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, который должен иметь доступ к общему хранилищу.

  1. Обновите список доступных пакетов:

    sudo apt update
    
  2. Установите клиент NFS:

    sudo apt install -y nfs-common
    
  3. Создайте точку монтирования:

    sudo mkdir -p /var/lib/pulp/media
    
  4. Чтобы общее хранилище монтировалось при загрузке ОС, добавьте в /etc/fstab следующие строки:

    <ip_nfs>:/mnt/nfs/pulp_media /var/lib/pulp/media nfs defaults,_netdev 0 0
    

    Здесь <ip_nfs> – IP-адрес сервера NFS.

  5. Обновите настройки служб systemd:

    sudo systemctl daemon-reload
    
  6. Смонтируйте файловую систему:

    sudo mount -a
    
  7. Убедитесь, что хранилище подключено:

    mount | grep pulp_media
    

    В выводе должна присутствовать строка с путем монтирования /var/lib/pulp/media.

Проверьте корректность настройки:

  1. На первом узле Private Automation Hub создайте тестовый файл:

    sudo touch /var/lib/pulp/media/test_hub1.txt
    
  2. На втором узле Private Automation Hub убедитесь, что файл доступен:

    ls -la /var/lib/pulp/media/
    

    В выводе должен отображаться файл test_hub1.txt.

  3. Удалите файл на втором узле Private Automation Hub:

    sudo rm /var/lib/pulp/media/test_hub1.txt
    
  4. На первом узле Private Automation Hub убедитесь, что файл отсутствует:

    ls -la /var/lib/pulp/media/
    

    В выводе не должен отображаться файл test_hub1.txt.

Настройка SSH для доступа к узлам#

Рекомендуемым способом доступа к узлам является подключение по протоколу SSH с использованием ключей. Необходимо создать пару ключей – приватный и публичный. Приватный ключ необходимо оставить на установочном узле, а публичный передать на остальные узлы платформы.

Генерация ключей SSH#

Для генерации пар ключей SSH на установочном узле выполните следующие действия:

  1. Перейдите в каталог установщика, например:

    cd /opt/rbta/aa/astra-automation-setup/
    
  2. Создайте пару ключей SSH:

    sudo ssh-keygen -C "<comment>" -f ./<filename> -N "<password>"
    

    где:

    • <comment> – комментарий к ключу.

    • <filename> – название файла, в котором будет приватный ключ. Публичный ключ будет в файле с тем же названием, к которому добавляется расширение .pub.

    • <password> – пароль для защиты приватного ключа. Если пароль пустой, приватный ключ создается без защиты.

    Совет

    Также вы можете использовать для создания ключей подкаталог в каталоге установщика.

  3. Установите на приватный ключ права доступа 600:

    sudo chmod 600 ./<filename>
    

    где <filename> – название файла, в котором сохранен приватный ключ.

    Примечание

    Права доступа 600 означают, что только пользователь-владелец файла имеет права на чтение и запись.

Настройка целевых узлов#

Чтобы разрешить подключение к узлу по SSH с использованием ключей, выполните следующие действия:

  1. В каталоге /etc/ssh/sshd_config.d/ создайте файл ssh_auth_keys со следующим содержимым:

    PubkeyAuthentication  yes
    AuthorizedKeysFile   .ssh/authorized_keys  .ssh/authorized_keys2
    
  2. Перезапустите сервер SSH:

    sudo systemctl restart ssh
    
  3. В домашнем каталоге пользователя-администратора создайте подкаталог .ssh/, а в нем – файл authorized_keys.

  4. Установите на файл ~/.ssh/authorized_keys права доступа 600:

    chmod 600 ~/.ssh/authorized_keys
    
  5. Добавьте в файл ~/.ssh/authorized_keys содержимое соответствующего публичного ключа, например (часть содержимого ключа опущена с целью сокращения):

    ssh-rsa AAAAB3NzaC1yc2EAd...4bwy3tY2/ administrator@node1.example.com
    

    Совет

    Если узел разрешает подключение по SSH с использованием пароля, публичную часть ключей SSH можно разместить с помощью утилиты ssh-copy-id:

    ssh-copy-id -i <filename> <user>@<host>
    

    где:

    • <filename> – путь к файлу публичного ключа SSH;

    • <user> – название учетной записи пользователя-администратора узла;

    • <host> – IP-адрес или FQDN узла.