Требуется тот или иной штат с солью
Я ищу несколько часов техники для написания состояния соли, для которого требуется требование1 или требование2.
Вот что я хотел бы сделать с cmd.run, например:
Run myscript:
cmd.run:
- name: /path/to/myscript
- require:
- pkgs: pkg1|pkg2
- cwd: /
Это означает, что сценарий my_script будет выполнен, если выполняется состояние установки пакета pkg1 или состояние установки pkg2.
Может ли это быть действительно сделано с солью? Если так, как?
Я знаю, что могу сделать все свои проверки в моем сценарии напрямую, но я хотел знать, могут ли солевые реквизиты сделать это умно.
Благодарю.
1 ответ
Соляные государства не поддерживают ветвление if
/else
/while
и т. д. Файл состояний отображается в данных, которые описывают статические деревья зависимостей. После визуализации выполнение выполняется по порядку.
Единственный способ сделать какое-то разветвление - это использовать unless
/onlyif
ключевые слова. Но они работают только с определенными типами состояний и не принимают идентификаторы состояний (AFAIK, они принимают только исполняемые команды оболочки). Смотрите: http://docs.saltstack.com/en/latest/ref/states/requisites.html