35

Puppet webcast 4linux

Embed Size (px)

Citation preview

Page 1: Puppet webcast 4linux
Page 2: Puppet webcast 4linux

PuppetAutomatizando e Gerênciando Con!gurações

<Guto Carvalho>

Page 3: Puppet webcast 4linux

whoami

‣ Consultor/SysAdmin (LPIC-3) na 4Linux

‣ Doze anos de experiência com tecnologias FOSS

‣ Blogueiro de TI há 6 anos no site gutocarvalho.net

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

‣ Há 2 anos trabalhando com gerência de con!gurações em ambientes virtualizados e clouds privadas em Brasília

Page 4: Puppet webcast 4linux

whoami

‣ Consultor/SysAdmin (LPIC-3) na 4Linux

‣ Doze anos de experiência com tecnologias FOSS

‣ Blogueiro de TI há 6 anos no site gutocarvalho.net

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

‣ Há 2 anos trabalhando com gerência de con!gurações em ambientes virtualizados e clouds privadas em Brasília

Page 5: Puppet webcast 4linux

Agenda

‣ Administração Manual

‣ Gerência de Con!gurações

‣ Puppet como ferramenta de GC

‣ Puppet Características

‣ Puppet Exemplos

‣ Cases Puppet

‣ Comunidade Puppet

‣ Benefícios e Ganhos

‣ Puppet & 4Linux

Page 6: Puppet webcast 4linux

Administração Manual

‣ Tarefas repetitivas

‣ Falta de padrões

‣ Falta de procedimentos de!nidos

‣ Cada sysadmin faz do seu jeito

‣ Falta de documentação das mudanças executadas

Page 7: Puppet webcast 4linux

Problemas da Administração Manual

‣ Tarefas repetitivas

‣ Falta de padrões

‣ Maior índice de falhas humanas

‣Equipe sempre sobrecarregada

‣Equipe sempre saindo tarde e trabalhando FDS

‣ Falta de procedimentos de!nidos

‣ Cada sysadmin faz do seu jeito

‣ Falta de documentação das mudanças executadas

Page 8: Puppet webcast 4linux

Tarefas repetitivas

‣ Criação de usuários

‣ Elaboração de scripts

‣ Con!guração de serviços

‣ Con!gurações de monitoramento

‣ Criação de imagens de ambientes

‣ Con!guração do sistema operacional

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

‣ Reinstalação de ambientes

‣ Expansão de ambientes balanceados

Page 9: Puppet webcast 4linux

Exemplo: Pacote

DemandaTrocar Nagios por Zabbix

Ambiente450 máquinas

Estimativa 10 minutos por máquina4.500 minutos ou 75 horasCerca 9 dias trabalhando 8 h.p.d

Page 10: Puppet webcast 4linux

Exemplo: Usuário

DemandaCriar usuário em 450 nodes

Ambiente450 máquinas

Estimativa 3 minutos por máquina1350 minutos22.5 horas para criar o usuário450 trocas de senha, quem curte?

Page 11: Puppet webcast 4linux

Você vai perceber que...

‣ Fica mais difícil identi!car e corrigir problemas

‣ Fica mais difícil manter ambientes complexos funcionando

‣ Fica mais difícil manter seu parque padronizado

‣ Sua produtividade diminui a media que o ambiente cresce

‣ Sua capacidade de entrega não é mais a mesma

‣ Você nunca chega em casa no mesmo horário

‣ Você trabalha muitos !nais de semana e madrugadas

Page 12: Puppet webcast 4linux

Como resolvo isto?

Page 13: Puppet webcast 4linux

Gerência de Con!gurações

A gerência de configuração oferece um conjunto de recursos que visa garantir a integridade das configurações de nossos sistemas, serviços e infraestrutura envolvida, fazendo isto de

forma ágil e automatizada.

Page 14: Puppet webcast 4linux

Gerência de Con!gurações

‣Padronização

‣Automatização

‣Controle

‣Integridade

‣Agilidade nas mudanças

Page 15: Puppet webcast 4linux

Puppet em poucas palavras

‣ Ferramenta de nova geração que implementa Gerência de Con!gurações

‣ Podemos parar de administrar e começar a desenvolver nossa infra

‣ Nos permite reaproveitar código para construir con!gurações

‣ Oferece linguagem declarativa para expressar nossas con!gurações

‣ Possui uma sintaxe simples, prática e natural para sysadmins

‣ Oferece suporte a Linux, BSDs, OSX e Windows

