169
Brasília/DF Infraestrutura ágil com Puppet por Guto Carvalho CISL 2014 2014.04.07

Infraestrutura ágil com Puppet - CISL

Embed Size (px)

DESCRIPTION

Palestra sobre gerenciamento de configuração de infraestrutura com Puppet e conceitos de infraestrutura ágil.

Citation preview

Page 1: Infraestrutura ágil com Puppet - CISL

Brasília/DF

Infraestrutura ágil com Puppet por Guto Carvalho

CISL 20142014.04.07

Page 2: Infraestrutura ágil com Puppet - CISL

José Augusto (Guto) Carvalho

Consultor/SysAdmin/DevOp (LPIC-3, RHCE e PCP-201);

14 anos de experiência com TI e FOSS;

Blogueiro TI/FOSS há 13 anos (gutocarvalho.net);

Atuação em vários projetos de Governo no MDA, MINC, EBC/RADIOBRÁS, MPS/DATAPREV, ITI/PR, CAIXA, MD/SIPAM, DETRAN/DF;

Entusiasta DevOps (sysadmin em recuperação) desde 2010.

whoami

FOSS => Free and Open Source Software

Page 3: Infraestrutura ágil com Puppet - CISL

Plano de Trabalho

70 minutos de apresentação

25 minutos de demonstração

25 minutos para perguntas

Faça perguntas quando quiser

Slidedeck disponível em slideshare.com/gutocarvalho

Page 4: Infraestrutura ágil com Puppet - CISL

Infraestrutura ÁgilUm modelo inteligente e economicamente viável

Page 5: Infraestrutura ágil com Puppet - CISL

Infraestrutura ágil é um conceito ainda em formação, mas ele envolve principalmente gerência de configurações, orquestração, provisionamento dinâmico e metodologias ágeis de trabalho em grupo.

Page 6: Infraestrutura ágil com Puppet - CISL

Nesta apresentação focaremos na gerência de configurações, uma de suas mais importantes características.

Page 7: Infraestrutura ágil com Puppet - CISL

Tendências

Page 8: Infraestrutura ágil com Puppet - CISL

VirtualizaçãoHoje podemos rodar centenas de servidores virtuais, com d i f e r e n t e s s i s t e m a s operacionais em um mesmo host em nosso datacenter

Page 9: Infraestrutura ágil com Puppet - CISL

Cloud ComputingHoje podemos rodar todos os nossos sistemas em nodes (vms) em nuvens públicas ou privadas e nosso parque pode aumentar ou diminuir de forma dinâmica e automática

Page 10: Infraestrutura ágil com Puppet - CISL

Diminuição de CustosAs empresas hoje buscam aumentar a qualidade de seus produtos e serviços mas sem aumentar os seus custos de manutenção e operação

Page 11: Infraestrutura ágil com Puppet - CISL

Agilidade e FlexibilidadeAs empresas querem hoje f e r r a m e n t a s q u e l h e s permitam atuar de forma ágil e flexível dentro do seu negócio, algo que se adapte as suas necessidades de forma plena e concreta

Page 12: Infraestrutura ágil com Puppet - CISL

Novo tipo de profissionalAs empresas estão buscando no mercado profissionais m u l t i - d i s c i p l i n a r e s , dinâmicos, criativos, com domínio em diferentes tecnologias para dar vazão a demandas e trabalhar com inovação

Page 13: Infraestrutura ágil com Puppet - CISL

Desafios

Page 14: Infraestrutura ágil com Puppet - CISL

Desafios na TI de hojeComo administrar parques crescentes?

Como manter nosso parque padronizado?

Como manter nosso parque seguro?

Como manter a qualidade do serviço executado?

Como manter o custo de manutenção baixo, sem perder qualidade?

Como saber quantos profissionais eu preciso para administrar meu ambiente?

Page 15: Infraestrutura ágil com Puppet - CISL

Cenário Virtual

Page 16: Infraestrutura ágil com Puppet - CISL

Mjolnir Solutions Inc.

Possui um datacenter em sua sede com 750 VMs

Contratou 50 Nodes Cloud (IASS)

Precisa manter rodando 800 servidores virtuais

Page 17: Infraestrutura ágil com Puppet - CISL

Dúvidas

Page 18: Infraestrutura ágil com Puppet - CISL

Dúvidas comuns

Como faço mudanças rápidas em diversos ambientes e servidores?

Como faço para atender demandas em tempo hábil?

Como faço para manter a documentação atualizada?

Como evitar ao máximo downtime durante as mudanças?

Page 19: Infraestrutura ágil com Puppet - CISL

Quantos sysadmins eu preciso para administrar 800 VMs?

Page 20: Infraestrutura ágil com Puppet - CISL

Depende de como você faz a administração!

Page 21: Infraestrutura ágil com Puppet - CISL

Sysadmin ArtesãoHoje ainda é comum encontrar sysadmins que trabalham com a d m i n i s t r a ç ã o m a n u a l , utilizando um método quase artesanal, executando tarefas repetitivas cotidianamente

Page 22: Infraestrutura ágil com Puppet - CISL

Atualização de Pacotes?ssh servidor001.dominio.local ssh servidor002.dominio.local ssh servidor003.dominio.local

… ssh servidor800.dominio.local

Page 23: Infraestrutura ágil com Puppet - CISL

Instalação de Apps?ssh servidor001.dominio.local ssh servidor002.dominio.local ssh servidor003.dominio.local

… ssh servidor800.dominio.local

Page 24: Infraestrutura ágil com Puppet - CISL

Criação de Usuários?ssh servidor001.dominio.local ssh servidor002.dominio.local ssh servidor003.dominio.local

… ssh servidor800.dominio.local

Page 25: Infraestrutura ágil com Puppet - CISL

Tarefas RepetitivasCriação de usuário em servidores

Elaboração de scripts

Configuração de serviços

Configurações de monitoramento

Criação de imagens de ambientes

Configuração do sistema operacional

Instalação, atualização e remoção de pacotes

Page 26: Infraestrutura ágil com Puppet - CISL

Exemplo de processo 1Atualização de um agente de monitoramento (ubuntu)

ssh servidor001.dominio.local

sudo -i

apt-get install agente-monitoramento-2.0

vim /etc/agente-monitoramento/agent.conf

restart agente-monitoramento

exit

Page 27: Infraestrutura ágil com Puppet - CISL

Exemplo de processo 2Atualização de um agente de monitoramento (centos)

ssh servidor002.dominio.local

su -

yum install agente-monitoramento-2.0

vim /etc/agente-monitoramento/agent.conf

service agente-monitoramento restart

exit

Page 28: Infraestrutura ágil com Puppet - CISL

Exemplo de processo 3Atualização de um agente de monitoramento (debian)

ssh servidor003.dominio.local

su -

aptitude install agente-monitoramento-2.0

vim /etc/agente-monitoramento/agent.conf

/etc/init.d/agente-monitoramento restart

exit

Page 29: Infraestrutura ágil com Puppet - CISL

Exemplo de processo 4Atualização de um agente de monitoramento (fedora)

ssh servidor004.dominio.local

sudo -i

yum install agente-monitoramento-2.0

vim /etc/agente-monitoramento/agent.conf

systemctl restart agente-monitoramento

exit

Page 30: Infraestrutura ágil com Puppet - CISL

Cada sistema operacional lida de uma forma muito particular com seus recursos, e todas estas exceções precisam ser cuidadosamente avaliadas e tratadas.

Page 31: Infraestrutura ágil com Puppet - CISL

O uso de scripts ajuda, mas o sysadmin vai passar a dividir seu tempo administrando VMs e ajustando seus scripts para atender as mais diferentes exceções.

Page 32: Infraestrutura ágil com Puppet - CISL

Fatalmente uma das duas atividades será negligenciada, i s to va i gerar fa lhas e problemas.

Page 33: Infraestrutura ágil com Puppet - CISL

Cada sysadmin executará demandas de uma forma distinta, isto gera um ambiente sem padrões, impossível de rastear mudanças.

Page 34: Infraestrutura ágil com Puppet - CISL

A medida que o parque aumentar ficará cada vez mais difíci l administrar, identificar e corrigir problemas.

Page 35: Infraestrutura ágil com Puppet - CISL

Mudanças es t ruturantes que afetarem todo parque levarão mais tempo para serem concluídas pois no percurso muitas coisas vão quebrar.

Page 36: Infraestrutura ágil com Puppet - CISL

Com o excesso de demandas e ambiente crescendo cada vez mais, documentar perderá prioridade e isto criará um ambiente de alto risco, obscuro e desconhecido

Page 37: Infraestrutura ágil com Puppet - CISL

Pausa

