Puppet Tutorial - One Stop Solution for Configuration Management



Puppet Tutorial é o segundo blog da série de blogs Puppet. Ele fala sobre a arquitetura do Puppet, componentes e um exemplo para implantar mysql e php usando o Puppet.

Tutorial de fantoches

Puppet Tutorial é o segundo blog da série de blogs Puppet. Espero que você tenha lido meu blog anterior sobre “ O que é fantoche ”Que explica o Gerenciamento da Configuração e por que ele é importante com a ajuda de casos de uso.

Neste tutorial do Puppet, os seguintes tópicos serão abordados:





O que é gerenciamento de configuração?

No meu blog anterior , Eu fiz uma introdução ao Gerenciamento da Configuração e os desafios que ele nos ajuda a superar. Neste tutorial do Puppet, vou explicar a você sobre as diferentes atividades interdependentes do Gerenciamento da Configuração.Mas antes disso, vamos entender o que é Item de configuração (CI). Um item de configuração é qualquer componente de serviço, elemento de infraestrutura ou outro item que precisa ser gerenciado para garantir a entrega bem-sucedida dos serviços. Exemplos de CI incluem documentos de requisitos individuais, software, modelos e planos.



O Gerenciamento da Configuração consiste nos seguintes elementos:

  • Identificação de Configuração
  • Mudar a gestão
  • Contabilidade do estado da configuração
  • Auditorias de configuração

O diagrama abaixo explica esses componentes:

Componentes de gerenciamento de configuração - Tutorial do fantoche - Edureka



Identificação da configuração: É o processo de:

  • Rotulagem de itens de configuração de software e hardware com identificadores exclusivos
  • Identificar a documentação que descreve um item de configuração
  • Agrupando itens de configuração relacionados em linhas de base
  • Rotulando revisões para itens de configuração e linhas de base.

Mudar a gestão: É uma abordagem sistemática para lidar com a mudança tanto da perspectiva de uma organização quanto do indivíduo.

Contabilidade do estado da configuração: isto inclui o processo de registrar e relatar as descrições dos itens de configuração (por exemplo, hardware, software, firmware, etc.) e todos os desvios da linha de base durante o projeto e produção. No caso de suspeita de problemas, a verificação da configuração da linha de base e as modificações aprovadas podem ser determinadas rapidamente.

Auditorias de configuração: As auditorias de configuração fornecem um mecanismo para determinar o grau em que o estado atual do sistema é consistente com a linha de base e documentação mais recentes. Basicamente, é uma revisão formal para verificar se o produto a ser entregue funcionará conforme anunciado, promovido ou de alguma forma prometido aos clientes. Ele usa as informações disponíveis como resultado das auditorias e testes de qualidade, juntamente com as informações de contabilidade do status da configuração, para fornecer garantia de que o que era necessário foi construído.

Vamos entender o Gerenciamento da Configuração com um caso de uso. Suponha que se você tiver que atualizar um software específico ou quiser substituí-lo, nesse caso o fluxograma abaixo deve ser seguido para o gerenciamento de configuração bem-sucedido:

Agora é a hora certa para entender a Arquitetura de Marionetes.

Tutorial de fantoches - Arquitetura de Fantoche

O Puppet usa uma arquitetura Master-Slave. O diagrama abaixo descreve o mesmo:

As seguintes funções são realizadas na imagem acima:

  • O Puppet Agent envia os fatos para o Puppet Master. Os fatos são basicamentepar de dados de chave / valor que representa algum aspecto do estado Slave, como endereço IP, tempo de atividade, sistema operacional ou se é uma máquina virtual. Explicarei os fatos em detalhes posteriormente no blog.
  • O Puppet Master usa os fatos para compilar um Catálogo que define como o Slave deve ser configurado. Catálogoé um documento que descreve o estado desejado para cada recurso que o Puppet Master gerencia em um Slave. Explicarei os catálogos e recursos em detalhes posteriormente.
  • O Puppet Slave reporta de volta ao Master, indicando que a configuração está completa, o que é visível no painel do Puppet.

Confira este vídeo tutorial do Puppet para um entendimento profundo do Puppet.

Tutorial de fantoches para iniciantes | Treinamento DevOps | Edureka

Puppet Tutorial - Puppet Master e Slave Communication

Puppet Master e Slave se comunicam através deum canal criptografado seguro com a ajuda de SSL. O diagrama abaixo descreve o mesmo:

Como você pode ver na imagem acima:

  • Puppet Slave pede um certificado de Puppet Master.
  • Depois de receber o certificado do Puppet Master, o Master solicita o certificado do Slave.
  • Depois que o Master assina o certificado do Slave, o Slave solicita configuração / dados.
  • Finalmente, o Puppet Master enviará a configuração para o Puppet Slave.

Vamos agora dar uma olhada em vários componentes do Puppet.

Tutorial de fantoches - componentes de Fantoche

Manifestos: Cada Slave tem seus detalhes de configuração no Puppet Master, escrito na língua nativa do Puppet. Esses detalhes são escritos em uma linguagem que o Puppet pode entender e são denominados Manifestos. Eles são compostos de código de Puppet e seus nomes de arquivo usam o .pp extensão. Esses são basicamente programas de fantoches.
Por exemplo: Você pode escrever um Manifesto no Puppet Master que cria um arquivo e instala o servidor Apache em todos os Puppet Slaves conectados ao Puppet Master.

Módulo: Um Módulo Puppet é uma coleção de manifestos e dados (como fatos, arquivos e modelos), e eles têm uma estrutura de diretório específica. Módulos são úteis para organizar seu código Puppet, porque eles permitem que você divida seu código em múltiplos Manifestos. Módulos são pacotes autocontidos de código e dados.

Recurso: Os recursos são a unidade fundamental para modelar as configurações do sistema. Cada recurso descreve algum aspecto de um sistema, como um serviço ou pacote específico.

Facter: O Facter reúne informações básicas (fatos) sobre o Puppet Slave, como detalhes de hardware, configurações de rede, tipo e versão do sistema operacional, endereços IP, endereços MAC, chaves SSH e muito mais. Esses fatos são então disponibilizados nos manifestos do Puppet Master como variáveis.

Mcollective: É um framework que permite que vários jobs sejam executados em paralelo em vários Slaves. Ele executa várias funções como:

java como usar isso
  • Interaja com clusters de Slaves, seja em pequenos grupos ou implantações muito grandes.
  • Use um paradigma de transmissão para distribuir solicitações. Todos os escravos recebem todas as solicitações ao mesmo tempo, as solicitações têm filtros anexados e apenas os escravos correspondentes ao filtro atuarão nas solicitações.
  • Use ferramentas de linha de comando simples para chamar escravos remotos.
  • Escreva relatórios personalizados sobre sua infraestrutura.

Catálogos: Um Catálogo descreve o estado desejado de cada recurso gerenciado em um Slave. É uma compilação de todos os recursos que o Puppet Master aplica a um determinado Slave, bem como as relações entre esses recursos.Os catálogos são compilados por um Puppet Master a partir de manifestos e dados fornecidos pelo Slave (como fatos, certificados e um ambiente, se houver), bem como dados externos opcionais (como dados de um classificador Slave externo, recursos exportados, e funções). O Master então entrega o Catálogo compilado ao Slave quando solicitado.

Agora, neste tutorial do fantoche, minha próxima seção se concentrará na prática.

Tutorial do Puppet - Prático

Vou mostrar como implantar MySQL e PHP de Puppet Master para Puppet Slave. Estou usando apenas um Slave para fins de demonstração, pode haver centenas de Slaves conectados a um Master. Para implantar PHP e MySQL, usarei módulos predefinidos disponíveis em forge.puppet.com. Você também pode criar seus próprios módulos.

Passo 1: No Puppet Master, instale os módulos MySQL e PHP.

Execute isto:

1) instalação do módulo puppet puppetlabs-mysql – versão 3.10.0

Este módulo MySQL instala, configura e gerencia o serviço MySQL. Este módulo gerencia a instalação e configuração do MySQL, bem como estende o Puppet para permitir o gerenciamento de recursos do MySQL, como bancos de dados, usuários e concessões.

2) instalação do módulo puppet mayflower-php –version 4.0.0-beta1

Este módulo é usado para gerenciar PHP, em particular php-fpm. PHP-FPM (FastCGI Process Manager) é uma implementação alternativa do PHP FastCGI com alguns recursos adicionais úteis para sites de qualquer tamanho, especialmente sites mais ocupados.

Passo 2: Em Puppet Manifests incluem servidor MySQL e PHP.

Execute isto: vi /etc/puppet/manifests/site.pp

Você pode usar qualquer outro editor, bem como vim, gedit etc. Neste arquivo site.pp adicione o seguinte:

include ':: mysql :: server' include ':: php'

Salve e saia.

Etapa 3: O Puppet Slaves retira sua configuração do Master periodicamente (a cada 30 minutos). Ele avaliará o manifesto principal e aplicará o módulo que especifica a configuração do MySQL e do PHP. Se quiser experimentá-lo imediatamente, você precisará executar o seguinte comando em cada nó Slave:

Execute isto: agente fantoche -t

Portanto, o MySQL e o PHP foram instalados com sucesso no nó Slave.

Passo 4: Para verificar a versão do MySQL e do PHP instalado:

Execute isto:

é um e tem um relacionamento em java

1) mysql -v

2) versão php

Parabéns! MySQl e PHP estão instalados e funcionando em seu Puppet Slave. Mostrei aqui apenas um escravo, mas imagine se houver centenas de escravos. Nesse cenário seu trabalho se torna tão fácil, basta especificar as configurações no Puppet Master e o Puppet Slaves avaliará automaticamente o manifesto principal e aplicará o módulo que especifica a configuração do MySQL e do PHP.

Se você encontrou isso Tutorial de fantoches relevante, Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso Edureka DevOps Certification Training ajuda os alunos a ganhar experiência em vários processos e ferramentas DevOps, como Puppet, Jenkins, Nagios e GIT para automatizar várias etapas em SDLC.