Графы
Графы являются описаниями автоматизаций в системе Атом.Порт. Согласно им выполняются задачи конфигурирования удалённых компьютеров и сохраняется некоторая информация о них.
Документ разъясняет принятый синтаксис сериализации графов версии 2.
3. Словарь узлов nodes
💾 Актуально для версии Атом.Порт:
63ef9982
Значение словаря nodes
Словарь узлов nodes содержит пары ключ-значение, где ключом является название определяемого узла, а значением — объект, определяющий свойства узла. Объект может содержать следующие поля (ключи):
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
description |
Строка | Человекочитаемое описание узла. | |
unit_type |
✔ | Строка | Тип узла. |
unit_data |
Словарь | Параметры, специфичные для данного unit_name. |
|
retry_limit |
Целое число | Количество повторных запусков узла в случае неуспешного выполнения до того, как узел будет помечен неуспешным 🔴. |
Типы узлов
Следующие типы узлов могут быть указаны в качестве значения поля unit_type.
UnitAutoProcess
Запускает другую автоматизации. Текущая автоматизация становится на паузу.
Допустимые ключи, которые передаются unit_kwarg узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
graph_name |
✔ | Строка | Название графа, который будет запущен. |
timeout |
Целое число | Время ожидания автоматизации. Когда истекает, узел помечается неуспешным 🔴, если автоматизация ещё не выполнилась. |
UnitCommand
Запускает функций модулей исполнения SaltStack. Это основные узлы для конфигурирования рабочих станций
Допустимые ключи, которые передаются unit_data узла:
👉 При применении состояний функцией
state.applyдля передачи значений в формулу SaltStack используйте именованный аргументpillar, имеющий формат словаря.
UnitEnd
Завершает путь. Конечный узел, сток. Обычно инженеру не требуется определять узлы такого типа самостоятельно.
UnitFail
Безусловно устанавливает вес входящей дуги в бесконечность. Преимущественно для отладки.
UnitGroup
Добавляет и удаляет рабочую станцию из заданных групп.
Допустимые ключи, которые передаются unit_data узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
groups |
* | Список строк | Группы для изменения, указываемые иерархическими именами вида /Родительская группа/Название целевой группы. |
action |
* | Строка [add|remove] |
Действие (добавить или удалить рабочую станцию из группы) |
UnitIF
Условный оператор, производящий сравнение переменных Атом.Порт и литералов. Устанавливает вес входящей дуги в зависимости от результата.
Допустимые ключи, которые передаются unit_data узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
op |
* | Строка [eq|ne|gt|ge|lt|le|in|notin] |
Оператор для сравнения |
val_1 |
* | Литерал | Левый операнд, значение или путь идентификатор Атом.Порт |
val_2 |
* | Литерал | Правый операнд, значение или путь идентификатор Атом.Порт |
UnitMessage
Отправляет уведомление в Телеграм. Интеграция с мессенджером должна быть настроена.
Допустимые ключи, которые передаются unit_data узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
message |
* | Строка | Текст сообщения |
UnitPause
Ожидает перед проходом дальше.
Допустимые ключи, которые передаются unit_data узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
delay |
* | Целое число | Кол-во секунд для ожидания |
UnitRunner
Запускает функции модулей бегунков (раннеров) SaltStack.
Допустимые ключи, которые передаются unit_data узла: аналогично UnitCommand, однако function должнен указывать на функцию модуля бегунков, например state.orchestrate.
UnitSet
Устанавливает значения переменных Атом.Порт.
Допустимые ключи, которые передаются unit_data узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
target |
* | строка | Идентификатор переменной Атом.Порт (доступно хранилище ключ-значение) |
value |
* | строка | Устанавливаемое значение |
UnitStart
Начинает путь. Начальный узел, исток. Обычно инженеру не требуется определять узлы такого типа самостоятельно.
UnitSystemMessage
Отправляет уведомление через интерфейс Атом.Порт.
Допустимые ключи, которые передаются unit_data узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
message |
* | Строка | Текст сообщения |
message_type |
* | Целое число [1-4] |
Тип отправляемого уведомления |
UnitWaitingMinion
Ожидает доступности миньона указанного типа. Полезно при перезагрузке рабочей станции в другую операционную систему.
Допустимые ключи, которые передаются unit_data узла:
| Поле | Обязательное | Тип | Значение |
|---|---|---|---|
minion_type |
* | Строка [windows|linux|helper|active|master] |
Тип миньона рабочей станции, для которого запускается функция, см. UnitCommand |
timeout |
Целое число | Время ожидания миньона в секундах до того, как узел будет помечен неуспешным 🔴 | |
activity_timeout |
Целое число | Временно́е окно в секундах, учитывающее прошлую активность миньона. По умолчанию 120 сек. |