从Ask @ PuppetLabs交叉发布此信息. (那里交通不足.)
我已经看到了一些使用Augeas将用户添加到%wheel的示例.这些都是同一件事的变种;在最后插入用户节点.
> Quick Tip: Add users to a group with augeas
> How to manage configurations in Linux with Puppet and Augeas
> Puppet Group Management Module
我需要做的是删除在配置管理之外添加的用户.对于Puppet来管理组,只有我的Puppet类中定义的用户应该存在并且其他任何用户都被删除.
看起来像执行一个简单的Sed命令会容易得多,但是很多人都说试图远离执行官.在这种情况下,这是一个糟糕的解决方案吗?
解决方法
以这种方式定义轮子用户会导致它们被添加,但如果你从类中删除jane,她将不会在下一个Puppet运行时从轮组中删除.
class wheel { augeas { "wheelgroup": context => "/files/etc/group/wheel",changes => [ 'set user[1] bob','set user[2] jane',] } }
class wheel { augeas { "wheelgroup": context => "/files/etc/group/wheel",changes => [ 'rm user','set user[1] bob',] } }
我认为只有匹配我定义的用户才能阻止它在每个Puppet运行时运行.但是,这也是删除Puppet外部添加的用户的唯一方法,以确保%wheel仅由Puppet管理.
该解决方案也不适合于重用参数化.