我正在嘗試在木偶中設定一些虛擬用戶。基本使用者工作正常,但由於某種原因,當我嘗試將“群組”新增至使用者定義時,運行失敗。
這是基本的虛擬用戶配置...
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」線,這個設定就可以正常運作。
我還發現,如果我只是創建一個普通的用戶資源,我可以很好地傳遞“groups”參數。那麼,為什麼它不適用於虛擬使用者呢?
謝謝,
詹姆斯「澤克」德納特
[電子郵件受保護]
答案1
你在這裡誤解了一些東西:
@users::virtual::localuser { "jdehnert":
uid => "504",
gid => "users",
groups => ["wheel", "rvm"],
require => Group["rvm"],
}
上面你宣告了 a localuser
,它的定義如下:
define localuser ($uid,$gid) {
這意味著僅有的它接收的參數是uid
和gid
元參數(例如require
)。由於groups
不是元參數,顯然也不是uid
或gid
,所以它是無效的。