PUPPET - Gerenciamento e configuração centraliazada
PUPPET VISAO GERAL
O PUPPET é um sistema "espetacular", que permite gerenciar e configurar servidores de formas centralizadas.
É possível apenas plugar o server na rede com o agent do PUPPET e em minutos o server está configurado conforme pré-definido.
O serviço trabalha do modo server-client. O PUPPET foi desenvolvido na plataforma RUBY e com isso funciona em muitos sistemas.
Ao configurar um cliente é necessário criar uma chave criptografada que será importada no server (iremos ver posteriormente) e com isso torna sua comunicação segura.
Então vamos ao que interessa....
Estarei escrevendo 4 artigos referente ao assunto, nos quais são eles
1) Introdução e instalação (server + client)
2) Configuração (server + 2 clients)
3) Configuração um pouco mais avançada e uma interface gráfica
4) Por último a configuração avançada
Funcionamento do PUPPET
O gerenciamento do PUPPET pode ser das seguintes (grupos de hosts, grupos de aplicativos, hosts, tipos de servidores, testes entre muitos outros).
É muito importante que o PUPPET consiga revolver nome master/clients, ou seja, é necessário de um servidor de DNS (não será mostrado a instalação e configuração do serviço neste tutorial)
No servidor master (daqui para frente o servidor PUPPET master, será apenas chamado de master) seu diretóri de configuração fica em /etc/puppet e tem a seguinte hierarquia de diretórios:
/etc/puppet
- site.pp
- manifests
- init.pp
- nodes.pp
- classes.pp
- outras classes.pp
- modules
- Aqui se tem a mesma hierarquia do /etc/puppet, porém para um determinado modulo:
- apache
- manifest, templates, ....
- templates
- template.erb
- files
- files
- tests
- init.pp
Agora que conhecem um pouco da estrutura, vamos em frente. Irei explicar o que fazer cada arquivo e diretório da estrutura um pouco mais a frente, agora vamos a instalação.
Instalando o PUPPET no MASTER no Centos 6
Após instalado o Centos 6, é importante que desabilite o selinux e firewall do master e client01 (um dos clientes irei chamar de client01).
Muito importante, os hosts precisam estar resolvendo os seus respectivos nomes.
Faça um testes com os seguintes comandos:
hostname
hostname -a
Se ambos os comandos estiverem funcionando, perfeito, siga em frente. senão, para por aqui e ajuste.
1) Instalando alguns pacotes necessários. (irei colocar o serviço de DNS no meu próprio servidor master com a zona teclinux.local)
| yum -y install wget vim openssh-clients rsync system-config-firewall-tui.noarch system-config-network ntsysv ntpdate bind-chroot bind-utils |
2) Instalação do repositório EPEL
| rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm |
3) Criando o repositório do PUPPET
| cat > /etc/yum.repos.d/puppet.repo << "EOF" [puppetlabs] name=Puppet Labs Packages baseurl=http://yum.puppetlabs.com/el/$releasever/products/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs EOF |
4) Limpando o cache do yum
| yum clean all |
5) Instalando o serviço do puppet server
| yum -y install puppet-server |
Após esses 5 passos o master já está instalado, vamos apenas fazer alguns ajustes.
Em /etc/puppet/puppet.conf, iremos acrescentar as seguintes linhas:
Abaixo da tag [prodution], coloque o seguinte:
modulepath = /etc/puppet/modules #indica onde está os modulos que serão configurados
E vamos criar uma tag test
[tests] #Podendo copiar a tag production, poŕem os modulos irão ficar assim:
modulepath = /etc/puppet/tests/modules
Perfeito, agora já podemos reinicar o serviço
| service puppetmaster start |
Instalando o PUPPET no CLIENT no Centos 6
Podemos seguir os passos 1 até 4, sendo que no passo 1, não pe necessário instalar o serviço do bind
No passo 5 iremos instalar o client
Instalando o serviço do puppet client
| yum -y install puppet |
Após instalado, em /etc/sysconfig/puppet, deixe assim os seguintes itens:
PUPPET_SERVER= master.teclinux.local
PUPPET_LOG = /var/log/puppet/puppet.log
Já no arquivo de configuração /etc/puppet/puppet.conf, deixe assim, além dos itens já descomentados:
[agent]
report = true # irá reportar as informações ao master
server =master.teclinux.local # servidor master
runinterval = 180 # intervalo de atualização - 3min
splaylimit = 180 # intervalo de atualização - 3min
Pronto, nosso client01 está configurado, vamos inicar o mesmo.
| service puppet start |
Sincronizando o MASTER/CLIENT01
O serviços já estão configurado, agora basta fazer a sincronização de chave entre os dois hosts.
No client01, podemos listar a chave que já foi enviada para o master, da seguinte forma:
Listando a chave que foi enviada para o master
| puppetca --list |
No master, iremos aceitar a chave
| puppetca --sign client01.teclinux.local |
Os seguintes comandos funcionam no master
puppet
puppetd
puppetca
puppetmaster
Faço um tur pelo o help de cada comando
Os mesmos comandos funcionam no client01, exceto o puppetmaster
Com isso temos nosso servidor configurado e funcionando.
No próximo artigo estarei mostrando a configuração.
Até mais pessoal, e em breve sai um novo artigo sobre o puppet.
site oficial: www.puppetlabs.com
Comentários
Postar um comentário