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

На этом этапе необходимо подготовить узлы для развертывания Astra Automation с учетом выбранной топологии.

../../../_images/day0-model-green.svg ../../../_images/day0-topology-green.svg ../../../_images/day0-nodes-blue.svg ../../../_images/day0-inventory-white.svg ../../../_images/day0-offline-white.svg ../../../_images/day0-model-green.svg ../../../_images/day0-topology-green.svg ../../../_images/day0-nodes-blue.svg ../../../_images/day0-inventory-dark.svg ../../../_images/day0-offline-dark.svg

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

  • узел установщика (установочный узел) – вспомогательный узел, на котором будет установлен и использован пакет развертывания Astra Automation;

  • узлы платформы для непосредственной установки компонентов Astra Automation.

Общие требования#

Общие требования к узлам:

  • Все узлы должны иметь постоянные IP-адреса или доменные имена. От этого зависит способ идентификации узлов в файле инвентаря.

  • Рекомендуется обеспечить передачу данных между всеми узлами плоскости управления Automation Controller с минимальными задержками.

  • Узлы, используемые для развертывания Private Automation Hub, должны быть доступны с других узлов, входящих в состав развертываемой платформы. В противном случае некоторые узлы не смогут использовать содержимое, хранящееся в Private Automation Hub.

  • При развертывании без доступа к интернету (с помощью Offline Bundle) зарезервируйте на каждом узле не менее 10 ГБ свободного места для хранения установочных файлов платформы.

  • На всех узлах используется одна и та же версия ОС.

  • Установленная на узлах ОС не должна содержать пакеты графического интерфейса.

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

      Такие образы, созданные ПАО Группа Астра, не содержат в названии поле -gui. Подробности см. в документации универсальных базовых образов Astra Linux.

    • Если вы устанавливаете ОС вручную, на этапе выбора компонентов выключите флаг Графический интерфейс Fly.

      ../../../_images/os-installation.png
    • Если вы устанавливаете ОС в автоматическом режиме, удалите из файла ответов строки, требующие установки графических пакетов.

      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:

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

  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> подставьте версию устанавливаемой платформы, например, 2.0.

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

  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/
    
  5. В каталоге установщика подготовлены шаблоны файла инвентаря для базовой топологии (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 со стороны установочного узла. Для подготовки узлов к развертыванию платформы выполните следующие действия:

  1. Обеспечьте сетевую связность всех узлов согласно выбранной топологии.

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

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

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

  4. Разрешите выполнение команд с использованием 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.

../../../_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 <path/to/file> -N "<password>"
    

    где:

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

    • <path/to/file> – путь к файлу, в котором будет приватный ключ. Этот путь необходимо будет указать в настройках инвентаря для установщика. Публичный ключ будет создан по тому же пути в файле с тем же названием, к которому добавляется расширение .pub.

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

  3. Сделайте файл доступным только для его владельца:

    sudo chmod 600 <path/to/file>
    

    где <path/to/file> – путь к файлу, в котором сохранен приватный ключ.

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

Чтобы разрешить подключение к узлу по 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. Сделайте файл доступным только его владельцу:

    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 <path/to/file> <user>@<host>
    

    где:

    • <path/to/file> – путь к файлу, содержащему публичный ключ SSH;

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

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