【发布时间】:2015-04-27 12:25:43
【问题描述】:
如下配置盐栈环境:
machine1 -> salt-master
machine2 -> 盐奴
machine3 -> 盐奴
此设置对我有用,我可以将命令“ls -l /tmp/”从 machine2 发布到 machine3
salt-call publish.publish 'machine3' cmd.run 'ls - /tmp/'
如何限制可以发布的命令?
在当前设置中,可以在 machine3 上执行每个命令,这将是非常冒险的。我正在查看 salt-stack 文档,但不幸的是,我没有找到任何如何相应配置它的示例。
解决方案:
- 在 machine1 上创建文件 /srv/salt/_modules/testModule.py
- 插入如下代码:
#!/usr/bin/python
import subprocess
def test():
return __salt__['cmd.run']('ls -l /tmp/')
if __name__ == "__main__":
test()
-
将新模块分发给小兵运行:
salt '*' saltutil.sync_modules
-
在 machine2 上运行:
salt-call publish.publish 'machine3' testModule.test
【问题讨论】:
标签: salt-stack