Управление топологией системы автоматизации операций#
Топология системы не является статичной и может изменяться по мере роста инфраструктуры, увеличения нагрузки или изменения требований безопасности. К таким изменениям относятся подключение новых узлов, добавление промежуточных узлов или адаптация Automation Mesh к изменившимся сетевым условиям. Платформа поддерживает централизованное управление топологией без ее повторного развертывания.
Архитектурные особенности Automation Mesh и моделей соединений подробно рассмотрены в разделе Особенности архитектуры.
Ниже рассмотрены возможные варианты добавление новых исполняющих или промежуточных узлов, что позволяет масштабировать выполнение автоматизации, выносить исполнение в удаленные сегменты сети и адаптировать систему к корпоративным требованиям безопасности.
Топология на базе ВМ#
В среде виртуальных машин Automation Mesh формируется на основе описания инвентаря для утилиты aa-setup.
В описании инвентаря указывают:
управляющие узлы;
исполняющие узлы;
промежуточные узлы (при необходимости);
параметры взаимодействия между ними.
После изменения описания инвентаря выполняют обновление сети Mesh и ее узлов путем запуска aa-setup.
Для добавления плоскости исполнения в топологию на базе ВМ выполните следующие шаги:
Убедитесь, что исполняющие и промежуточные (при наличии) узлы подготовлены согласно требованиям.
Обновите описание инвентаря.
В зависимости от архитектуры и требований к отказоустойчивости могут использоваться следующие варианты:
Запустите утилиту
aa-setupдля применения изменений.
Топология в кластере Kubernetes#
При использовании Kubernetes плоскость управления развертывается внутри кластера, что накладывает ограничения на установление входящих соединений. В этом случае узлы плоскости исполнения не устанавливают прямые входящие соединения к Automation Controller.
Добавление плоскости исполнения может выполняться двумя способами:
добавление отдельных узлов с помощью графического интерфейса;
централизованное добавление нескольких узлов с использованием
ansible-navigator.
Добавление одиночных узлов#
Для простых сценариев допускается добавление отдельных исполняющих узлов с помощью веб-интерфейса Astra Automation. Этот способ используется при минимальных топологиях с применением файла описания инвентаря, созданного через графический интерфейс.
Убедитесь, что исполняющий узел подготовлен согласно требованиям.
Перейдите в веб-интерфейс Astra Automation.
На панели навигации выберите () и начните добавлять узел, нажав на кнопку Create instance.
В окне Create instance настройте следующие поля:
Host name: IP-адрес исполняющего узла;
Listener port: 27199;
Instance type: Execution;
Options: выберите все опции: Enable instance, Managed by policy и Peers from control nodes.
Нажмите кнопку Create Instance.
В открывшемся окне нажмите кнопку Download bundle для выгрузки установочного пакета.
Распакуйте этот пакет на установочный узел.
Перейдите в распакованный каталог.
Убедитесь, что в файле описания инвентаря
inventory.ymlправильно настроены следующие параметры (согласно настройкам в добавляемом узле):ansible_host– IP-адрес исполняющего узла;ansible_user– название учетной записи с административными привилегиями, например,admin;ansible_ssh_private_key_file– путь к приватному ключу SSH для этой учетной записи, например,~/.ssh/id_ed25519.Альтернативный способ передачи ключей SSH см. в следующем шаге.
Если на предыдущем шаге значение параметра
ansible_ssh_private_key_fileне было задано, необходимо запустить агент SSH и добавить в него ключи доступа к узлам плоскости исполнения:eval $(ssh-agent -s) ssh-add <path_to_ansible_ssh_private_key_file>
Утилита
ansible-navigatorиспользует запущенный агент SSH для аутентификации при подключении к исполняющим узлам.Выполните сценарий настройки узла:
ansible-navigator run install_receptor.yml \ -i inventory.yml \ --eei hub.astra-automation.ru/aa-2.0/aa-full-ee:1.1.0-aa2.0-ansible2.15 \ -m stdout
По завершении выполнения сценария выводится строка вида:
PLAY RECAP ********************************************************************************************** remote-execution : ok=71 changed=40 unreachable=0 failed=0 skipped=10 rescued=0 ignored=0
В графическом интерфейсе платформы убедитесь, что состояние добавленного узла стало
Ready.
Добавление группы узлов в плоскости исполнения#
При подключении нескольких исполняющих или промежуточных узлов рекомендуется использовать централизованный подход.
Убедитесь, что исполняющие и промежуточные узлы (при наличии) подготовлены согласно требованиям.
Подготовьте приватный ключ SSH, который предоставляет пользователю доступ к добавляемым узлам с привилегиями администратора.
Создайте токен доступа для пользователя
admin:В веб-интерфейсе перейдите в ().
В списке пользователей выберите admin.
Переключитесь на вкладку Токены (Tokens) и нажмите кнопку Создать токен (Create token).
В поле Область (Scope) выберите Писать (Write).
Нажмите внизу кнопку Создать токен (Create token). Сохраните токен в надежном месте, поскольку после закрытия окна он не будет более доступен.
Подготовьте файл описания инвентаря, например
inventory.yml, следующего вида:--- all: vars: ac_host: "https://aa.demo.example.com" ac_token: "6JShbAmkz9k5QyMKGX6ZUGTCjfZzJs" ansible_ssh_common_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" children: hop_nodes: hosts: hop-node-01: ansible_host: 10.177.93.56 ansible_user: admin ansible_ssh_private_key_file: keys/id_ed25519 execution_nodes: hosts: exec-node-01: ansible_host: 10.177.93.13 ansible_user: admin ansible_ssh_private_key_file: keys/id_ed25519 hop_node_related: "hop-node-01" peers_from_control_nodes: false
Файл содержит настройки общих переменных и настройки параметров доступа для промежуточных узлов (группа
hop_nodes) и исполняющих узлов (группаexecution_nodes). В файле необходимо задать следующие переменные в соответствии с параметрами добавляемых узлов:ac_host: URL к шлюзу платформы.ac_token: подготовленный токен для пользователяadmin.ansible_host: IP-адрес соответствующего узла.ansible_user: название учетной записи с привилегиями администратора на соответствующем узле.ansible_ssh_private_key_file: относительный путь к приватному ключу SSH для этой учетной записи.Альтернативный способ передачи ключей SSH см. в следующем шаге.
hop_node_related(требуется, если подключение идет через hop node): параметр подключения к узлу hop в виде значенияinventory_hostnameилиreceptor_addressID, если узел hop уже существует.peers_from_control_nodes:true, если подключение будет напрямую к плоскости управления, илиfalse, если через hop.Внимание
Если одновременно заданы переменные
hop_node_relatedиpeers_from_control_nodes=true, то приоритет будет иметьpeers_from_control_nodes. Это значит, что исполняющий узел будет подключен напрямую к контроллеру.
Если требуется подключить создаваемые исполняющие узлы к промежуточному узлу, размещенному внутри кластера Kubernetes (Mesh Ingress), в переменной
hop_node_relatedнеобходимо указать идентификаторreceptor_addressэтого промежуточного узла.Идентификатор можно получить через API шлюза
/api/controller/v2/receptor_addresses/. Как правило, идентификатор Mesh Ingress промежуточного узла имеет значение2.В поле
addressсоответствующей записи будет указано доменное имя Mesh Ingress, заданное в ранее примененном манифестеk8s-ac-demo-mesh-ingress.yaml(например,aa.demo.mesh.example.ru).Если на предыдущем шаге значение параметра
ansible_ssh_private_key_fileне было задано, необходимо запустить агент SSH и добавить в него ключи доступа к узлам плоскости исполнения:eval $(ssh-agent -s) ssh-add <path_to_ansible_ssh_private_key_file>
Утилита
ansible-navigatorиспользует запущенный агент SSH для аутентификации при подключении к исполняющим и промежуточным узлам.Выполните сценарии настройки и подключения узлов:
ansible-navigator run /usr/share/ansible/collections/ansible_collections/astra/receptor/playbooks/install_multiple_nodes.yml \ -i inventory.yml \ --eei hub.astra-automation.ru/aa-2.0/aa-full-ee:1.1.0-aa2.0-ansible2.15 \ -m stdout
По завершении выполнения сценария Ansible выводит типовую секцию
PLAY RECAP.В графической интерфейсе платформы убедитесь, что появились новые узлы плоскости исполнения и их состояние
Ready. Для этого на панели выберите следующие окна: