"require" não faz o que você acha que faz - na verdade cria uma dependência.
Você quer usar "include" em vez disso na classe capistranoDeps :: config
include capistranoDeps::user
Para mais informações, veja também esta pergunta:
Estou tentando criar um usuário com o Puppet, mas tudo o que tentei falhou.
Estou tentando criar um usuário chamado "capistrano" que será colocado no grupo "www-data". Eu fiz a seguinte configuração.
class capistranoDeps::user {
user { "capistrano":
ensure => present,
comment => "Capistrano user",
gid => 33,
shell => "/bin/bash",
require => Group["capistrano"],
}
group {"capistrano":
ensure => present,
}
}
class capistranoDeps::config {
require capistranoDeps::user
# Set permissions on webserver directories
file {"/var/www/":
ensure => directory,
owner => "capistrano",
group => "www-data",
mode => "775",
}
...
}
class capistranoDeps {
require tools
include capistranoDeps::user,capistranoDeps::config
}
Quando tento executar essa configuração no meu host, recebo o seguinte erro:
root@app1:/etc/openvpn# puppet agent --server=puppet.domain --no-daemonize --verbose
notice: Starting Puppet client version 2.6.2
info: Caching catalog for app1.domain
err: Could not run Puppet configuration client: Could not find user capistrano
O usuário ainda não foi criado no host, pois é tarefa da Puppet fazê-lo. Os exemplos que eu encontrei em todo parecem ser os mesmos, mas como isso não está funcionando, estou definitivamente perdendo alguma coisa.
"require" não faz o que você acha que faz - na verdade cria uma dependência.
Você quer usar "include" em vez disso na classe capistranoDeps :: config
include capistranoDeps::user
Para mais informações, veja também esta pergunta: