Automatizando ambientes com Puppet

Automatizando ambientes com Puppet #1

O que é o Puppet ?

Puppet é uma ferramenta Open Source para gerenciamento de configuração. Ele é utilizado por diversas empresas, que precisam gerenciar milhares de máquinas físicas e virtuais ao redor do mundo. Podemos destacar dentre os usuários do Puppet a Cisco, at&t, PayPal e muitas outras organizações.

O Puppet foi criado em 2005 como uma ferramenta de gerenciamento de configuração open source e está disponível para download gratuito sob a licença Apache 2.0.
Ele tem suporte para diversos sistemas operacionais como: Linux, *BSDs, Solaris, Windows e outros.
Existe também o Puppet Enterprise que trata-se do produto comercializado pela Puppet Labs.

Ele é composto por uma linguagem declarativa que nos permite expressar as configurações que nossos servidores devem ter, fazendo isto através de uma sintaxe simples e prática.

Ele nos oferece um cliente (agente) e um servidor (master) para distribuir estas configurações em nosso parque.

Puppet pode realizar diversas tarefas, tais como:

  • Gerência de configuração.
  • Automação na instalação de pacotes.
  • Estabelece e garante normas e facilidade de auditoria.

Ele é voltado para Desenvolvedores e Administradores de Sistemas e Redes.
Saiba mais sobre Puppet com essa apostila, ou aguarde os próximos posts.
Você pode participar do grupo Puppet-BR no Telegram.

No Puppet essencialmente tudo é MODELADO e tratado como se fossem DADOS.

O estado atual do node (servidor), a configuração desejada, as ações tomadas durante as configurações são representados como “dados” e inseridos em um catálogo.

Ele pode funcionar de duas formas, você pode criar configurações e aplicar localmente usando o recurso APPLY, ou você pode trabalhar em modo AGENTE/MESTRE (cliente/servidor).
Como o puppet funciona?

Uma vez que você instala o puppet, cada nó (servidor físico, dispositivo ou máquina virtual) em sua infraestrutura tem um agente instalado nele. Você também pode ter um servidor designado como o mestre. A execução do puppet seguem os passos abaixo:

  • Fact collection – Em cada nó o agente do puppet envia informações (ou facts) sobre configuração do nó — detalhando o seu hardware, sistema operacional, as versões dos pacotes e demais informações — para o puppet master;
  • Catalog compilation – O puppet master usa o Fact Collection fornecidos pelo agente para compilar as informações sobre como cada nó deve ser configurado — chamando o catálogo (lista de pacotes ou configurações que são controladas pelo puppet) — e o envia para o agente;
  • Enforcement – O agente realiza as alterações necessárias para que o nó esteja em conformidade com o catalogo.

Observação:

Se você optar por executar no modo no-op (simulação), o agente simplesmente simulará as alterações;

  • Report – Cada agente envia um relatório para o puppet master, indicando todas as alterações que foram efetivadas para a deixar o no em conformidade com seu catálogo;
  • Report sharing – A API aberta do puppet pode enviar dados para outras ferramentas, permitindo a você poder compartilhar informações de infraestrutura com outras equipes.

Principais vantagens:

  • Redução de custos de manutenção de computadores – equipe pequena gerenciando um grande parque;
  • Diminuição da sobrecarga em sua equipe – menos horas extras no trabalho, mais horas dos seus admins com suas famílias. Isto significa menor estresse para toda equipe e maior produtividade e criatividade;
  • Diminuição do downtime de seu ambiente – padronização significa maior controle e eficiência;
  • Maior facilidade para executar atualização de sistemas e serviços de forma controlada;
  • Maior facilidade e flexibilidade para distribuir configurações para todo o parque de forma controlada;
  • Maior facilidade e flexibilidade para implantar novas soluções com menor trauma e consequentemente menor custo, fazendo isto em todo o parque de uma vez – imagine, por exemplo, implantar um novo agente de monitoramento em centenas de servidores;
  • Retorno de uma configuração ou de arquivos modificados de forma fácil e simplificada através do filebucket;
  • Excelentes ferramentas em linha de comando que nos permitem usá-lo de forma fácil;
  • Acelerar a criação de novos servidores;
  • Acelerar a criação de novos serviços;

No próximo post vou apresentar uma forma prática e simples do uso dessa ferramenta.

Chegamos ao fim do artigo, achou o que estava procurando?
Faltou alguma informação?
Alguma parte ficou mal redigida?
Posso melhorar o artigo de alguma forma? Deixe seu feedback, é muito importante!

Compartilhe este post!