(это копия вопроса, который я задал группе солевых пользователей, FWIW)
Мне нужно написать состояние, которое устанавливает некоторые функции сервера Windows, перезагружает миньон, а затем устанавливает еще несколько программ. Кажется, что все части есть (cmd.wait, system.reboot), но у меня возникли проблемы с подключением точек.
Например, у меня есть состояние "веб-сервер", которое должно установить IIS на машине. Он должен включить некоторые функции сервера, перезагрузить (потому что Windows), а затем продолжить. Мы делаем это с помощью настраиваемого модуля с именем "веб-сайт", который позволяет мне установить веб-сайт и еще один модуль для установки пулов приложений. Наш файл состояния выглядит примерно так:
my_website:
website.installed:
- name: example.com
- version: alpha-1.0.0
- type: Website
- bindings:
- hostheader: localhost
- port: 1234
- installdir: c:\\wwwroot\\example.com
- apppool: static
- require:
- sls: serverstate.webserver
- sls: apppool.static
Вышеизложенное отлично работает, за исключением того факта, что нам нужно выполнить перезагрузку между требованиями "serverstate.webserver" и "apppool.static". Как бы то ни было, состояние терпит неудачу, мы вручную перезагружаемся, а затем перезапускаем состояние, и оно работает. Естественно, мы хотим опустить шаг ручной перезагрузки.
Существует ли общий шаблон для решения этой проблемы?