Mapa mental
Puppet
Contenido del mapa
Puppet
- Puppet é uma ferramenta e plataforma Open Source para automação e gerenciamento de configuração de servidores e infraestrutura. Utiliza uma arquitetura cliente/servidor para a distruibuição da configuração para clientes que possuem um agente que sempre valida e corrige quaisquer problemas encontrados.
Bibliotecas - Libraries
Benefícios
- Simula Mudanças de Configuração
- Acompanha o Histórico de um Sistema
- Refatorar
- Possui linguagem própria
- Meta-parâmetros
- before
- Depois de terminar de executar uma determinada função você executa a outra. Exemplo.: [root@puppet metaparametros]# cat before2.pp file { '/tmp/teste2.txt': ensure => present, content => "Ola!\n", before => Notify['mensagem'] } notify { 'mensagem': message => 'O arquivo teste2.txt foi criado!', } [root@puppet metaparametros]# [root@puppet metaparametros]# puppet apply before2.pp Notice: Compiled catalog for puppet.linux.brs in environment production in 0.06 seconds Notice: /Stage[main]/Main/File[/tmp/teste2.txt]/ensure: defined content as '{md5}50c32e08ab3f0df064af1a8c98d1b6ce' Notice: O arquivo teste2.txt foi criado! Notice: /Stage[main]/Main/Notify[mensagem]/message: defined 'message' as 'O arquivo teste2.txt foi criado!' Notice: Applied catalog in 0.02 seconds [root@puppet metaparametros]#
- require
- notify
- Os meta-parâmetros notify e subscribe estabelecem relações de dependência da mesma maneira que before e require, mas para relações de refresh.
- subscribe
- before
- Facter
- O facter é uma ferramenta fundamental do ecossistema do Puppet, que gera uma lista de variáveis chamadas de fatos, que contém diversas informações sobre o sistema operacional. Todas essas variáveis estão disponíveis para uso dentro de qualquer manifest e dizemos que estão no escopo do topo (top scope). Veja que é possível extrair fatos específicos:# facter ipaddress192.168.1.201É possível extrair os fatos em formatos como YAML e JSON. # facter --json # facter --yaml
- Funções/Condicionais
- Refresh
- Alguns tipos de resources podem ser refreshed, ou seja, devem reagir quando houver mudanças. Refreshes acontecem somente durante a aplicação da configuração pelo Puppet e nunca fora dele. O agente do Puppet não monitora alterações nos arquivos.Somente os resources do tipo built-in exec, service e mount podem ser refreshed.Para um resource service, significa reiniciar ou recarregar após um arquivo de configuração modificado.Para um resource exec, significa ser executado toda vez que o resource for modificado.
- Channing
- Encadeando relacionamentos.: Existe um outro jeito de declarar relacionamentos entre os resources: usando setas de ordenação -> enotificação ~>. O Puppet chama isso de channing.Essas setas podem apontar para qualquer direção (<- funciona também) e você deve pensar nelas como o fluxo do tempo. O resource de onde parte a seta é sincronizado antes que o recurso para qual a seta aponta. Exemplo.: file {'/tmp/teste1.txt': ensure => present, content => "Hi.", } notify {'depois': message => '/tmp/teste1.txt foi sincronizado.', } File['/tmp/teste1.txt'] -> Notify['depois']
- onlyif e unless
- Atributos onlyif e unless do resource exec: Quando o recurso exec possuir o atributo onlyif ou unless declarado, só será executado se o(s) comando(s) informado(s) nestes atributos for(em) executado(s) sem erros. Ou seja, se retornarem ocódigo 0 (zero).Veja mais informações em:http://www.puppetcookbook.com/posts/exec-onlyif.html https://docs.puppet.com/puppet/latest/types/exec.html
- if / else / elsif
- Refresh
- Meta-parâmetros
- Padronização da Infraestrutura
Como funciona ?
- 1. Os clientes (chamados de nó, ou node) possuem um agente instalado que permanece em execução e se conecta a um servidor central (chamado tipicamente de master) periodicamente (a cada 30 minutos, por padrão). 2. O node solicita a sua configuração, que é copilada e enviada pelo master. 3. Essa configuração "compilada" é chamada de catálogo. 4. O agente aplica o catálogo no node. 5. O resultado da aplicação do catálogo é reportado ao master, havendo divergências ou não. Outra maneira comum de implantação do Puppet é a ausência de um agente em execução nos nodes. A aquisição e aplicação do catálogo é agendada na crontab ou é disparada via Mcollective. Geralmente, a configuração do ambiente codificada na linguagem do Puppet está armazenada em um sistema de controle de versão, como Subversion ou Git. As funcionalidades do Puppet são separadas basicamente em três camadas, sendo cada umaresponsável por uma parte do sistema como um todo.
Resource Abstraction Layer (RAL)
- Essa combinação de resources, resource types e atributos formam o Resource Abstraction Layer (RAL) do Puppet. O RAL divide resources em tipos (alto nível) e providers (provedores, implementações específicas de cada plataforma), e isso nos permite manipular resources (pacotes, usuários, arquivos, etc) de maneira independente de sistema operacional. Dica.:Ordens ao invés de passos!!!Através do RAL dizemos somente o que queremos e não precisamos nos preocupar no como será feito. Portanto, temos que pensar em ordens como "o pacote X deve estar instalado", ou ainda, "o serviço Z deve estar parado e desativado".
- Atributos
- Exemplo.: Todo arquivo tem um caminho e um dono, todo usuário possui um grupo e um número identificador.
- Resource Types
- O que existe em um sistema operacional? Arquivos, pacotes, processos e serviços em execução, programas, contas de usuários, grupos, etc. Para o Puppet, isso são resources (recursos). Os resources têm certas similaridades entre si. Por exemplo, um arquivo tem um caminho e um dono, todo usuário possui um grupo e um número identificador. Essas características chamamos de atributos, e unindo os atributos que sempre estão presentes possibilita a criação de resource types (tipos de recursos). Os principais resources types são: service, package, user, group, file, cron, exec. Com o comando do puppet é possível saber os atributos de um tipo. Exemplo.: # puppet describe -s user O argumento -s mostra uma versão resumida da documentação. Use o comando puppet describe sem o -s para ter acesso à documentação completa do resource type.
- service
- O resource type service é muito util, nele podemos habilitar um serviço para subir no boot, desabilitar um serviço, parar um serviço, iniciar um serviço
- package
- user
- group
- cron
- exec
- file
- mount
Manifests
- As declarações de configuração são chamadas de manifests (manifestos) e são salvos em arquivos com extensão .pp. A principal utilidade da linguagem do Puppet é a declaração de resource representando um estado desejado. Nos manifests também podemos ter condições, agrupar resources, gerar texto com funções, utilizar e referenciar código em outros manifests e muitas outras coisas.
O que é ?
- Puppet é uma ferramenta de gerencia de configurações que suporta várias plataformas. Ele tem sua própria linguagem declarativa, que é desenvolvida sobre a arquitetura de agente (cliente) e master (servidor).
Información
- Descripción
- Mapa Mental sobre Puppet, creado por Douglas Consoli Ruyz el 25/04/2017.
- Creado por
- Douglas Consoli Ruyz
- Visitas
- 5
- Valoración