Параметры СУБД#

На этом шаге отредактируйте описание узла PostgreSQL, если он развертывается средствами платформы, или реквизиты доступа к внешней СУБД.

../../../../_images/general-green.svg ../../../../_images/gateway-green.svg ../../../../_images/autoexec-green.svg ../../../../_images/content-green.svg ../../../../_images/eda-green.svg ../../../../_images/tls-green.svg ../../../../_images/postgres-blue.svg ../../../../_images/general-green.svg ../../../../_images/gateway-green.svg ../../../../_images/autoexec-green.svg ../../../../_images/content-green.svg ../../../../_images/eda-green.svg ../../../../_images/tls-green.svg ../../../../_images/postgres-blue.svg

В составе платформы Astra Automation используются две СУБД:

  • PostgreSQL – реляционная;

  • Redis – нереляционная.

PostgreSQL#

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

Примечание

СУБД PostgreSQL используется платформой для хранения данных, но не является ее частью. Настройка отказоустойчивой конфигурации PostgreSQL в этом руководстве не рассматривается. Для получения соответствующих инструкций обращайтесь к документации PostgreSQL.

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

Чтобы средствами платформы развернуть СУБД на отдельном узле, выполните следующие действия:

  1. В описании инвентаря создайте группу database и добавьте в нее сведения об узле, например:

    [database]
    database.example.com
    
    database:
      hosts:
        database.example.com:
    
  2. В глобальных переменных укажите значения параметров подключения к СУБД.

При развертывании СУБД средствами платформы в систему автоматически устанавливается расширение hstore. Дополнительные действия не требуются.

Внешняя СУБД#

Если у вас уже есть кластер PostgreSQL, выполните следующие действия:

  1. Создайте в кластере PostgreSQL пользователей и принадлежащие им базы данных для используемых компонентов платформы.

  2. Убедитесь, что в описании инвентаря группа database существует, но не содержит узлов.

  3. В глобальных переменных укажите значения параметров подключения к СУБД.

  4. Проверьте, установлено ли расширение hstore для базы данных Private Automation Hub:

    psql -d <pah_database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore';"
    

    Здесь <pah_database> – название базы данных.

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

  1. Установите дополнительные пакеты для PostgreSQL:

    sudo apt install postgresql-contrib
    
  2. Создайте расширение hstore в базе данных Private Automation Hub:

    psql -d <pah_database> -c "CREATE EXTENSION hstore;"
    
  3. Проверьте доступность расширения с помощью запроса:

    psql -d <pah_database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore';"
    

    Если расширение установлено и настроено, в терминал выводится таблица следующего вида:

    name   | default_version | installed_version | comment
    -------+-----------------+-------------------+------------------------------------------------------
    hstore |      1.7        |       1.7         | data type for storing sets of (key, value) pairs
    (1 row)
    

Параметры подключения к PostgreSQL#

Параметры подключения Platform Gateway, Automation Controller, Private Automation Hub и контроллера Event-Driven Automation к СУБД задаются в глобальных переменных:

# ...
[all:vars]
# Platform Gateway
automationgateway_pg_host='database.example.com'
automationgateway_pg_port=5432
automationgateway_pg_database='automationgateway'
automationgateway_pg_username='automationgateway'
automationgateway_pg_password='gwpassword'

# Automation Controller
pg_host='database.example.com'
pg_port=5432
pg_database='awx'
pg_username='automationcontroller'
pg_password='ctrlpassword'

# Automation Hub
automationhub_pg_host='database.example.com'
automationhub_pg_port=5432
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='hubpgpassword'

# Event-Driven Automation controller
automationedacontroller_pg_host='database.example.com'
automationedacontroller_pg_port=5432
automationedacontroller_pg_database='automationedacontroller'
automationedacontroller_pg_username='automationedacontroller'
automationedacontroller_pg_password='edapassword'

