Требуются ли реквизиты или достаточно ли заказа?
Документы Salt полны такой схемы:
apache:
pkg:
- installed
service:
- running
- require:
- pkg: apache
Это повторение ("установите apache, теперь проверьте, был ли установлен apache"), похоже, является нарушением не-повторения-себя (DRY). Так нужно ли это?
Из " Понимания государственного заказа":
Чтобы выполнить что-то похожее на то, как функционируют классические императивные системы, все реквизиты могут быть опущены, а для параметра failhard затем будет установлено значение True в основной конфигурации, это остановит все запуски состояний при первом случае сбоя.
Кажется, это подразумевает, что использование реквизитов везде необязательно (при условии, что порядок декларирования правильный), но я хотел бы знать наверняка.
2 ответа
Это остаток до 0,15 дней, когда состояния не выполнялись сверху вниз.
Заказ сейчас достаточно.
Состояния теперь выполняются в том порядке, в котором они объявлены в ваших файлах sls. Вы по-прежнему хотите использовать "require", если хотите обеспечить успешное выполнение определенного состояния перед другим.
Например, вы можете убедиться, что пакет программного обеспечения установлен правильно, прежде чем пытаться установить файл конфигурации.
apache:
pkg:
- installed
file:
- managed
- name: /etc/apache/httpd.conf
- source: salt://apache/httpd.conf
- require:
- pkg: apache
Без "require" в вышеприведенном примере файл конфигурации был бы установлен, даже если apache pkg не удалось установить.