Saltstack 分组命令

6 投票
1 回答
1004 浏览
提问于 2025-04-17 16:52

如果我需要执行以下三个命令,我该怎么把它们组合在一起,这样我只需要调用一次就可以了?

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

我可以使用fabric把这些命令放在一个叫做deploy的函数里,这个函数可以接受一个小助手的名字,然后通过主控端运行这些命令。不过,我在想,saltstack有没有什么内置的功能可以做到这一点呢?

1 个回答

6

这是一个很适合做成自定义模块的例子。

你可以在这里了解如何创建自定义模块:http://docs.saltstack.com/ref/modules/index.html

把你的自定义模块放在 /srv/salt/_modules 这个默认位置,然后运行

salt \* saltutil.sync_modules

这样你的模块就可以在你的小助手(minions)上运行了。

如果你的模块叫做 'deploy',而功能是 'mysite',那么你自定义的命令看起来会像这样:

salt \* deploy.mysite

如果你想指定某个小助手,那么命令会像这样:

salt 'minion_name' deploy.mysite

撰写回答