Команды группировки соляных стеков

Если мне нужно выполнить следующие 3 команды, как мне сгруппировать их, чтобы мне нужно было вызвать только одну?

salt '*' git.fetch cwd=/var/git/myproject opts='--all' user=git
salt '*' git.pull cwd=/var/git/myproject opts='origin master'
salt '*' nginx.signal reload

Я могу использовать ткань, чтобы поместить их в одну функцию, скажем, deploy, которая может принимать имя миньона, а затем запускать его через мастер, но мне интересно, есть ли в соляном стеке что-то встроенное?


person Marconi    schedule 23.02.2013    source источник
comment
Думали ли вы о создании состояния, в котором вы просто запускаете команды, но должны ждать завершения другого состояния и так далее?   -  person tudoricc    schedule 10.07.2015
comment
почему голосование против? Это старый вопрос, теперь я бы создал настраиваемый файл состояния и передал его в качестве параметра в модуль state.sls.   -  person Marconi    schedule 10.07.2015


Ответы (1)


Это хороший кандидат для пользовательского модуля.

Вы можете прочитать о создании пользовательских модулей здесь: http://docs.saltstack.com/ref/modules/index.html. Поместите свой пользовательский модуль в /srv/salt/_modules (местоположение по умолчанию), а затем запустите

salt \* saltutil.sync_modules

После этого ваш модуль будет доступен для запуска на ваших миньонах.

Если ваш модуль называется «развернуть», а функция — «мой сайт», ваша пользовательская команда будет выглядеть так:

salt \* deploy.mysite

Если вы хотите нацелиться на конкретного миньона, это будет выглядеть так:

salt 'minion_name' deploy.mysite
person Utah_Dave    schedule 09.03.2013
comment
На самом деле вы также можете выполнить все это за один запуск: /git/myproject opts='исходный мастер', перезагрузить - person Utah_Dave; 22.05.2013