
次のドキュメントを使用して、新しいグループを設定するためのモジュールを構成しました。詳しくは、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」機能を持っている必要があります。
これは悪名高いgroupadd/groupmod/groupdelを使用してグループを編集するLinuxプラットフォームでは動作しません。アップストリームの問題 #1298。
そこには代替グループプロバイダーポートランド州立大学によってグループファイルを編集できます。
もう 1 つのオプションは、Augeas を使用してグループ ファイルを管理することです。
答え2
Puppetディストリビューションのデフォルトのグループプロバイダーには、グループメンバーシップを管理できるものは含まれていません。しかし、ポートランド州立大学の誰かが同じ機能を必要とし、コーディングしました。いくつかのカスタムプロバイダーこれから必要なのは、ggroupadd.pp
配置するファイルです/etc/puppet/modules/custom/lib/puppet/provider/group
(カスタム モジュール ディレクトリの場所を反映するように適切に調整してください)。
新しい ggroupadd プロバイダーはグループを管理するので、メンバー属性に入力したものはすべてファイルに/etc/group
も取り込まれます。
答え3
Puppet のメンテナーは、これに対するサポートを提供しなかったようです。Ruby ライブラリの groupadd 機能を確認しましたが、ずさんなコードと不完全なコードの組み合わせのようです。