从Ask @ PuppetLabs交叉发布。 (那里根本没有足够的stream量。)
我已经看到了许多使用Augeas将用户添加到%wheel的示例。 这些都是同一件事的变化。 在最后插入一个用户节点。
我需要做的还是删除在configurationpipe理之外添加的用户。 对于Puppet来pipe理组,只有在我的Puppet类中定义的用户应该出现,其他人都被删除。
看起来像执行一个简单的sed命令会容易得多,但是有那么多人说要尽量远离exec。 在这种情况下这是一个不好的解决scheme吗?
通过这种方式定义车轮使用者会增加车轮使用者,但是如果您从class级中删除杰恩,则不会在下一次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', 'set user[2] jane', ] } }
我考虑一个onlyif的匹配我定义的用户,以防止这在每个Puppet运行上运行。 但是,这也是删除在Puppet外部添加的用户的唯一方法,以确保%wheel仅由Puppetpipe理。
该解决scheme也不能很好地用于参数化重用。
可以使用组成员types来专门设置组的成员。 您可能需要使用forcelocal选项。