仮想ユーザーではグループを使用できません

仮想ユーザーではグループを使用できません

Puppet で仮想ユーザーをいくつか設定しようとしています。基本ユーザーは正常に動作しますが、何らかの理由で、ユーザー定義に「グループ」を追加しようとすると実行が失敗します。

基本的な仮想ユーザー設定は次のとおりです。

class users::virtual {
    define localuser ($uid,$gid) {

            user { $title:
                    ensure  =>      "present",
                    uid     =>      $uid,
                    gid     =>      $gid,
                    shell   =>      "/bin/bash",
                    home    =>      "/home/$title",
                    comment =>      $realname,
                    managehome =>   true,
            }
      }
}

そして、ここに呼び出されたユーザーがいます...

class my::users {
include users::virtual
    @users::virtual::localuser { "jdehnert": 
    uid =>  "504",
    gid =>  "users",
    groups  =>  ["wheel", "rvm"],
    require =>  Group["rvm"],
    }
}

init.pp は...

class people {
include my::users
realize (
    Users::Virtual::Localuser["jdehnert"],
    )
}

クライアントでテスト --noop を実行すると、クライアントにこのメッセージが表示されます...

# puppetd --test --noop
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter groups at /etc/puppet/manifests/users/users.pp:7 on node dev-web-1.

そしてこれはサーバー上に...

Aug 23 04:29:38 centos63 puppet-master[21713]: Invalid parameter groups at /etc/puppet/manifests/users/users.pp:7 on node dev-web-1

「groups」行を削除すると、この構成は正常に機能します。

また、単純なユーザー リソースを作成すると、「グループ」パラメータを問題なく渡すことができることもわかりました。では、なぜ仮想ユーザーでは機能しないのでしょうか?

ありがとう、

ジェームズ・「ジーク」・デナート
[メールアドレス]

答え1

ここであなたは何かを誤解しています:

@users::virtual::localuser { "jdehnert": 
uid =>  "504",
gid =>  "users",
groups  =>  ["wheel", "rvm"],
require =>  Group["rvm"],
}

上記では を宣言しておりlocaluser、次のように定義されています。

define localuser ($uid,$gid) {

つまり、のみ受け取るパラメータはuid、、gidおよびメタパラメータ( などrequire)です。 はgroupsメタパラメータではなく、明らかにuidや でもありませんのでgid、無効です。

関連情報