Puppet webcast 4linux

Post on 24-May-2015

1.902 views 0 download

Transcript of Puppet webcast 4linux

PuppetAutomatizando e Gerênciando Con!gurações

<Guto Carvalho>

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

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

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

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

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

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

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

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?

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

Como resolvo isto?

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.

Gerência de Con!gurações

‣Padronização

‣Automatização

‣Controle

‣Integridade

‣Agilidade nas mudanças

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.

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

Instale pacote X

Crie usuário Y

Inicie serviço Z

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...

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

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’),}

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’),}

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

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',=> 'monitora@4linux.com.br',=> 'proxy',=> 'proxy',=> '127.0.0.1 10.61.12.2 172.16.1.1',=> '127.0.0.1 192.168.12.3',

Cases Puppet BR

‣EBC

‣Detran/DF

‣Caixa

Cases Puppet

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

Quais os ganhos com o Puppet?

‣ Documentação instantânea

‣ Restore de backup e mudanças

‣ Processos bem de!nidos

‣ Ambiente padronizado

‣ Sistemas automatizados

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

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

Puppet & 4Linux

4Linux & PuppetLabs‣ 1o Parceiro no Brasil

‣ Consultores Especializados

‣ Cases no Governo Federal

‣ Suporte Puppet Enterprise

‣ Treinamentos Puppet Master

Perguntas?

EOFJosé Augusto (Guto) Carvalho

<gutocarvalho@4linux.com.br>@gutocarvalho

twitter@4linuxBRfacebook/4linux