Page 38: Infraestrutura ágil com Puppet - CISL

Sabe como o sysadmin se sente ao atuar em um incidente em ambiente não documentado? Acompanhe…

Page 39: Infraestrutura ágil com Puppet - CISL
Page 40: Infraestrutura ágil com Puppet - CISL
Page 41: Infraestrutura ágil com Puppet - CISL
Page 42: Infraestrutura ágil com Puppet - CISL

Documentação é importante para você saber lidar com uma situação inesperada

Page 43: Infraestrutura ágil com Puppet - CISL

Continuando…

Page 44: Infraestrutura ágil com Puppet - CISL

Percepções da empresa

Aumenta o custo de manutenção devido a retrabalho

Aumenta o desgaste físico e psíquico da equipe

A produtividade da equipe diminui (entregas)

A qualidade do serviço oferecido diminui (uptime)

Ocorre uma grande rotatividade de funcionários

Page 45: Infraestrutura ágil com Puppet - CISL

Tarefas RepetitivasExecutadas manualmente significam retrabalho

Page 46: Infraestrutura ágil com Puppet - CISL

RetrabalhoPara a empresa significa maior custo e menor lucro

Page 47: Infraestrutura ágil com Puppet - CISL

RetrabalhoPara o sysadmin significa menos tempo com a família

Page 48: Infraestrutura ágil com Puppet - CISL

RetrabalhoPara ambos significa menor p r odu t i v i dade e meno r qualidade no que se faz e no que se entrega.

Page 49: Infraestrutura ágil com Puppet - CISL

Desperdício de tempoé uma característica comum n e s t e m o d e l o d e a d m i n i s t r a ç ã o d e infraestrutura

Page 50: Infraestrutura ágil com Puppet - CISL

ExemploO cliente deseja instalar um agente de monitoramento em todas as 800 VMs, removendo qualquer traço do produto antigo no final do procedimento

Page 51: Infraestrutura ágil com Puppet - CISL

Procedimento para instalar o agente

Acessar servidor via ssh

Adicionar repositório APT/YUM

Instalar pacote

Ajustar arquivo de configuração

Reiniciar agente

Remover agente antigo

Page 52: Infraestrutura ágil com Puppet - CISL

Instalação de agente de

monitoramento800 máquinas

10 minutos por máquina 8000 minutos ou 133 horas 16 dias trabalhando 8 h.p.d

Page 53: Infraestrutura ágil com Puppet - CISL

Considerando o modelo manual de adminis t ração e o re t rabalho decorrente de falhas humanas, teremos um analista focado em uma demanda simples por cerca de 1 mês.

Page 54: Infraestrutura ágil com Puppet - CISL

O modelo manual éum modelo caro e insustentável

Page 55: Infraestrutura ágil com Puppet - CISL

Como resolver estes problemas?Como obtenho controle e padronização em meu ambiente ?

Page 56: Infraestrutura ágil com Puppet - CISL

Gerência de Configurações

Page 57: Infraestrutura ágil com Puppet - CISL

Gerência de Configurações

Padronização

Controle

Integridade

Produtividade

Agilidade

Page 58: Infraestrutura ágil com Puppet - CISL

PuppetFerramenta de nova geração que implementa gerência de

configurações para seu ambiente.

Page 59: Infraestrutura ágil com Puppet - CISL

Puppet em poucas palavras

É documentação executável

Nos permite parar de administrar e começar a desenvolver nossa infra

Sintaxe simples, prática e natural para sysadmins

Oferece suporte a diversos tipos de sistemas operacionais unix, linux windows

Page 60: Infraestrutura ágil com Puppet - CISL

Sobre a ferramenta

Ferramenta Open Source - Apache License

Ferramenta mantida pela empresa Puppetlabs

Suporte comercial

Criado por Luke Kaines (CEO e Fundador Puppetlabs)

Cases de uso com grandes players (HP, CISCO, VMWARE...)

Recebeu pesados investimentos em 2012/2013

Page 61: Infraestrutura ágil com Puppet - CISL

Feito por um SysAdmin para SysAdmins

Page 62: Infraestrutura ágil com Puppet - CISL

Desenhada para uso DevOps

Page 63: Infraestrutura ágil com Puppet - CISL

Visão DevOps

Page 64: Infraestrutura ágil com Puppet - CISL

Tech SpecsEscrito em Ruby

Extensível usando código Ruby

