Puppet 模块用于管理不起作用的组

Puppet 模块用于管理不起作用的组

我已经配置了一个模块来使用以下文档来设置一个新组: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 功能,它似乎是草率的代码和/或不完整的代码的组合。

相关内容