1

Соленого документы полны такого рода схеме:Необходимы реквизиты или достаточный заказ?

apache: 
    pkg: 
    - installed 
    service: 
    - running 
    - require: 
     - pkg: apache 

Это повторение («Установка Apache, теперь проверить, был ли установлен Apache»), как представляется, является нарушением не-повторять сам (DRY). Так это необходимо?

От «Understanding State Ordering»:

Чтобы сделать что-то подобное тому, как классическую функцию императивных систем всех реквизиты могут быть опущены и вариант failhard затем установите Истину в главной конфигурации, это остановит все состояние работает на первый случай отказа.

Это, по-видимому, подразумевает, что использование реквизитов повсюду на самом деле необязательно (при условии, что порядок объявления верен), но я хотел бы знать наверняка.

ответ

3

Это остаток до 0,15 дней, когда государства не выполнялись сверху вниз.

Удовлетворение заказа достаточно.

+1

Так что заказ во всех этих ситуациях соблюдается: формулы в верхнем файле, выражения внутри формулы и функции внутри оператора? –

+0

Вы можете прочитать об этом здесь: http://docs.saltstack.com/ref/states/ordering.html. Исторически сложилось так, что штаты обычно упорядочивались лексикографически на файл sls, теперь это не так. Ни одна другая система не имела или не имеет удивительного порядка выполнения. –

+0

Спасибо. Странно - есть две разные страницы документа о государственном заказе (см. Тот, с которым я связан). –

1

Государства теперь выполняются в том порядке, в котором они объявлены в ваших файлах sls. Если вы хотите использовать «require», вы хотите, чтобы определенное состояние выполнялось успешно перед другим.

Например, вы можете убедиться, что пакет программного обеспечения установлен правильно, прежде чем пытаться установить конфигурационный файл.

apache: 
    pkg: 
    - installed 
    file: 
    - managed 
    - name: /etc/apache/httpd.conf 
    - source: salt://apache/httpd.conf 
    - require: 
     - pkg: apache 

Без «требуют» в приведенном выше примере, конфигурационный файл будет заложен даже если апач упак не удалось установить.

+0

Чтобы немного перерисовать, то, что я считаю глупым в этом примере, - это то, почему вам даже нужен бит «pkg: - installed». Не мог бы солить просто интерпретировать «require-pkg: apache» как означающий «этот пакет должен быть установлен, поэтому установите его сейчас, если его уже нет». –

+0

Кроме того, я знаю, что failhard не является дефолтом, но на практике для меня почти ничего не остается после неудачи. Мне нужно, чтобы вся коробка была настроена идеально - неудачи - это нехорошо. Возможно, это полезно при разработке. –

Смежные вопросы