Funciona em modo autônomo (sem servidor)

Funciona em modo cliente e servidor

Usa RESTful API

Oferece comunicação segura com uso de certificados digitais

Page 65: Infraestrutura ágil com Puppet - CISL

Clientes Puppet Enterprise

Page 66: Infraestrutura ágil com Puppet - CISL

Parcerias

Page 67: Infraestrutura ágil com Puppet - CISL

Parcerias

Page 68: Infraestrutura ágil com Puppet - CISL

Alguns cases no Brasil

Page 69: Infraestrutura ágil com Puppet - CISL

ArquiteturaComo funciona o Puppet?

Page 70: Infraestrutura ágil com Puppet - CISL

O Puppet pode funcionar em modo masterless, isto significa sem servidor. Você pode aplicar uma configuração do Puppet diretamente a um sistema operacional apenas com o agente instalado.

Page 71: Infraestrutura ágil com Puppet - CISL

O Puppet também funciona em modo cliente e servidor. Isto significa que vicê instalará o puppet master em alguma VMs e seus agentes irão se comunicar com ele para obter configurações.

Page 72: Infraestrutura ágil com Puppet - CISL

Existem cenários de uso de Puppet masterless distribuído, usando GIT. Neste modelo as configurações do Puppet são obtidas via GIT e o agente é acionado via cron periódicamente

Page 73: Infraestrutura ágil com Puppet - CISL

Tratamento de informaçõese o uso de dados pelo Puppet

Page 74: Infraestrutura ágil com Puppet - CISL

Todas as informações de uma sistema operacional, seja um pacote, usuário, arquivo ou serviço são consideradas um 'dado' para o puppet.

Page 75: Infraestrutura ágil com Puppet - CISL

Quando construímos configurações, estas são convertidas em catálogos XML, estes por sua vez são lidos pelos agentes e a configuração é então aplicada ao sistema operacional.

Page 76: Infraestrutura ágil com Puppet - CISL

Entenda como funcionaa relação cliente e servidor

Page 77: Infraestrutura ágil com Puppet - CISL
Page 78: Infraestrutura ágil com Puppet - CISL

Tudo é feito pelo agente localmente, o servidor não se conecta na máquina para aplicar as configurações.

Page 79: Infraestrutura ágil com Puppet - CISL

O servidor puppet é apenas o repositório de configurações, ele tem apenas o dever de construir e enviar o catálogo quando isso for solicitado por um agente.

Page 80: Infraestrutura ágil com Puppet - CISL

Abstraçãomenor preocupação e maior resultado

Page 81: Infraestrutura ágil com Puppet - CISL

Resource Abstraction Layer

Camada de Abstração de Recursos

Fale o que você quer que seja feito

Não se preocupe em como será feito

O Puppet sabe como precisa fazer o que você pediu

Page 82: Infraestrutura ágil com Puppet - CISL

Instale Pacote X

Page 83: Infraestrutura ágil com Puppet - CISL

Remova usuário Z

Page 84: Infraestrutura ágil com Puppet - CISL

(Re)inicie serviço Y

Page 85: Infraestrutura ágil com Puppet - CISL

O Puppet é orientado a estados, nós criamos configurações definindo estes e s t a d o s , é u m a v e r d a d e i r a documentação executável.

Page 86: Infraestrutura ágil com Puppet - CISL

IdempotênciaCaracterística exclusiva do Puppet, nenhum outro faz isto.

Page 87: Infraestrutura ágil com Puppet - CISL

Puppet na redeEntenda como funciona a comunicação com o Master

Page 88: Infraestrutura ágil com Puppet - CISL

Modo cliente e servidor

O agente gera um certificado digital

O master precisa autorizar o certificado

Sem autorização o agente não pode se comunicar

Toda a comunicação entre agente e master é segura

Page 89: Infraestrutura ágil com Puppet - CISL

Puppet Visão em Rede

Puppet Master

Puppet Agent

8140 TCP puppet agent -t SSL

envio do catálogo

Page 90: Infraestrutura ágil com Puppet - CISL

Fluxo Cliente/Servidor

Instalação do node

Page 91: Infraestrutura ágil com Puppet - CISL

Fluxo Cliente/Servidor

Instalação do node

Inicialização do puppet

Page 92: Infraestrutura ágil com Puppet - CISL

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Inicialização do puppet

Page 93: Infraestrutura ágil com Puppet - CISL

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Envio de Certificado

