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

Postagens mais visitadas deste blog

Zabbix - LLD de portas abertas no server

PUPPET - criando classes- parte 2