Соляной стек: требуется установка пакетов перед выполнением формулы
Это скорее запрос на уточнение.
У меня есть две формулы, которые основаны на пакетах, устанавливаемых init.sls
Формула, прежде чем они бегут.
На данный момент у меня что-то вроде ниже. Мне было интересно, может ли кто-нибудь подтвердить, что это правильный подход или кто-то действительно может предложить лучший подход.
init.sls
install_packages:
pkg.installed:
- pkgs:
- foo
- bar
- require_in:
- sls: brrap
- sls: blah
Так будет ли это гарантировать, что вышеупомянутые пакеты будут установлены до запуска brrap.sls и blah.sls?
Спасибо
1 ответ
Да, используя require_in
в вашем примере убедитесь, что пакеты установлены до brrap.sls
а также blah.sls
выполнены.
Все _in
реквизиты работают одинаково: они приводят к нормальному реквизиту в целевом состоянии. require_in
Это утверждение особенно полезно при назначении запроса в отдельных файлах sls.
Пока brrap.sls
а также blah.sls
государствам не нужно знать о дополнительных компонентах (foo
а также bar
пакеты), которые требуют его при настройке, ваша конфигурация в порядке. Если brrap.sls
а также blah.sls
государства требуют foo
а также bar
пакеты, которые будут установлены во всех случаях, может быть более простым решением для создания require
реквизит из brrap.sls
а также blah.sls
состояния.
Возьмите, например, следующее состояние http.sls
:
httpd:
pkg.installed:
- name: httpd
service.running:
- name: httpd
На некоторых из ваших миньонов вы можете использовать http.sls
и на других вы можете использовать http.sls
и php.sls
состояния:
include:
- http
php:
pkg.installed:
- name: php
- require_in:
- service: httpd
Теперь сервер httpd будет запускаться только в том случае, если проверено, что php установлен.
Взгляните на реквизиты и документацию других аргументов глобального состояния для полного примера.