限制salt-minion能够发布的命令

时间:2015-04-27 12:25:43

标签: salt-stack

配置了如下所示的salt-stack环境:

machine1 - >盐主

machine2 - >盐仆从

machine3 - >盐仆从

此设置对我有用,我可以发布命令" ls -l / tmp /"从 machine2 machine3 salt-call publish.publish 'machine3' cmd.run 'ls - /tmp/'

如何限制可以发布的命令?

在当前设置中,它可以执行machine3上的每个命令,并且我们将面临非常大的风险。我正在查看salt-stack文档,但不幸的是,我没有找到任何相应配置的示例。

解决方案:

  1. on machine1 创建文件 /srv/salt/_modules/testModule.py
  2. 插入一些代码:
  3. #!/usr/bin/python
    
    import subprocess
    
    def test():
         return __salt__['cmd.run']('ls -l /tmp/')
    
    if __name__ == "__main__":
         test()
    
    1. 将新模块分发到minions运行:

      盐' *' saltutil.sync_modules

    2. machine2 上运行
    3. 盐调用publish.publish' machine3' testModule.test

1 个答案:

答案 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命令通常不是一个好主意,只需将其作为示例。