配置了如下所示的salt-stack环境:
machine1 - >盐主
machine2 - >盐仆从
machine3 - >盐仆从
此设置对我有用,我可以发布命令" ls -l / tmp /"从 machine2 到 machine3
salt-call publish.publish 'machine3' cmd.run 'ls - /tmp/'
如何限制可以发布的命令?
在当前设置中,它可以执行machine3上的每个命令,并且我们将面临非常大的风险。我正在查看salt-stack文档,但不幸的是,我没有找到任何相应配置的示例。
解决方案:
#!/usr/bin/python
import subprocess
def test():
return __salt__['cmd.run']('ls -l /tmp/')
if __name__ == "__main__":
test()
将新模块分发到minions运行:
盐' *' saltutil.sync_modules:
盐调用publish.publish' machine3' testModule.test答案 0 :(得分:1)
salt master配置中的peer configuration可以限制某些minion可以发布的命令,例如
peer:
machine2:
machine1:
- test.*
- cmd.run
machine3:
- test.*
- disk.usage
- network.interfaces
这将允许小兵machine2
发布test.*
和cmd.run
命令。
P.S。允许小兵发布cmd.run
命令通常不是一个好主意,只需将其作为示例。