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
、無効です。