Inicialização do puppet

Page 94: Infraestrutura ágil com Puppet - CISL

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Master Assina Certificado

Envio de Certificado

Inicialização do puppet

Page 95: Infraestrutura ágil com Puppet - CISL

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Agente Sincroniza

Master Assina Certificado

Envio de Certificado

Inicialização do puppet

Page 96: Infraestrutura ágil com Puppet - CISL

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Agente Sincroniza

Master Assina Certificado

Envio de Certificado

Inicialização do puppet

Modalidades de Assinatura de CertificadoAssinatura pode ser manual Assinatura pode ser automática por domínio Assinatura pode ser automática em qualquer requisição

Page 97: Infraestrutura ágil com Puppet - CISL

O agente se comunica com o master a cada N minutos, você configura N

Page 98: Infraestrutura ágil com Puppet - CISL

Configurações Voláteis e Dados

Puppet MasterMódulos Estáticos

Visão ampla do Puppet

LDAP DNS MONIT SYSLOG

JBOSS APACHE MYSQL PGSQL

Puppet Agents

Camada de Aplicação

Camada de Serviços Estruturantes

Page 99: Infraestrutura ágil com Puppet - CISL

Quais recursos estão disponíveis?

Page 100: Infraestrutura ágil com Puppet - CISL

Recursos do Puppet

Resource Types

Parâmetros e Meta-parâmetros

Templates e Definições

Classes e Módulos

Funções e Condicionais

Page 101: Infraestrutura ágil com Puppet - CISL

Puppet Resource Types

Arquivos e Diretórios

Usuários

Alias

Pacotes

Serviços

!

Yum Repos

Augeas

Hosts

SSH

Cron

O puppet oferece 38 tipos de recursos nativos, e você pode estendê-lo.

Page 102: Infraestrutura ágil com Puppet - CISL

Resource Type: PackagesSuporte a 23 tipos de provedores de pacotes

Faz a abstração do OS

Declare se o pacote deve estar presente ou ausente

Declare se o pacote deve sempre estar em sua última versão

Page 103: Infraestrutura ágil com Puppet - CISL

Resource Type: ServicesSuporta 11 tipos de sistemas INIT para inicializar serviços

Declare se um serviço deve estar sempre rodando

Declare se um serviço deve ser carregado no boot

Declare se um serviço depende de um pacote ou arquivo

Page 104: Infraestrutura ágil com Puppet - CISL

Resource Type: FileEspecifique permissões e owners

Declare arquivos, diretórios e links

Controle de mudanças usando até 15 tipos de checksums

Page 105: Infraestrutura ágil com Puppet - CISL

Exemplos

Page 106: Infraestrutura ágil com Puppet - CISL

Instala, Configura e Inicia

instalar um pacote!

ativar um serviço no boot!

copiar arquivo de configuração!

iniciar serviço instalado

o que queremos fazer?

Page 107: Infraestrutura ágil com Puppet - CISL

Instala, Configura e Inicia

# aptitude install apache2!

# insserv apache2!

# cp ~/httpd.conf /etc/apache2/!

# invoke-rc.d apache2 start

no debian seria assim:

Page 108: Infraestrutura ágil com Puppet - CISL

Instala, Configura e Inicia

# yum install httpd!

# chkconfig httpd on!

# cp ~/httpd.conf /etc/httpd/conf/!

# service httpd start

no redhat/centos seria assim:

Page 109: Infraestrutura ágil com Puppet - CISL

Como seria no Puppet?

Page 110: Infraestrutura ágil com Puppet - CISL

Puppet ManifestsArquivos com extensão.pp, neles expressamos nossas

necessidades utilizando a sintaxe declarativa do Puppet

Page 111: Infraestrutura ágil com Puppet - CISL

package { 'apache2':!ensure => present,!}!

 !service { 'apache2':!

ensure => running,!enable => true,!}!

!file { '/etc/apache2/httpd.conf':!

ensure => present,!mode => ‘0644’,!owner => ‘root’,!group => ‘root’,!ensure => “puppet:///files/apache/httpd.conf”,!

}

Instala, Configura e Inicia

Page 112: Infraestrutura ágil com Puppet - CISL

package { 'apache2':!ensure => present,!}! !service { 'apache2':!ensure => running,!enable => true,!}!

