![Puppet 模块用于管理不起作用的组](https://linux22.com/image/801795/Puppet%20%E6%A8%A1%E5%9D%97%E7%94%A8%E4%BA%8E%E7%AE%A1%E7%90%86%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E7%9A%84%E7%BB%84.png)
我已经配置了一个模块来使用以下文档来设置一个新组:https://puppet.com/docs/puppet/latest/types/group.html。
[root@puppetmaster ~]# cat /etc/puppet/modules/change-groups/manifests/init.pp
class change-groups {
group { "newgroup":
gid => 3651,
members => "user1,user2",
}
}
不幸的是,我收到了错误消息。可能是什么原因?
info: /Group[newgroup]: Provider groupadd does not support features manages_members; not managing attribute members
答案1
根据文档:
管理群组。在大多数平台上,这只能创建群组。必须对单个用户进行群组成员资格管理。
在某些平台(例如 OS X)上,群组成员身份作为群组的属性进行管理,而不是用户记录。提供商必须具有“manages_members”功能才能管理群组记录的“members”属性
这是臭名昭著在使用 groupadd/groupmod/groupdel 编辑组的 Linux 平台上不起作用 - 请参阅上游问题 #1298。
有一个替代团体提供者由波特兰州立大学编辑,可以编辑该群组文件。
另一种选择是使用 Augeas 来管理组文件。
答案2
Puppet 发行版中的默认组提供程序不包括能够管理组成员资格的提供程序。但是,波特兰州立大学的某个人需要相同的功能,并编写了代码一些自定义提供商ggroupadd.pp
。您需要的是您想要放入的文件/etc/puppet/modules/custom/lib/puppet/provider/group
(适当调整以反映您的自定义模块目录的位置)。
/etc/group
新的 ggroupadd 提供程序将管理群组,以便您在成员属性中输入的任何内容也将进入文件中。
答案3
看起来 Puppet 维护者从未提供过对它的支持。我正在查看 Ruby 库中的 groupadd 功能,它似乎是草率的代码和/或不完整的代码的组合。