2013-02-23 73 views
6

如果我必须执行以下3个命令,我该如何对它们进行分组,因此我只需要调用它们?Saltstack分组命令

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这可能会接受再一个奴才的名字通过主机上运行,​​但我不知道是否有saltstack一些内置的?

+0

您是否想过创建一个状态,您只需运行命令,但必须等待另一个状态完成等等? – tudoricc 2015-07-10 09:27:41

+0

为什么投票?这是一个古老的问题,现在我创建一个自定义状态文件并将其作为参数传递给'state.sls'模块。 – Marconi 2015-07-10 13:36:25

回答

6

这是一个很好的自定义模块的候选人。

您可以在这里阅读关于创建自定义模块:http://docs.saltstack.com/ref/modules/index.html。 放在/ SRV /盐自定义模块/ _modules(默认位置),然后运行

salt \* saltutil.sync_modules 

你的模块将提供给你的爪牙运行。

如果你的模块被命名为“部署”和功能是“mysite的”,那么你的自定义命令看起来就像这样:

salt \* deploy.mysite 

如果你想针对特定仆从那么它会是这样的:

salt 'minion_name' deploy.mysite 
+0

您可以在一次运行中实际执行这些操作: salt'*'git.fetch,git.pull,nginx.signal“cwd =/var/git/myproject opts =' - all'users = git”, “cwd =/var/git/myproject opts ='origin master'”,“reload” – 2013-05-21 21:47:39