グループを管理する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」機能を持っている必要があります。

これは悪名高い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 機能を確認しましたが、ずさんなコードと不完全なコードの組み合わせのようです。

関連情報