Рекомендуемая топология#

Согласно архитектуре, платформа содержит определенный набор компонентов. Конкретная топология платформы должна учитывать множество требований, предъявляемых к процессам и средствам автоматизации. Рекомендуется использовать один из рассматриваемых здесь вариантов, прошедших необходимое тестирование. Все описанные топологии содержат полный набор компонентов платформы, но различаются отказоустойчивостью, сложностью настройки и количеством узлов.

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

    Важно

    Эта топология не рекомендуется для использования в производственных целях.

  • Базовая топология – расширяет возможности минимальной топологии, снижая нагрузку на Automation Controller за счет использования отдельного узла для запуска заданий Ansible. Не обеспечивает отказоустойчивости, однако, может быть удобна для начальной стадии развития процессов автоматизации информационных технологий в компании.

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

Характеристики узлов#

Характеристики узлов, на которых тестировались приведенные топологии:

  • Узлы платформы и развернутой ее средствами СУБД

    Параметр

    Значение

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

    8

    Количество RAM, ГБ

    16

    Дисковое пространство, ГБ

    50

    Тип дискового накопителя

    Сетевой SSD

    IOPS

    2000

    Тип ОС

    Astra Linux Special Edition 1.7.5uu1

    Версия ядра ОС

    6.1.50-generic

    Режим защищенности ОС

    Базовый («Орел»)

  • Узлы СУБД во внешнем сервисе

    Параметр

    Значение

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

    8

    Количество RAM, ГБ

    32

    Дисковое пространство, ГБ

    100

    Лимит на количество одновременно открытых подключений

    300

Минимальная топология#

Топология платформы, развернутой на минимальном количестве узлов, показана на схеме:

../../_images/minimal.svg

Подключение пользователей к Automation Controller и Private Automation Hub выполняется напрямую через порт 443.

Для СУБД, Private Automation Hub и Automation Controller требуется всего по одному узлу.

Automation Controller взаимодействует с Private Automation Hub через порты 80 и 443.

СУБД развертывается на отдельном узле средствами платформы. Automation Controller и Private Automation Hub подключаются к своим базам данных через порт 5432.

Параметры сетевого взаимодействия компонентов платформы:

Порт

Протокол

Служба

Источник

Цель

80/443

TCP

HTTP/HTTPS

Automation Controller

Private Automation Hub

443

TCP

HTTPS

Пользователи

Automation Controller

443

TCP

HTTPS

Пользователи

Private Automation Hub

5432

TCP

PostgreSQL

Private Automation Hub

База данных

5432

TCP

PostgreSQL

Automation Controller

База данных

Пример файла инвентаря для минимальной топологии:

[automationcontroller]
ctrl.example.com  ansible_host=192.168.56.11

[automationhub]
hub.example.com   ansible_host=192.168.56.12

[database]
db.example.com    ansible_host=192.168.56.101

[all:vars]
ansible_ssh_private_key_file=/path/to/private/ssh/key
ansible_user=admin

admin_email=admin@example.com
admin_password="ctRlp@ssW0rd"
admin_username=admin

pg_host="192.168.56.101"
pg_port=5432
pg_database='automationcontroller'
pg_username='automationcontroller'
pg_password='ctrlDBpaS$123456'
pg_ssl_mode='prefer'

# Automation Hub
automationhub_admin_password="hU8p4ssWd1234"
automationhub_main_url="https://hub.example.com"
automationhub_pg_host="192.168.56.101"
automationhub_pg_port=5432
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='hUbPa55I2345b'
automationhub_pg_sslmode='prefer'

Здесь:

IP-адрес

Компонент

Примечание

192.168.56.11

Automation Controller

Гибридный узел

192.168.56.12

Private Automation Hub

192.168.56.101

СУБД PostgreSQL

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

Базовая топология#

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

../../_images/base.svg

Подключение пользователей к Automation Controller и Private Automation Hub выполняется напрямую через порт 443.

Для СУБД, Private Automation Hub, управляющей и исполняющей плоскостей Automation Controller требуется всего по одному узлу.

Automation Controller взаимодействует с Private Automation Hub через порты 80 и 443.

СУБД развертывается на отдельном узле средствами платформы. Automation Controller и Private Automation Hub подключаются к своим базам данных через порт 5432.

Связь между управляющим и исполняющим узлами Automation Controller обеспечивается через порт 27199 сети Automation mesh.

Параметры сетевого взаимодействия компонентов платформы:

Порт

Протокол

Служба

Источник

Цель

80/443

TCP

HTTP/HTTPS

Automation Controller

Private Automation Hub

443

TCP

HTTPS

Пользователи

Automation Controller

443

TCP

HTTPS

Пользователи

Private Automation Hub

5432

TCP

PostgreSQL

Private Automation Hub

База данных

5432

TCP

PostgreSQL

Automation Controller

База данных

27199

TCP

Receptor

Automation Controller

Исполняющий узел

Пример файла инвентаря для базовой топологии:

[automationcontroller]
ctrl.example.com  ansible_host=192.168.56.11  node_type=control

[automationcontroller:vars]
peers=execution_nodes

[execution_nodes]
exec.example.com  ansible_host=192.168.56.12

[automationhub]
hub.example.com   ansible_host=192.168.56.13

