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

Это скорее запрос на уточнение.

У меня есть две формулы, которые основаны на пакетах, устанавливаемых 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 установлен.

Взгляните на реквизиты и документацию других аргументов глобального состояния для полного примера.

Другие вопросы по тегам