2013-11-24 3 views
3

У меня есть два состояния файла:Требовать СЛС по идентификатору декларации

  • php/init.sls
  • php-fpm.sls

php/init.sls инсталлирует пакет php53u

Я пытаюсь получить php-fpm.sls требовать php как я заявляю его внутри php/init.sls, однако она работает только тогда, когда я требовать от pkg: php53u и не sls: php

Содержание php/init.sh:

php: 
    pkg: 
    - name: php53u 
    - installed 

Содержание php-fpm.sls (с использованием pkg, где он работает):

include: 
    - nginx 
    - php 

php-fpm: 
    pkg: 
    - name: php53u-fpm 
    - installed 
    service: 
    - running 
    - enable: True 
    - require: 
     - pkg: php53u-fpm 
     - pkg: php53u 

extend: 
    nginx: 
    file: 
     - name: /etc/nginx/php-fpm 
     - source: salt://nginx/src/etc/nginx/php-fpm 
     - managed 
     - template: jinja 

(обратите внимание, что это имеет дополнительный материал о nginx, что в настоящее время не является require, хотя это должно быть)

ответ

3

Вы правильно включая файл PHP СЛС. Вам просто нужно настроить ваш требуйте так:

- pkg: php 

Вот пример, который должен работать:

php-fpm: 
    pkg: 
    - name: php53u-fpm 
    - installed 
    - require: 
     - pkg: php 
    service: 
    - running 
    - enable: True 
    - watch: 
     - pkg: php53u-fpm 
     - pkg: php 

, что я также добавил требуется в упак строфы, чтобы убедиться, что пакет РНР Примечание установленного перед пакетом php53u-fpm.

Я также изменил «требуют» под строфы службы к «смотреть». «Часы» действуют как «требуют», но также перезапускают сервис, если изменяется «наблюдаемый» pkg. Поэтому, если есть обновление пакета, он автоматически перезапустит службу.

1

Это нормально, в списке потребностей вам необходимо использовать идентификатор объявления (http://docs.saltstack.com/ref/states/highstate.html#term-id-declaration).

Модуль PHP/init.sls содержит только один идентификатор декларации: {PKG: php53u}. Объявление идентификатора состоит из имени состояния (pkg) и имени компонента (php53u).

Вы не можете использовать весь модуль в соли, но в последних версиях модули будут выполняться в порядке объявления, поэтому модуль php должен быть выполнен до php-fm. Соль будет уважать, требуя требуемых ссылок в любом случае.

Словарь соляных стекол может быть немного сложным для начинающих, вот страница, которая может вам помочь: http://docs.saltstack.com/ref/states/highstate.html.

+0

Пример в http://docs.saltstack.com/ref/states/highstate.html#large-example под '# множественных состояний для одного id' кажется, ссылки, что я перечислил, как' php', что и Идентификация идентификатора. Кроме того, пример в http://docs.saltstack.com/ref/states/highstate.html#requisite-reference в разделе «Объявление названия» для 'mywebsite' и' apache' также, похоже, поддерживает меня. –

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