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

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

Примечание

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

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

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

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

    [database]
    database.example.com   ansible_host=192.0.2.101
    
    database:
      hosts:
        database.example.com:
          ansible_host: 192.0.2.101
    
  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#

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

[all:vars]
# СУБД для Automation Controller
pg_host = 'database.example.com'
pg_port = 5432
pg_database = 'awx'
pg_username = 'automationcontroller'
pg_password = 'ctrlpassword'
pg_sslmode = 'prefer'
postgres_use_ssl = True
postgres_ssl_cert = /path/to/ssl/cert
postgres_ssl_key = /path/to/ssl/key

# СУБД для Automation Hub
automationhub_pg_host = 'database.example.com'
automationhub_pg_port = '5432'
automationhub_pg_database = 'automationhub'
automationhub_pg_username = 'automationhub'
automationhub_pg_password = 'hubpgpassword'
automationhub_pg_sslmode = 'prefer'

# СУБД для контроллера Event-Driven Ansible
automationedacontroller_pg_host = 'database.example.com'
automationedacontroller_pg_port = '5432'
automationedacontroller_pg_database = 'automationedacontroller'
automationedacontroller_pg_username = 'automationedacontroller'
automationedacontroller_pg_password = 'edapassword'
automationedacontroller_pg_sslmode = 'prefer'
all:
  vars:
    # СУБД для Automation Controller
    pg_host: 'database.example.com'
    pg_port: 5432
    pg_database: 'awx'
    pg_username: 'automationcontroller'
    pg_password: 'ctrlpassword'
    pg_sslmode: 'prefer'
    postgres_use_ssl: true
    postgres_ssl_cert: /path/to/ssl/cert
    postgres_ssl_key: /path/to/ssl/key

    # СУБД для Automation Hub
    automationhub_pg_host: 'database.example.com'
    automationhub_pg_port: '5432'
    automationhub_pg_database: 'automationhub'
    automationhub_pg_username: 'automationhub'
    automationhub_pg_password: 'hubpgpassword'
    automationhub_pg_sslmode: 'prefer'

    # СУБД для контроллера Event-Driven Ansible
    automationedacontroller_pg_host: 'database.example.com'
    automationedacontroller_pg_port: '5432'
    automationedacontroller_pg_database: 'automationedacontroller'
    automationedacontroller_pg_username: 'automationedacontroller'
    automationedacontroller_pg_password: 'edapassword'
    automationedacontroller_pg_sslmode: 'prefer'

Здесь:

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

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

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

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

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

    Примечание

    Если СУБД развернута средствами платформы, используйте название awx для базы данных Automation Controller (переменная pg_database в инвентаре установщика). В противном случае работа утилиты aa-setup будет прервана из-за ошибки.

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

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

    При использовании локального подключения пароль указывать не требуется.

  • pg_sslmode, automationhub_pg_sslmode и automationedacontroller_pg_sslmode – режим использования SSL.

    Может принимать следующие значения:

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

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

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

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

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

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

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

    Примечание

    Файлы сертификата и его ключа должны размещаться в каталоге /opt/rbta/aa/astra-automation-setup/ или одном из его подкаталогов.

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