Быстрое развертывание платформы#

Быстрое развертывание платформы Astra Automation предназначено для получения оперативного доступа к системе и ознакомления с ее базовыми возможностями. В этом сценарии утилита развертывания aa-setup запускает все компоненты платформы в контейнерах Podman на одном узле:

  • шлюз платформы (Platform Gateway);

  • Automation Controller;

  • Private Automation Hub;

  • Event-Driven Automation;

  • СУБД PostgreSQL;

  • Redis.

Automation Dashboard в этот сценарий не входит, так как его развертывают на отдельном узле (см. описание развертывания Automation Dashboard).

Предупреждение

Развертывание всех компонентов на одном узле допустимо только в ознакомительных целях. Такая конфигурация не обеспечивает отказоустойчивость и не предназначена для эксплуатации в промышленных рабочих окружениях. Подробное описание контейнерного способа развертывания приведено в руководстве по планированию.

Предварительные требования#

Для развертывания платформы потребуются подписка и узел, отвечающий приведенным далее требованиям.

Программное обеспечение платформы#

Для использования платформы необходима подписка. Чтобы получить пробную подписку, перейдите на сайт Astra Automation и нажмите кнопку Запросить пробную версию платформы бесплатно.

Утилита развертывания устанавливается из репозитория Astra Automation, а образы компонентов платформы она загружает из реестра registry.astra.ru. Загружать установочный пакет из Личного кабинета в этом сценарии не требуется.

Рабочее окружение#

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

Характеристика

Значение

Операционная система

Astra Linux Special Edition 1.8.6

Количество ядер CPU

4

Объем RAM, ГБ

16

Тип диска

SSD

Объем диска, ГБ

60

Важно

Утилита развертывания прерывает работу, если объем памяти узла (значение MemTotal в файле /proc/meminfo) меньше 15000 МБ. Узел с 16 ГБ RAM этому требованию соответствует.

Кроме того, узел должен соответствовать следующим требованиям:

  • узел имеет доступ в интернет, в том числе к ресурсам download.astralinux.ru, dl.astralinux.ru и registry.astra.ru;

  • к узлу есть доступ по протоколу SSH под учетной записью пользователя, который может выполнять команды с помощью sudo.

Развертывание от имени пользователя root не поддерживается.

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

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

  1. Подключитесь к узлу по SSH.

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

    sudo astra-sudo-control disable
    

    Утилита развертывания выполняет часть команд с привилегиями суперпользователя с помощью sudo и в процессе работы пароль не запрашивает.

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

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

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

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

    sudo apt install astra-automation-setup --yes
    

    Пакет устанавливает утилиту развертывания в каталог /opt/rbta/aa/astra-automation-setup/.

Развертывание платформы#

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

  1. Определите IP-адрес узла:

    hostname -I
    

    Если команда выводит несколько адресов, выберите тот, по которому узел доступен с рабочей станции.

  2. Создайте в домашнем каталоге файл описания инвентаря, например с помощью текстового редактора nano:

    nano ~/inventory
    
  3. Поместите в файл следующее описание инвентаря:

    [automationgateway]
    <node_ip>
    
    [automationcontroller]
    <node_ip>
    
    [automationhub]
    <node_ip>
    
    [automationedacontroller]
    <node_ip>
    
    [database]
    <node_ip>
    
    [all:vars]
    ansible_connection=local
    ansible_python_interpreter=/usr/bin/python3
    
    admin_username=admin
    admin_password='<admin_password>'
    
    postgres_password='<postgres_password>'
    controller_pg_password='<controller_pg_password>'
    hub_pg_password='<hub_pg_password>'
    gateway_pg_password='<gateway_pg_password>'
    eda_pg_password='<eda_pg_password>'
    
    redis_mode=standalone
    
    controller_uwsgi_processes=3
    gateway_uwsgi_processes=3
    gateway_grpc_server_processes=2
    hub_api_workers=3
    hub_content_workers=1
    hub_workers=1
    eda_gunicorn_workers=3
    eda_workers=1
    

    Здесь:

    • <node_ip> – IP-адрес узла, определенный ранее;

    • <admin_password> – пароль учетной записи администратора платформы admin;

    • <postgres_password> – пароль администратора СУБД PostgreSQL (учетная запись postgres), которую утилита развертывания устанавливает на узле; от имени этой учетной записи утилита создает базы данных и пользователей компонентов платформы;

    • <controller_pg_password>, <hub_pg_password>, <gateway_pg_password>, <eda_pg_password> – пароли пользователей СУБД PostgreSQL, которые утилита развертывания создает для компонентов платформы.

    Параметр ansible_connection=local указывает утилите развертывания выполнять команды на том же узле, на котором она запущена, без подключения по SSH. Параметр redis_mode=standalone необходим, так как для кластера Redis требуется не менее шести узлов.

    Последние восемь параметров ограничивают число рабочих процессов компонентов платформы. С этими значениями компоненты занимают около 5 ГБ RAM. Без них число рабочих процессов зависит от количества ядер CPU, поэтому на узле с четырьмя ядрами компоненты занимают около 8,5 ГБ RAM, а на узле с большим количеством ядер – больше.

    Предупреждение

    Значения параметров controller_uwsgi_processes, gateway_uwsgi_processes, gateway_grpc_server_processes, hub_api_workers, hub_content_workers, hub_workers, eda_gunicorn_workers и eda_workers в примере занижены, чтобы платформа работала на узле с небольшим объемом памяти. Используйте их только для развертывания стенда в ознакомительных целях. Не переносите эти значения в производственную среду: платформа будет медленнее отвечать на запросы, а задачи в Private Automation Hub будут ждать в очереди.

  4. Запретите чтение файла другим пользователям, так как он содержит пароли:

    chmod 600 ~/inventory
    
  5. Перейдите в каталог утилиты развертывания:

    cd /opt/rbta/aa/astra-automation-setup
    
  6. Запустите развертывание от имени текущего пользователя:

    ./aa-setup --containerized -i ~/inventory -p ~
    

    Здесь:

    • -i ~/inventory – путь к файлу описания инвентаря;

    • -p ~ – каталог для журнала развертывания setup.log.

    Утилиту нельзя запускать с помощью sudo или от имени пользователя root, так как контейнеры платформы должны работать от имени обычного пользователя, а команды, требующие привилегий суперпользователя, утилита выполняет с помощью sudo сама. Утилита развертывания загружает образы компонентов из реестра, запускает контейнеры и настраивает компоненты платформы. Развертывание занимает около 40 минут.

    Важно

    Не закрывайте сеанс SSH до завершения развертывания. При закрытии сеанса Astra Linux Special Edition завершает запущенные в нем процессы, в том числе утилиту развертывания.

    После успешного развертывания утилита выводит сообщение следующего вида:

    PLAY RECAP *********************************************************************
    10.0.0.10                  : ok=666  changed=227  unreachable=0    failed=0    skipped=496  rescued=0    ignored=0
    localhost                  : ok=45   changed=0    unreachable=0    failed=0    skipped=246  rescued=0    ignored=0
    
    ――――――――――――――――――――――――――――――――――――――――――
    Astra Automation Setup has been finished
    ――――――――――――――――――――――――――――――――――――――――――
    Astra Automation host:
    https://10.0.0.10/
    
    Login: admin
    Password: *****
    ――――――――――――――――――――――――――――――――――――――――――
    

    Значение failed=0 в строках PLAY RECAP означает, что развертывание завершилось успешно. Значения остальных счетчиков могут отличаться.

  7. Отключите автоматический запуск службы podman.service для всех пользователей:

    sudo systemctl --global disable podman.service
    

    Если эта служба запускается при загрузке ОС одновременно с контейнерами платформы, контейнеры могут не запуститься. Для работы платформы и выполнения заданий автоматизации достаточно службы podman.socket, которая остается включенной.

Получение доступа к интерфейсу платформы#

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

  1. Откройте в браузере на рабочей станции адрес https://<node_ip>/.

    При первом подключении браузер выводит предупреждение о том, что подключение не защищено. Это нормальное поведение, поскольку для защиты подключения шлюз платформы использует самоподписанный сертификат. При использовании браузера на основе Chromium выполните следующие действия:

    1. Нажмите кнопку Дополнительные.

    2. Нажмите ссылку Перейти на сайт <IP> (небезопасно).

  2. Для аутентификации в интерфейсе платформы введите название учетной записи admin и пароль, заданный в значении admin_password.

  3. Активируйте подписку, следуя инструкции.

    Без активной подписки платформа не позволяет выполнять задания автоматизации и выводит сообщение License is missing.

Перезагрузка узла#

После перезагрузки узла контейнеры платформы запускаются автоматически. Интерфейс платформы становится доступен в течение нескольких минут после загрузки ОС.

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

systemctl --global is-enabled podman.service

Если команда выводит enabled, выполните следующие действия:

  1. Отключите автоматический запуск службы podman.service:

    sudo systemctl --global disable podman.service
    
  2. Перезагрузите узел:

    sudo systemctl reboot
    

Не восстанавливайте работу платформы вручную в сеансе SSH с помощью команд podman и systemctl --user, так как часть контейнеров при этом может не запуститься.

Заключение#

В этом сценарии вы познакомились с основными шагами по развертыванию платформы в контейнерах на одном узле. Из всей последовательности шагов важно выделить следующие действия:

  • Обеспечение предварительных требований.

  • Подготовка узла и установка утилиты развертывания.

  • Описание инвентаря и развертывание платформы.

  • Обеспечение доступа к интерфейсу платформы.

  • Активация подписки на использование платформы.

Выполнение первого задания автоматизации описано в инструкции Быстрый старт для администратора.