!file { '/etc/apache2/httpd.conf':!

ensure => present,!mode => ‘0644’,!owner => ‘root’,!group => ‘root’,!ensure => “puppet:///files/apache/httpd.conf”,!

}

Page 113: Infraestrutura ágil com Puppet - CISL

package { 'apache2':!ensure => present,!}! !service { 'apache2':!ensure => running,!enable => true,!}!

!file { '/etc/apache2/httpd.conf':!

ensure => present,!mode => ‘0644’,!owner => ‘root’,!group => ‘root’,!ensure => “puppet:///files/apache/httpd.conf”,!

}

resource type parameter

title value

Page 114: Infraestrutura ágil com Puppet - CISL

A mesma configuração atende a diversos sistemas operacionais, a sintaxe é simples e direta. É uma declaração de estados que o Puppet vai interpretar e aplicar.

Page 115: Infraestrutura ágil com Puppet - CISL

Documentação Executável.

Page 116: Infraestrutura ágil com Puppet - CISL

Mais exemplos

Page 117: Infraestrutura ágil com Puppet - CISL

Declarando um node (site.pp)

node “servidor.dominio” {! include linux-server! include module!}

node “balancer.dominio” {! include linux-server! include cyrus::backend! include postfix::hub include haproxy::mailproxy!}

Page 118: Infraestrutura ágil com Puppet - CISL

Apenas com as informações do node, já podemos entender o que ele faz e quais ferramentas o puppet gerencia nele, é outro tipo de documentação.

Page 119: Infraestrutura ágil com Puppet - CISL

Variáveis e FatosFatos (facter)

vimpackage => vim-puppet, !apacheservice => apache2, !ntpconfrhel => ntp.conf.rhel, !servername => $facts[fqdn],

Constantes e Variáveisdomain fqdn hostname interfaces ipaddress_eth0 ipaddress_eth1 ipaddress_lo lsbdistid lsbdistrelease

=> hacklab, => puppetmaster.hacklab, => puppetmaster, => eth0,eth1,lo, => 10.0.2.15, => 192.168.56.150, => 127.0.0.1, => debian, => 6.0.5,

Page 120: Infraestrutura ágil com Puppet - CISL

Condicionaiscase $operatingsystem {! CentOS,RedHat: { ! $package_name = 'ntp',! $service_name = 'ntpd',! $conf_file = 'ntp.conf.el',! }! Debian,Ubuntu: { ! $package_name = 'ntp',! $service_name = 'ntp',! $conf_file = 'ntp.conf.debian',! }!}!....

Page 121: Infraestrutura ágil com Puppet - CISL

Condicionaisif $operatingsystem == '"CentOS" {! $package_name = 'ntp',! $service_name = 'ntpd',! $conf_file = 'ntp.conf.el',! }! elseif $operatingsystem == 'Debian' { ! $package_name = 'ntp',! $service_name = 'ntp',! $conf_file = 'ntp.conf.debian',! }!else { notify { “Sistema desconhecido”: }! }!....

Page 122: Infraestrutura ágil com Puppet - CISL

Condicionais

if ( $operatingsystem == 'Debian' ) and ( $lsbdistcodename == 'squeeze' ) {! ! bloco de código! !}

Page 123: Infraestrutura ágil com Puppet - CISL

Definiçõesproxy { 'Filial' :! http_port ! squid_mode ! squid_hostname ! cache_mem ! maximum_object_size_in_memory ! maximum_object_size ! memory_replacement_policy ! cache_replacement_policy ! cache_dir ! cache_mgr ! cache_effective_user ! cache_effective_group ! dns_nameservers ! ips_squid ! }

=> '3128',!=> 'transparent',!=> 'proxy.hacklab',!=> '2 GB',!=> '6 MB',!=> '128 MB',!=> 'heap GDSF',!=> 'heap LFUDA',!=> 'aufs /var/spool/squid 1024 16 256',!=> ‘[email protected]’,!=> 'proxy',!=> 'proxy',!=> '127.0.0.1 10.61.12.2 172.16.1.1',!=> '127.0.0.1 192.168.12.3',

Page 124: Infraestrutura ágil com Puppet - CISL

Definiçõesproxy { 'Matriz' :! http_port ! squid_mode ! squid_hostname ! cache_mem ! maximum_object_size_in_memory ! maximum_object_size ! memory_replacement_policy ! cache_replacement_policy ! cache_dir ! cache_mgr ! cache_effective_user ! cache_effective_group ! dns_nameservers ! ips_squid ! }

