У меня есть состояние солевой оркестровки, которое я вызываю с помощью солт-вызова от мастера, и передаю в столбце командной строки целевого хоста, на котором я хочу выполнить оркестровку.
Я хотел бычтобы иметь возможность выполнить это против нескольких целевых хостов в одной команде.Я могу сделать это с внешним файлом, который я читаю в orch вместо столбца командной строки, но этот внешний файл должен присутствовать в stash и не может быть отредактирован напрямую, поэтому его нужно будет загружать / объединять каждый развремя.
Ищите способ передать несколько целевых имен хостов в сеть через столбец командной строки .... если возможно.
вызов командной строки:
sudo salt-run state.orchestrate core.database.oracle.ora12201jvm_psu_orch pillar='{"target":"myHost"}'
фрагмент кода orch sls:
{% set psuTarget = salt['pillar.get']('target','abcdefg') %}
download_psu_{{ psuTarget }}:
salt.state:
- tgt: {{ psuTarget }}
- sls:
- core.database.oracle.download_ora12201ojvm_psu
- timeout: 900
- failhard: True
Я попытался использовать синтаксис в руководстве для передачи нескольких значений столбца, но он обработал только первое, а затем остановился:
sudo salt-run state.orchestrate core.database.oracle.ora11204ee_psu_orch pillar='{"target":"myHost1","myHost2"}'
Я также попыталсяиспользуя в коде цикл for, например:
{% set psuTargetList = 'salt[pillar.get']('target','abcdefg') %}
{% for psuTarget in psuTargetList %}
, но он вообще не интерпретировал значения - выдал ошибку по первому идентификатору download_psu_0 (вместо ожидаемого download_psu_myHost1)