[database]
db.example.com    ansible_host=192.168.56.101

[all:vars]
ansible_ssh_private_key_file=/path/to/private/ssh/key
ansible_user=admin

admin_email=admin@example.com
admin_password="ctRlp@ssW0rd"
admin_username=admin

pg_host="192.168.56.101"
pg_port=5432
pg_database='automationcontroller'
pg_username='automationcontroller'
pg_password='ctrlDBpaS$123456'
pg_ssl_mode='prefer'

# Automation Hub
automationhub_admin_password="hU8p4ssWd1234"
automationhub_main_url="https://hub.example.com"
automationhub_pg_host="192.168.56.101"
automationhub_pg_port=5432
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='hUbPa55I2345b'
automationhub_pg_sslmode='prefer'

Здесь:

IP-адрес

Компонент

Примечание

192.168.56.11

Automation Controller

Управляющий узел

192.168.56.12

Automation Controller

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

192.168.56.13

Private Automation Hub

192.168.56.101

СУБД PostgreSQL

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

Топология уровня предприятия#

Одним из важнейших требований, предъявляемых к платформе со стороны предприятий, является отказоустойчивость. Топология платформы, развернутой в отказоустойчивой конфигурации, показана на схеме:

../../_images/enterprise.svg

Такая топология обеспечивает отказоустойчивость и повышенное быстродействие платформы путем горизонтального масштабирования кластеов.

Подключение к узлам Private Automation Hub и Automation Controller выполняется через балансировщики нагрузки или отказоустойчивые прокси-серверы (не входят в состав платформы) через порт 443.

Узлы Automation Controller взаимодействуют с узлами Private Automation Hub через порты 80 и 443.

Для хранения баз данных используется внешний сервис PostgreSQL. Automation Controller и Private Automation Hub подключаются к своим базам данных через порт 5432.

Для обеспечения отказоустойчивости и Private Automation Hub, и Automation Controller развертываются на нескольких узлах каждый.

Связь между управляющими, промежуточными и исполняющими узлами Automation Controller выполняется через порт 27199 сети Automation mesh. Подключение управляющих узлов к исполняющим может выполняться как напрямую, так и через промежуточные узлы. Если все узлы платформы находятся в одной сети, использование промежуточных узлов не требуется.

Параметры сетевого взаимодействия компонентов платформы:

Порт

Протокол

Служба

Источник

Цель

80/443

TCP

HTTP/HTTPS

Automation Controller

Private Automation Hub

443

TCP

HTTPS

Балансировщик нагрузки

Пользователи

443

TCP

HTTPS

Балансировщик нагрузки

Automation Controller

443

TCP

HTTPS

Балансировщик нагрузки

Private Automation Hub

5432

TCP

PostgreSQL

Private Automation Hub

База данных

5432

TCP

PostgreSQL

Automation Controller

База данных

27199

TCP

Receptor

Automation Controller

Промежуточный и исполняющий узлы

27199

TCP

Receptor

Промежуточный узел

Исполняющий узел

Пример файла инвентаря для топологии уровня предприятия:

[automationcontroller]
ctrl1.example.com  ansible_host=192.168.56.11
ctrl2.example.com  ansible_host=192.168.56.12

[automationcontroller:vars]
node_type=control
peers=instance_group_local


[execution_nodes]
hop.example.com    ansible_host=192.168.56.13
exec1.example.com  ansible_host=192.168.56.14
exec2.example.com  ansible_host=192.168.56.15

[instance_group_local]
exec1.example.com

[hop]
hop.example.com

[hop:vars]
node_type=hop
peers=automationcontroller

[instance_group_remote]
exec1.example.com

[instance_group_remote:vars]
peers=hop

[automationhub]
hub1.example.com   ansible_host=192.168.56.16
hub2.example.com   ansible_host=192.168.56.17

[database]
# Используется внешний кластер PostgreSQL

[all:vars]
ansible_ssh_private_key_file=/path/to/private/ssh/key
ansible_user=admin

admin_email=admin@example.com
admin_password="ctRlp@ssW0rd"
admin_username=admin

pg_host="pg-ha.example.com"
pg_port=5432
pg_database='automationcontroller'
pg_username='automationcontroller'
pg_password='ctrlDBpaS$123456'
pg_ssl_mode='prefer'

# Automation Hub
automationhub_admin_password="hU8pAssWd1234"
automationhub_main_url="https://hub.example.com"
automationhub_pg_host="pg-ha.example.com"
automationhub_pg_port=5432
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='hUbPa55I2345b'
automationhub_pg_sslmode='prefer'

Здесь:

IP-адрес

Компонент

Примечание

192.168.56.11

Automation Controller

Узел плоскости управления

192.168.56.12

Automation Controller

Узел плоскости управления

192.168.56.13

Automation Controller

Промежуточный узел

192.168.56.14

Automation Controller

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

192.168.56.15

Automation Controller

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

192.168.56.16

Private Automation Hub

192.168.56.17

Private Automation Hub

Секция [database] оставлена пустой, поскольку развертывание сервера PostgreSQL средствами платформы в этом случае не используется. Предполагается, что отказоустойчивый сторонний сервис PostgreSQL доступен по доменному имени pg-ha.example.com.