Рекомендуемая топология#
Согласно архитектуре, платформа содержит определенный набор компонентов. Конкретная топология платформы должна учитывать множество требований, предъявляемых к процессам и средствам автоматизации. Рекомендуется использовать один из рассматриваемых здесь вариантов, прошедших необходимое тестирование. Все описанные топологии содержат полный набор компонентов платформы, но различаются отказоустойчивостью, сложностью настройки и количеством узлов.
Минимальная топология – проста в настройке, нетребовательна к количеству узлов и их характеристикам, хорошо подходит для изучения возможностей платформы, но не обеспечивает отказоустойчивости.
Важно
Эта топология не рекомендуется для использования в производственных целях.
Базовая топология – расширяет возможности минимальной топологии, снижая нагрузку на 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
Минимальная топология#
Топология платформы, развернутой на минимальном количестве узлов, показана на схеме:
Подключение пользователей к Automation Controller и Private Automation Hub выполняется напрямую через порт 443
.
Для СУБД, Private Automation Hub и Automation Controller требуется всего по одному узлу.
Automation Controller взаимодействует с Private Automation Hub через порты 80
и 443
.
СУБД развертывается на отдельном узле средствами платформы.
Automation Controller и Private Automation Hub подключаются к своим базам данных через порт 5432
.
Параметры сетевого взаимодействия компонентов платформы:
Порт |
Протокол |
Служба |
Источник |
Цель |
---|---|---|---|---|
|
TCP |
HTTP/HTTPS |
Automation Controller |
Private Automation Hub |
|
TCP |
HTTPS |
Пользователи |
Automation Controller |
|
TCP |
HTTPS |
Пользователи |
Private Automation Hub |
|
TCP |
PostgreSQL |
Private Automation Hub |
База данных |
|
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-адрес |
Компонент |
Примечание |
---|---|---|
|
Automation Controller |
Гибридный узел |
|
Private Automation Hub |
– |
|
СУБД PostgreSQL |
Развертывается средствами платформы |
Базовая топология#
Топология платформы, использующей для запуска заданий отдельный узел, показана на схеме:
Подключение пользователей к 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.
Параметры сетевого взаимодействия компонентов платформы:
Порт |
Протокол |
Служба |
Источник |
Цель |
---|---|---|---|---|
|
TCP |
HTTP/HTTPS |
Automation Controller |
Private Automation Hub |
|
TCP |
HTTPS |
Пользователи |
Automation Controller |
|
TCP |
HTTPS |
Пользователи |
Private Automation Hub |
|
TCP |
PostgreSQL |
Private Automation Hub |
База данных |
|
TCP |
PostgreSQL |
Automation Controller |
База данных |
|
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-адрес |
Компонент |
Примечание |
---|---|---|
|
Automation Controller |
Управляющий узел |
|
Automation Controller |
Исполняющий узел, подключенный к плоскости управления напрямую |
|
Private Automation Hub |
– |
|
СУБД PostgreSQL |
Развертывается средствами платформы |
Топология уровня предприятия#
Одним из важнейших требований, предъявляемых к платформе со стороны предприятий, является отказоустойчивость. Топология платформы, развернутой в отказоустойчивой конфигурации, показана на схеме:
Такая топология обеспечивает отказоустойчивость и повышенное быстродействие платформы путем горизонтального масштабирования кластеов.
Подключение к узлам 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.
Подключение управляющих узлов к исполняющим может выполняться как напрямую, так и через промежуточные узлы.
Если все узлы платформы находятся в одной сети, использование промежуточных узлов не требуется.
Параметры сетевого взаимодействия компонентов платформы:
Порт |
Протокол |
Служба |
Источник |
Цель |
---|---|---|---|---|
|
TCP |
HTTP/HTTPS |
Automation Controller |
Private Automation Hub |
|
TCP |
HTTPS |
Балансировщик нагрузки |
Пользователи |
|
TCP |
HTTPS |
Балансировщик нагрузки |
Automation Controller |
|
TCP |
HTTPS |
Балансировщик нагрузки |
Private Automation Hub |
|
TCP |
PostgreSQL |
Private Automation Hub |
База данных |
|
TCP |
PostgreSQL |
Automation Controller |
База данных |
|
TCP |
Receptor |
Automation Controller |
Промежуточный и исполняющий узлы |
|
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-адрес |
Компонент |
Примечание |
---|---|---|
|
Automation Controller |
Узел плоскости управления |
|
Automation Controller |
Узел плоскости управления |
|
Automation Controller |
Промежуточный узел |
|
Automation Controller |
Исполняющий узел, подключенный к плоскости управления через промежуточный узел |
|
Automation Controller |
Исполняющий узел, подключенный к плоскости управления напрямую |
|
Private Automation Hub |
– |
|
Private Automation Hub |
– |
Секция [database]
оставлена пустой, поскольку развертывание сервера PostgreSQL средствами платформы в этом случае не используется.
Предполагается, что отказоустойчивый сторонний сервис PostgreSQL доступен по доменному имени pg-ha.example.com
.