Требовать SLS по своей декларации ID
У меня есть два файла состояния:
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
хотя так и должно быть)
2 ответа
Вы правильно включили файл php sls. Вам просто нужно установить ваши требования следующим образом:
- pkg: php
Вот пример, который должен работать:
php-fpm:
pkg:
- name: php53u-fpm
- installed
- require:
- pkg: php
service:
- running
- enable: True
- watch:
- pkg: php53u-fpm
- pkg: php
Обратите внимание, что я также добавил требование в раздел pkg, чтобы убедиться, что пакет php установлен перед пакетом php53u-fpm.
Я также изменил "требовать" в служебной строфе на "часы". "Watch" действует как "require", но также перезапускает сервис, если "watched" pkg изменяется. Так что, если есть обновление пакета, он автоматически перезапустит службу.
Это совершенно нормально, в списке требований вам нужно использовать декларацию ID ( http://docs.saltstack.com/ref/states/highstate.html).
Модуль php / init.sls содержит только одно объявление ID: {pkg: php53u}. Объявление ID состоит из имени штата (pkg) и имени компонента (php53u).
Вы не можете требовать весь модуль в соли, но в последних версиях модули будут выполняться в порядке объявления, поэтому модуль php должен выполняться перед модулем php-fm. Соль будет соблюдать обязательные ссылки в любых случаях.
Словарь в солевой стопке может быть немного трудным для начинающих, вот страница, которая может вам помочь: http://docs.saltstack.com/ref/states/highstate.html.