=> '3128',!=> 'transparent',!=> 'proxy.hacklab',!=> '8 GB',!=> '6 MB',!=> '512 MB',!=> 'heap GDSF',!=> 'heap LFUDA',!=> 'aufs /var/spool/squid 8096 16 256',!=> ‘[email protected]’,!=> 'proxy',!=> 'proxy',!=> '127.0.0.1 10.61.12.2 172.16.1.1',!=> '127.0.0.1 192.168.12.3',

Page 125: Infraestrutura ágil com Puppet - CISL

Templates

myorigin = <%= hostname %>!mydestination = $myhostname, ..., localhost, <%= fqdn %>

Trecho do template postfix/main.cf

myorigin = servidor.dominio!mydestination = $myhostname, ..., localhost, servidor.dominio

Substituição de variáveis por fatos

Page 126: Infraestrutura ágil com Puppet - CISL

Padronizando nodes

Page 127: Infraestrutura ágil com Puppet - CISL

Base Classclass linux-server {! include sysadmin-utils! include zabbix-agent! include ntpconf! include locales! include hosts! include users! include localmta! include vimrc! include backup-agent! include apt-repos!}

Page 128: Infraestrutura ágil com Puppet - CISL

Node default

node default {! include linux-server!}

Page 129: Infraestrutura ágil com Puppet - CISL

Dashboards para Puppet

Page 130: Infraestrutura ágil com Puppet - CISL

Puppet Dashboard

Page 131: Infraestrutura ágil com Puppet - CISL
Page 132: Infraestrutura ágil com Puppet - CISL

Foreman

Page 133: Infraestrutura ágil com Puppet - CISL
Page 134: Infraestrutura ágil com Puppet - CISL

Outros projetos Puppetlabs

Page 135: Infraestrutura ágil com Puppet - CISL

Outros projetos Puppetlabs

PuppetDB (coletor de dados)

Razor (provisionador)

Hiera (separa dados de código)

Facter (fatos do sistema)

Mcollective (orquestrador)

Page 136: Infraestrutura ágil com Puppet - CISL

Gerenciadores Externos para o Puppet

Page 137: Infraestrutura ágil com Puppet - CISL

Configr

Page 138: Infraestrutura ágil com Puppet - CISL
Page 139: Infraestrutura ágil com Puppet - CISL
Page 140: Infraestrutura ágil com Puppet - CISL

Posso fazer mudanças em tempo real?

Page 141: Infraestrutura ágil com Puppet - CISL

Marionette Collective

Orquestrador de nodes

Execução de Tarefas Paralelas

Interação com centenas de nodes

Inventário descentralizado

Leitura de meta-dados do Puppet

Similar a Fabric e Capistrano

Page 142: Infraestrutura ágil com Puppet - CISL

Provisionamento? É possível ?

Page 143: Infraestrutura ágil com Puppet - CISL

Ferramentas de provisionamento VM

!

Foreman

Vagrant

Razor

Sprinkle

Puppet Enterprise

Page 144: Infraestrutura ágil com Puppet - CISL

Ferramentas de provisionamento SW

!

Ansible

Salt

Capistrano

Fabric

Page 145: Infraestrutura ágil com Puppet - CISL

Demonstração

Page 146: Infraestrutura ágil com Puppet - CISL

Qual o resultado concreto?

Page 147: Infraestrutura ágil com Puppet - CISL

A o e s c r e v e r m o s a s n o s s a s configurações, estamos expressando o que desejamos ter em nossos nodes, com isto, já estamos construindo nossa documentação.

Page 148: Infraestrutura ágil com Puppet - CISL

Aos escrevermos uma configuração, estamos definindo como aquilo de ser instalado, configurado e como deve funcionar. Toda a equipe passa a usar a mesma receita, isto significa que teremos processos padronizados.

Page 149: Infraestrutura ágil com Puppet - CISL

O Puppet oferece recursos para você fazer backup e restore de arquivos modificados, portanto, você tem a segurança de poder recuperar ambientes caso precise.

Page 150: Infraestrutura ágil com Puppet - CISL

Ao adotar Puppet você não vai mais sentir vontade de executar nada sem ele, tudo já nascerá automatizado e c o n t r o l a d o , c o m p r o c e s s o s e documentação instantânea.

Page 151: Infraestrutura ágil com Puppet - CISL

Respostas

