Puppet - Tutorial
Para um administrador de rede é sempre muito complicado atualizar suas máquinas, sempre é preciso criar scripts para automatizar simples tarefas de instalação e configuração de programas e serviços dos sistemas. Quando a rede utiliza máquinas com sistemas operacionais distintos a situação complica, eis uma solução!
Puppet, esta ferramenta foi desenvolvida para facilitar a manutenção de máquinas com S.O diversos, seu funcionamento é bastante simples. As máquinas que precisam de manutenção, é instalado o cliente puppet, e uma ou mais máquinas é designada à ser o servidor puppet. Bom quando tudo instalado, o cliente fica requerendo ao servidor “comandos de ação”, estes comandos o cliente lê e executa independente da plataforma operacional, assim não é preciso criar uma aplicativo para realizar a manutenção em diversos S.O. A seguir demonstrarei como instalar e configurar o puppet na máquina cliente e no servidor em sistemas baseados no Debian, algumas modificações nestas etapas você deverá considerar ao utilizar um sistema que não seja o Debian 6 – Squeeze.
No Cliente Puppet, execute na linha de comando:
1º Passo
su
deb http://ftp.de.debian.org/debian squeeze main >> /etc/apt/sources.list
apt-get install -y puppet facter
2º Passo
É aconselhável que configure as chamadas de serviço DNS, em /etc/hosts, edite como root, acrescentando e/ou modificando as seguintes linhas:
127.0.1.1 nomedocliente.nomedarede.dominio nomedocliente
ip.do.servidor nomedoservidor.nomedarede.dominio puppet
Onde “nomedarede”, se não configurado adote qualquer nome.
Onde “dominio”, se não configurado adote qualquer um entre (“.net”,”.com”, entre outros).
3º Passo
Após a instalação dos pacotes edite o arquivo /etc/default/puppet como root, na linha onde estiver START=no, modifique para START=yes , salve o arquivo.
4º Passo
Agora abra este arquivo puppetd.conf como root, no seguinte diretório /etc/puppet , e adicione as seguintes linhas:
[puppetd]
server= endereço do server
No servidor Puppet, execute na linha de comando:
1º Passo
su
deb http://ftp.de.debian.org/debian squeeze main >> /etc/apt/sources.list
apt-get install -y puppet facter
2º Passo
É aconselhável que configure as chamadas de serviço DNS, em /etc/hosts, edite como root, acrescentando e/ou modificando as seguintes linhas:
127.0.1.1 nomedoservidor.nomedarede.dominio puppet
ip.do.servidor nomedoservidor.nomedarede.dominio puppet
3º Passo
No arquivo /etc/puppet/manifests/site.pp (provavelente site.pp não estará criado, crie-o) E escreva o texto a seguir:
# Create “/tmp/testfile” if it doesn’t exist.
class test_class {
file { “/tmp/testfile”:
ensure => present,
mode => 644,
owner => root,
group => root
}
}
# tell puppet on which client to run the class
node pclient {
include test_class
}
4º Passo
…na linha de comando execute como root
service puppetmaster restart>> Iniciando o sistema Puppet
No cliente execute:
puppetd –server nomedorservidor.nomedarede.dominio –waitforcert 60 –test
Algumas mensagens como estas, podem aparecer, não se preocupe pois é assim mesmo quando é efetuado o primeiro contato entre um cliente/servidor Puppet.
err: No certificate; running with reduced functionality. info: Creating a new certificate request for pclient.example.con info: Requesting certificate warning: peer certificate won’t be verified in this SSL session notice: Did not receive certificateNo servidor execute:
puppetca –list
…deverá aparecer a linha a seguir:
nomedocliente.nomedarede.dominioAinda no servidor, execute:
puppetca –sign nomedocliente.nomedarede.dominio
Algumas mensagens podem ser exibidas, não se preocupe são absolutamente normais,
info: Requesting certificate warning: peer certificate won’t be verified in this SSL session notice: Ignoring –listen on onetime run info: Caching configuration at /etc/puppet/localconfig.yaml notice: Starting configuration run notice: //pclient/test_class/File[/tmp/testfile]/ensure: created info: Creating state file /var/lib/puppet/state/state.yaml notice: Finished configuration run in 0.11 seconds
5º Passo
Testando se funcionou, procure pelo arquivo /tmp/testfile, na linha de comando é:
ls -l /tmp/testfile
Se este arquivo estiver, na máquina cliente o puppet está configurado, mas é recomendado ler e configurar com mais detalhes o arquivo /etc/puppetd.conf, com os parâmetros sugeridos pelo comando puppet agent –genconfig para a máquina cliente e puppet master –genconfig para o servidor.
Conclusão
O Puppet sincroniza os dados a cada 30 minutos e quando a máquina cliente é ligada, por padrão caso está configuração não o atende leia a documentação em http://docs.puppetlabs.com/. Para alguns esclarescimentos é possível acessar este vídeo, que ensina como configurar o puppet em http://www.youtube.com/watch?v=US8ZpjgEhUg.