O recurso Group ['users'] não deve estar dentro do recurso definido users::virtual
. Você só pode criar o grupo uma vez. Mova isso para uma turma separada.
group { 'users':
ensure => 'present',
gid => 100,
}
Estou tentando usar o fantoche para adicionar todos os meus usuários a um sistema e adicionar todos eles a um único grupo. No entanto, continuo recebendo
Error 400 on SERVER: Duplicate declaration: Group[users] is already declared
in file *filename*:17 cannot redeclare at *filename* on node *server*
Se eu alterar o usuário para um nome de variável, como $ title, ele funciona bem. Como posso fazer isso com um nome de grupo estático como 'usuário'? Estou usando a configuração abaixo:
OBSERVAÇÃO: posso ter erros de digitação abaixo. Eu tive que redigitar tudo isso porque o sistema em que estou não tem acesso à Internet.
define users::virtual ($uid, $realname, $password) {
user { $title:
ensure => 'present',
uid => $uid,
gid => $'users',
shell => '/bin/bash',
home => "/home/${title}",
comment => $realname,
password => $password,
managehome => true,
require => Group ['users'],
}
group { 'users':
ensure => 'present',
gid => 100,
}
file { "/home/${title}":
ensure => directory,
owner => $title,
group => 'users',
mode => 0700,
require => [ User[$title], Group['users'] ],
}
}
class users {
@users::virtual { 'user1':
uid => 510,
realname = 'John Doe',
password = cyphertext
}
@users::virtual { 'user2':
uid => 511,
realname = 'Jane Doe',
password = cyphertext
}
}
node 'server' {
realize (Users::Virtual['user1']
realize (Users::Virtual['user2']
}