É possível adicionar um usuário existente a um grupo com o fantoche 2.7.18?
Temos dois módulos, cada um define uma classe:
- O módulo "usuário" cria todos os usuários, incluindo o usuário foo e a barra do usuário.
- O módulo "subversion" lida com vários arquivos conf e cria o grupo svn.
Gostaríamos de adicionar o usuário foo ao grupo svn dentro do módulo "subversion".
Eu tentei o parâmetro de associação conforme descrito na solicitação de recurso existente :
group {
"svn":
ensure => present,
gid => xxxxx;
}
user {
"foo":
group => ["svn"],
membership => minimum;
}
Mas eu recebo o seguinte erro:
err: Não foi possível recuperar o catálogo do servidor remoto: Erro 400 no SERVIDOR: Declaração duplicada: o usuário [foo] já está declarado no arquivo /pathto/modules/subversion/manifests/init.pp na linha xx; não é possível redefinir em /pathto/modules/users/manifests/init.pp:xxx no nó myserver.example.com
Esse recurso já está implementado? Caso contrário, existe uma boa solução alternativa?
Usar os recursos virtuais do Puppet é a maneira certa de fazê-lo - mas se você não puder alterar as definições do usuário e precisar de uma solução alternativa, o seguinte é horrível e hacky, mas funcionará:
Basicamente, apenas verificamos se algum grupo ainda contém usuário foo ... se não, use os comandos usuais usermod para adicioná-lo, além dos grupos existentes aos quais foo pertence.
fonte
getent group somegroup|cut -d: -f4|grep -q foo
para não assumir que estamos usando/etc/group
.path
parâmetro. Eu sugiro ter um padrão global de recursos, talvez isso$PATH
ocorra de maneira diferente.Obrigado - corte feio, com certeza, mas faz o trabalho. Aqui está um exemplo de caminho (combinando os comentários acima) para adicionar 'nrpe' ao grupo 'nagios'. Eu usei um pacote exigido, pois o usuário aqui é fornecido por RPM, e não por fantoche.
fonte