Page 152: Infraestrutura ágil com Puppet - CISL

Um sysadmin que não usa Puppet consegue administrar no máximo 30 servidores, com alguma dificuldade e muito retrabalho.

Page 153: Infraestrutura ágil com Puppet - CISL

Um sysadmin que usa Puppet consegue administrar entre 250 e 1000 s e r v i do r e s c om f a c i l i dade , a quantidade vai depender do nível de automatização e maturidade do profissional e sua equipe.

Page 154: Infraestrutura ágil com Puppet - CISL

Para administrar 800 VMs, utilizando Puppet, você precisará de 4 sysadmins, e afirmo que dependendo do nível de automação até menos.

Page 155: Infraestrutura ágil com Puppet - CISL

Compare

Ambiente com 800 nodes

modo manual puppet

instalando agente 133 horas N minutos

Page 156: Infraestrutura ágil com Puppet - CISL

Benefícios Reais

Maior produtividade em menor tempo

Poucos sysadmins para muitos nodes

Diminuição de falhas humanas

Maior controle de todo o seu parque

Diminuição do tempo gasto em mudanças

Diminuição do custo de manutenção

Page 157: Infraestrutura ágil com Puppet - CISL

O sysadmin fará jornadas de trabalho normais, ficará mais tempo com a família, terá mais qualidade de vida e com isso irá produzir mais e melhor.

Page 158: Infraestrutura ágil com Puppet - CISL

O negócio de sua empresa vai fluir, ter m e l h o r q u a l i d a d e , m a i o r disponibilidade e menor custo operacional, sendo gerido por uma equipe qualificada e eficiente.

Page 159: Infraestrutura ágil com Puppet - CISL

Puppet Labs

Page 160: Infraestrutura ágil com Puppet - CISL

Puppetlabs

Suporte Comercial (em inglês)

Programa de treinamento presencial

Programa de certificação para Sysadmins - PCP 201

Programa de certificação para Developers - PCP 301

Puppet Enterprise Dashboard (Gerenciador)

Page 161: Infraestrutura ágil com Puppet - CISL

Puppet em números700+ pessoas online no canal #puppet da irc.freenode.net

8.500+ repositórios no GitHub

1000+ módulos no PuppetForge

5000+ usuários ativos na lista puppet-users com 8000+ tópicos de discussão

Comunidade brasileira!

Page 162: Infraestrutura ágil com Puppet - CISL

Site/Blog http://www.puppetlabs.com http://www.puppetlabs.com/blog/ http://puppet-br.org/ Twitter @puppetlabs @puppetmasterd (luke)

GitHub http://www.github.com/puppelabs

Puppet na rede

Google Groups Puppet-camp, puppet-users, puppet-users-br, puppet-dev

IRC irc.freenode.org #puppet #puppet-br

Page 163: Infraestrutura ágil com Puppet - CISL

Existe suporte comercial no Brasil?

Page 164: Infraestrutura ágil com Puppet - CISL

• Suporte Oficial Puppetlabs no Brasil • Empresa especializada em Puppet

• Cursos oficiais, Puppet Enterprise, consultoria e suporte

• 1o Parceiro oficial Puppetlabs Brasil

• 1o empresa com pessoas certificados PCP na América Latina

• Acesse http://www.instruct.com.br

Page 165: Infraestrutura ágil com Puppet - CISL

Inovando com o Puppet

Page 166: Infraestrutura ágil com Puppet - CISL

PUPPET COMO SERVIÇO

• Gerenciamento de Configuração COMO SERVIÇO !

• Automatizar Infraestrutura de GRANDES CORPORAÇÕES !

• Interface intuitiva focada em AGILIDADE e AUTONOMIA !

• Suporte com PROFISSIONAIS CERTIFICADOS (PCP, RHCE, LPI-3) !

• SERVIÇO PIONEIRO para Gestão de Infraestrutura no Brasil

www.configr.com

Page 167: Infraestrutura ágil com Puppet - CISL

Perguntas?

Page 168: Infraestrutura ágil com Puppet - CISL

Obrigado!

Page 169: Infraestrutura ágil com Puppet - CISL

Linkedin: http://br.linkedin.com/in/gutocarv

E-mail: [email protected]

Contato

Slides: slideshare.net/gutocarvalhoBlog: gutocarvalho.net

Twitter: @gutocarvalho

http://puppetlabs.com http://instruct.com.br http://configr.com