Estou tentando configurar alguns usuários virtuais no fantoche. Os usuários básicos funcionam bem, mas por algum motivo, quando tento adicionar "grupos" à definição do usuário, a execução falha.
Aqui está a configuração básica do usuário virtual ...
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,
}
}
}
e aqui está um usuário chamado ...
class my::users {
include users::virtual
@users::virtual::localuser { "jdehnert":
uid => "504",
gid => "users",
groups => ["wheel", "rvm"],
require => Group["rvm"],
}
}
o init.pp é ...
class people {
include my::users
realize (
Users::Virtual::Localuser["jdehnert"],
)
}
Quando executo um test --noop em um cliente, recebo esta mensagem no cliente...
# 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.
e este no servidor...
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
Se eu retirar a linha "grupos", essa configuração funcionará perfeitamente.
Também descobri que, se eu criar um recurso de usuário simples, posso passar o parâmetro "grupos" perfeitamente. Então, por que não funciona com um usuário virtual?
Obrigado,
James “Zeke” Dehnert
[e-mail protegido]
Responder1
Você está entendendo mal alguma coisa aqui:
@users::virtual::localuser { "jdehnert":
uid => "504",
gid => "users",
groups => ["wheel", "rvm"],
require => Group["rvm"],
}
Acima você está declarando a localuser
, que é assim definido:
define localuser ($uid,$gid) {
Isso significa queapenasos parâmetros que ele recebe são uid
e gid
os metaparâmetros (como require
). Como groups
não é um metaparâmetro nem, obviamente, é uid
ou gid
, então é inválido.