‣ Criada por um sysadmin (Luke Kaine) para sysadmins.

Page 16: Puppet webcast 4linux

Puppet Características

‣ Escrito em Ruby

‣ Extensível usando código Ruby

‣ Funciona em modo autônomo (roda na máquina localmente)

‣ Funciona em modo cliente/servidor (RESTful)

‣ Oferece comunicação segura SSL entre cliente/servidor

‣ Oferece camada de abstração para criação das con!gurações

Page 17: Puppet webcast 4linux

Instale pacote X

Page 18: Puppet webcast 4linux

Crie usuário Y

Page 19: Puppet webcast 4linux

Inicie serviço Z

Page 20: Puppet webcast 4linux

Recursos

‣ Suporte a mais de 19 tipos de sistemas operacionais

‣ RHEL, CentOS, Debian, Scienti!c Linux, Oracle Linux, Ubuntu, Fedora, Suse, Gentoo, Mandriva,

Archlinux, FreeBSD, OpenBSB, Mac OS X, Oracle Solaris, AIX, HPUX, Windows 2003, Windows 7

‣ Suporte a 23 tipos de gerenciadores de pacotes

‣ Suporte a 11 tipos de sistemas de inicialização

‣ Puppet é Idempotente

‣ Suporte a tratamento a condicionais em suas con!gurações

‣ Resource Types, Parâmetros, Meta-Parâmetros, Classes, Fatos, Variáveis, Templates e De!nições

‣ Obtém fatos do sistema via FACTER

‣ E muito mais...

Page 21: Puppet webcast 4linux

Exemplo de Con!guração

# aptitude install apache2

# update-rc.d -f apache2 defaults

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

# invoke-rc.d apache2 start

debian way

Page 22: Puppet webcast 4linux

Exemplo de Con!guração

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

file { 'main.cf': path => “/etc/postfix/main.cf”, content => template(‘/srv/puppet/templates/main.cf.erb’),}

Page 23: Puppet webcast 4linux

Exemplo de Con!guração

resource typeparameter

titlevalue

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

file { 'main.cf': path => “/etc/postfix/main.cf”, content => template(‘/srv/puppet/templates/main.cf.erb’),}

Page 24: Puppet webcast 4linux

Exemplo de template

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

Trecho do template main.cf.erb

myorigin = servidor.dominiomydestination = $myhostname, ..., localhost, servidor.dominio

Substituição de variáveis por fatos

Page 25: Puppet webcast 4linux

Exemplo de de!nição

proxy::squid { 'ProxyFilial' : 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_e"ective_user cache_e"ective_group dns_nameservers ips_squid }

=> '3128',=> 'transparent',=> 'proxy.4linux',=> '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 26: Puppet webcast 4linux

Cases Puppet BR

‣EBC

‣Detran/DF

‣Caixa

Page 27: Puppet webcast 4linux

Cases Puppet

Page 28: Puppet webcast 4linux

Comunidade Puppet

‣727 pessoas online no canal #puppet da irc.freenode.net

‣8.500 repositórios no GitHub

‣450 módulos no PuppetForge

‣4457 usuários ativos na lista puppet-users

‣Lista puppet-users com 7795 tópicos de discussão

Page 29: Puppet webcast 4linux

Quais os ganhos com o Puppet?

‣ Documentação instantânea

‣ Restore de backup e mudanças

‣ Processos bem de!nidos

‣ Ambiente padronizado

‣ Sistemas automatizados

Page 30: Puppet webcast 4linux

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

‣ Você chegará cedo em casa

‣ Suas madrugas e !nais de semana serão seus

Page 31: Puppet webcast 4linux

Exemplo real

Ambiente com 450 nodesAmbiente com 450 nodesAmbiente com 450 nodes

modo manual puppet

instalando zabbix 75 horas 10 minutos

criando usuário 22 horas 10 minutos

Page 32: Puppet webcast 4linux

Puppet & 4Linux

4Linux & PuppetLabs‣ 1o Parceiro no Brasil

‣ Consultores Especializados

‣ Cases no Governo Federal

‣ Suporte Puppet Enterprise

‣ Treinamentos Puppet Master

Page 33: Puppet webcast 4linux

Perguntas?

Page 34: Puppet webcast 4linux

EOFJosé Augusto (Guto) Carvalho

<[email protected]>@gutocarvalho

twitter@4linuxBRfacebook/4linux

Page 35: Puppet webcast 4linux