2017-02-09 21 views
2

Это скорее запрос уточнения.Соляной стек: требуется, чтобы пакеты были установлены до выполнения формулы

У меня есть две формулы, которые полагаются на связку пакетов, устанавливаемых формулой init.sls, прежде чем они будут запущены.

На данный момент у меня есть что-то вроде ниже. Мне было интересно, может ли кто-нибудь подтвердить, что это правильный подход или кто-то действительно может предложить лучший подход.

init.sls

install_packages: 
    pkg.installed: 
    - pkgs: 
     - foo 
     - bar 
    - require_in: 
     - sls: brrap 
     - sls: blah 

Так будет делать это убедиться, что установлены вышеуказанные пакеты перед тем brrap.sls и blah.sls выполнены?

Благодаря

+0

Выглядит хорошо с моей точки зрения. – dahrens

ответ

3

Да, используя 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 проверяется на установление.

Взгляните на документацию requisites and other global state arguments для полного примера.

+0

Благодарим вас за такое полное разъяснение. –

+1

Замечание require_in на всех файлах sls - это [разрушение до азота] (https://github.com/saltstack/salt/issues/22852). –