Графы

5. Передача значений

💾 Актуально для версии Атом.Порт: 63ef9982

Спецификации значений

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

  • setting:group.name — параметр name группы настроек group (о настройках см. раздел про специальные файлы).
  • obj_ap:field1.field ... fieldN — поле объекта AutoProcess.
  • obj_ws:field1.field2 ... fieldN — поле объекта Workstation.

👉 Спецификации obj_* требуют осторожности в обращении и могут быть изменены в будующем.

Спецификации раскрываются в значения каждый раз в момент запуска узла в составе автоматизации.

Передача значений состояниям SaltStack

 Для передачи значений, включая указываемые при помощи спецификаций, в формулы SaltStack, используйте аргумент pillar. Это стандартный механизм, позволяющий получить и обработать значение в состоянии при помощи шаблонизатора из специального объекта с интерфейсом словаря pillar. Пример передачи значения в описании узла:

  create_shared_folder:
    description: Создание общего каталога для доступа к данным в виртуальной машине
    unit_type: Command
    unit_data:
      function: state.apply
      args:
        - states.postconfigurated.kvm_created.linux_samba_shared
      kwargs:
        pillar:
          domain_name: setting:install.domain_name
      minion_type: linux

В формуле linux_samba_shared.yaml значение может быть получено так:

type_domain:
  test.show_notification:
    - text: Domain: {{ pillar.get('domain_name') }}

...