Instalei o puppetmaster no ubuntu 11.04 e o puppet em todos os meus clientes. Eu juntei todos os meus clientes de marionetes ao mestre de marionetes. É possível copiar um arquivo para todos esses clientes de marionetes do mestre de marionetes?
Por exemplo:
Eu tenho o arquivo chamado datas.xls na minha área de trabalho (Puppet Master). Como copiar esses arquivos para todos os meus clientes fantoches no seguinte local (/ home / operator1 / Desktop / Backup /)?
Atualizar:
- Oi, ainda o arquivo não está sendo compartilhado.
- Como modificar esta linha,
puppet:///modules/module_name/datas.xls
o arquivo a ser copiado está neste local/etc/puppet/modules/mymodule/manifests/datas.xls
?
Erro no cliente: (resolvido)
root@testing:~# puppetd --test
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class sudo at /etc/puppet/manifests/site.pp:2 on node testing.chn.jd.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
Erro 2 no cliente:
root@tme13:~# puppetd --test
err: Could not run Puppet configuration client: Could not retrieve local facts: bad URI(is not URI?): http://169.254.169.254/2008-02-01/meta-data/<HTML><HEAD><TITLE>HTTP access denied</TITLE></HEAD><BODY><img src/
Nova atualização:
Como aplicar este módulo a todos os nós? Tal que o arquivo será copiado para todos os nós.
Respostas:
Fantoche é um monstro para se entender, então aprender pelo exemplo não é uma coisa ruim. No abaixo, presumo que você esteja usando módulos - diga em um comentário se não está ou se precisa de mais detalhes sobre como montar o módulo.
Digamos que você inicie um novo módulo chamado
mymodule
. No diretório inicial do fantoche (geralmente/etc/puppet
) no mestre de fantoches, você deve criar o diretório de manifestos e arquivos do módulo:Em seguida, crie um arquivo nesse diretório chamado
init.pp
e digite:Em seguida, coloque o
datas.xls
arquivo nofiles
diretório do módulo - neste exemplo emmodules/mymodule/files/
. (Observe que também pode haver umtemplates
diretório para modelos ).No
manifests/site.pp
arquivo, você precisa importar o módulo e incluir a classe, fazendo algo como:Verifique se todos os seus nós herdam da base e isso deve ser tudo o que você precisa fazer. No fantoche 0,25, você pode usar expressões regulares no nome do nó, por exemplo:
Deixe-me saber nos comentários se precisar de mais esclarecimentos.
Configurando um cliente para conversar com o mestre de marionetes
No cliente, você precisa fazer:
Depois edite
/etc/default/puppet
e mudeSTART=no
paraSTART=yes
.Edite
/etc/puppet/puppet.conf
e adicione uma linha à[main]
seção para dizer onde encontrar o mestre de marionetes:Então podemos fazer um teste com
sudo puppetd --test
. Se você receber erros de chave, poderá ser necessário acessar o servidor mestre de marionetes e assinar a chave do cliente. Para verificar o nome exato, você pode fazersudo puppetca --list
e depoissudo puppetca --sign server1.mydomain.com
(ou qualquer que seja o nome do servidor no comando list).Agora inicie o serviço de marionetes
sudo service puppet start
e você deve estar ausente. O serviço de marionetes será executado a cada hora; portanto, se você atualizar suas receitas de marionetes, todos os seus clientes também serão atualizados.Excluindo arquivos
Observo na pergunta original que você queria saber como excluir arquivos. Você editaria o
manifests/init.pp
para serOutras dicas úteis
Se você está tendo problemas, há algumas coisas que você pode fazer. Em qualquer máquina com fantoche instalado, você pode verificar sua sintaxe executando
ou verifique todo o lote retirando a
--ignoreimport
bandeira, embora isso possa levar a algumas mensagens de erro engraçadas que não são realmente erros que encontrei. Você também pode executar o fantoche ao vivo em uma máquina cliente de fantoches, fazendo:que mostra várias saídas úteis, com erros e avisos destacados em cores diferentes. Se você quiser ainda mais detalhes, poderá executar:
mas isso geralmente gera tanta produção que é difícil analisar, apenas faça isso se você já tentou as etapas anteriores e está preso e precisa ver tudo o que está sendo feito.
Observe que isso se baseia no fantoche 0.25.x, que eu uso atualmente no trabalho, e também é a versão no Ubuntu 10.04. O código fantoche na seção principal definitivamente ainda funcionará, mas as versões posteriores do fantoche têm novos sinalizadores que podem ajudar na saída de depuração.
fonte
puppet:///modules/module_name/datas.xls
do arquivo a ser copiado é sob este local/etc/puppet/modules/mymodule/manifests/datas.xls
/etc/puppet/modules/mymodule/files/datas.xls
- atualizarei a resposta para que fique mais claro.puppet agent --test