# PostgreSQL TLS
postgres_use_ssl='true'
postgres_ssl_cert='/path/to/ssl/cert'
postgres_ssl_key='/path/to/ssl/key'
---
# ...
all:
  vars:
    # Platform Gateway
    automationgateway_pg_host: database.example.com
    automationgateway_pg_port: 5432
    automationgateway_pg_database: automationgateway
    automationgateway_pg_username: automationgateway
    automationgateway_pg_password: gwpassword

    # Automation Controller
    pg_host: database.example.com
    pg_port: 5432
    pg_database: awx
    pg_username: automationcontroller
    pg_password: ctrlpassword

    # Automation Hub
    automationhub_pg_host: database.example.com
    automationhub_pg_port: 5432
    automationhub_pg_database: automationhub
    automationhub_pg_password: hubpgpassword

    # Event-Driven Automation controller
    automationedacontroller_pg_host: database.example.com
    automationedacontroller_pg_port: 5432
    automationedacontroller_pg_database: automationedacontroller
    automationedacontroller_pg_username: automationedacontroller
    automationedacontroller_pg_password: edapassword

    # PostgreSQL TLS
    postgres_use_ssl: true
    postgres_ssl_cert: /path/to/ssl/cert
    postgres_ssl_key: /path/to/ssl/key

Здесь:

  • pg_host, automationhub_pg_host и automationedacontroller_pg_host– IP-адреса или FQDN серверов СУБД для Platform Gateway, Automation Controller, Private Automation Hub и контроллера Event-Driven Automation соответственно.

    Значение по умолчанию: пустая строка (используется локальное подключение).

  • automationgateway_pg_port, pg_port, automationhub_pg_port и automationedacontroller_pg_port – порты для подключения к СУБД для Platform Gateway, Automation Controller, Private Automation Hub и контроллера Event-Driven Automation соответственно.

    Значение по умолчанию: 5432.

  • automationgateway_pg_database, pg_database, automationhub_pg_database и automationedacontroller_pg_database – названия БД для Platform Gateway, Automation Controller, Private Automation Hub и контроллера Event-Driven Automation соответственно.

  • pg_username, automationhub_pg_username и automationedacontroller_pg_username – названия учетных записей пользователей БД Platform Gateway, Automation Controller, Private Automation Hub и контроллера Event-Driven Automation соответственно.

  • pg_password, automationhub_pg_password и automationedacontroller_pg_password – пароли пользователей БД Platform Gateway, Automation Controller, Private Automation Hub и контроллера Event-Driven Automation соответственно.

    Примечание

    При использовании СУБД, созданной установщиком платформы, пароль указывать не требуется.

  • postgres_use_ssl – использование SSL при подключении к БД Automation Controller:

    • true – включено;

    • false – выключено.

  • postgresql_ssl_cert – полный путь к файлу сертификата, который используется для защиты подключения к серверу СУБД PostgreSQL, развернутому установщиком платформы.

  • postgresql_ssl_key – полный путь к файлу ключа сертификата, который используется для защиты подключения к серверу СУБД PostgreSQL, развернутому установщиком платформы.

При использовании SSL по умолчанию используется режим prefer, который можно изменить для каждого компонента отдельно с помощью переменных automationgateway_pg_sslmode, pg_sslmode, automationhub_pg_sslmode и automationedacontroller_pg_sslmode соответственно. Они могут принимать следующие значения:

  • prefer – подключение к БД будет защищено с помощью SSL, если использование шифрования поддерживается настройками сервера;

  • verify-full – защита подключения с помощью SSL необходима, производится строгая верификация сервера.

Подробности о поддерживаемых параметрах шифрования см. в документации PostgreSQL.

Redis#

Компоненты Astra Automation используют для кеширования данных сервис Redis, который можно настроить на один из режимов работы в зависимости от выбранной топологии:

  • standalone – используют в базовой топологии, когда каждый компонент устанавливается на собственном узле, где также устанавливается служба Redis. Этот режим надо указывать явно:

    [all: vars]
    redis_mode=standalone
    
  • Режим кластера (по умолчанию) – используют в топологии уровня предприятия. В этом режиме надо перечислить все узлы кластера (не менее шести) в том составе, который представлен в рекомендуемой топологии (нельзя включать узлы из плоскостей управления и исполнения):

    # Redis cluster
    [redis]
    hub1.example.com
    hub2.example.com
    gw1.example.com
    gw2.example.com
    eda1.example.com
    eda2.example.com
    

    Пользуются этим кластером только узлы Platform Gateway и EDA. Остальные узлы пользуются собственным сервисом Redis.