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:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Em seguida, crie um arquivo nesse diretório chamado init.pp
e digite:
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
Em seguida, coloque o datas.xls
arquivo no files
diretório do módulo - neste exemplo em modules/mymodule/files/
. (Observe que também pode haver um templates
diretório para modelos ).
No manifests/site.pp
arquivo, você precisa importar o módulo e incluir a classe, fazendo algo como:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
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:
node server[0-9] inherits base {}
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:
sudo apt-get install puppet
Depois edite /etc/default/puppet
e mude START=no
para START=yes
.
Edite /etc/puppet/puppet.conf
e adicione uma linha à [main]
seção para dizer onde encontrar o mestre de marionetes:
server=puppet.mydomain.com
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 fazer sudo puppetca --list
e depois sudo 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 ser
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Outras 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
puppet --parseonly --ignoreimport myfile.pp
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:
sudo puppetd --test
que mostra várias saídas úteis, com erros e avisos destacados em cores diferentes. Se você quiser ainda mais detalhes, poderá executar:
sudo puppetd --test --debug
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.