木偶 – 限制每个环境的行动?

我怎样才能限制木偶代理命令? 我只需要让傀儡代理商不用反对生产分支就可以运行。

  • 阻止puppet agent --test --environment devbranch
  • 允许puppet agent --test --environment devbranch --noop
  • 允许puppet agent --test --environment production

我认为auth.conf中的某种巫术应该能够照顾到这一点,但我并不熟悉这一点。

感谢@ Zoredache,我设法以我需要的方式来构build。

我正在使用[main]部分dynamic创build和pipe理分支,[production]覆盖noop设置。 我相信这也可以在[代理]中完成,但我已经从这里开始了。

 [main] logdir = /var/log/puppet rundir = /var/run/puppet confdir = /puppet/$environment vardir = /puppet/.$environment-var ssldir=/etc/puppet/ssl environment = production server = puppet.domain.org pluginsync = true noop = true # Disable running all branches by default [production] noop = false 

编辑:看起来像我说得太快了。 noop正在stream血。 虽然上面的语法是正确的我看过的caviats之一不会让这个工作。 http://docs.puppetlabs.com/guides/environment.html

..环境有一些限制,其中大部分是已知的错误或变化的变化,而不是devise的select。

Puppet只会从环境configuration块读取模块path,清单,manifestdir和templatedir设置 ; 任何这些块中的其他设置将被忽略,以支持[master]或[main]块中的设置。 (问题7497)

你不能这样做,有权访问命令行的人可以执行几乎任何选项。

如果你想控制谁可以部署什么env我build议使用MCollective运行木偶。 您可以在那里制作非常详细的ACL,并且可以在多个节点上协调puppet,并执行诸如“在2台机器上部署,如果没有失败,部署在下10台,如果没有失败,部署在rest上”等。