134
sábado, 21 de setembro de 13

Infraestrutura como código com Puppet e Mcollective

Embed Size (px)

DESCRIPTION

Free Software Day - Taguatinga/DF - 2013

Citation preview

Page 1: Infraestrutura como código com Puppet e Mcollective

sábado, 21 de setembro de 13

Page 2: Infraestrutura como código com Puppet e Mcollective

Infraestrutura como códigoPuppet & Mcollective

TAGUATINGA/DF - 2013--09-21sábado, 21 de setembro de 13

Page 3: Infraestrutura como código com Puppet e Mcollective

José Augusto (Guto) Carvalho

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

14 anos de experiência com TI e FOSS;

Blogueiro TI/FOSS há 10 anos no site 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

sábado, 21 de setembro de 13

Page 4: Infraestrutura como código com Puppet e Mcollective

Plano de Trabalho

40 minutos de apresentação

10 minutos para perguntas

Faça perguntas quando quiser

Slidedeck disponível em slideshare.com/gutocarvalho

sábado, 21 de setembro de 13

Page 5: Infraestrutura como código com Puppet e Mcollective

AgendaGerência de configurações

Infraestrutura como código

Ferramentas de infraestrutura como código;

Puppet como solução de gerência de configurações

Puppet arquitetura, funcionamento e recursos

Mcollective

Perguntas

sábado, 21 de setembro de 13

Page 6: Infraestrutura como código com Puppet e Mcollective

Administração de sistemas e serviços

sábado, 21 de setembro de 13

Page 7: Infraestrutura como código com Puppet e Mcollective

Virtualização

sábado, 21 de setembro de 13

Page 8: Infraestrutura como código com Puppet e Mcollective

Cloud Computing

sábado, 21 de setembro de 13

Page 9: Infraestrutura como código com Puppet e Mcollective

Administração Manual

sábado, 21 de setembro de 13

Page 10: Infraestrutura como código com Puppet e Mcollective

Administração Manual

Tarefas repetitivas

Não existem padrões

Não existem procedimentos

sábado, 21 de setembro de 13

Page 11: Infraestrutura como código com Puppet e Mcollective

Cada sysadmin faz do seu jeito

sábado, 21 de setembro de 13

Page 12: Infraestrutura como código com Puppet e Mcollective

Tarefas RepetitivasCriação de usuários

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

sábado, 21 de setembro de 13

Page 13: Infraestrutura como código com Puppet e Mcollective

A medida que o parque aumenta administrá-lo fica mais complicado

sábado, 21 de setembro de 13

Page 14: Infraestrutura como código com Puppet e Mcollective

Você vai percerber que...Fica mais difícil identificar 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 finais de semana e madrugadas

sábado, 21 de setembro de 13

Page 15: Infraestrutura como código com Puppet e Mcollective

Maior risco de ocorrer falhas

sábado, 21 de setembro de 13

Page 16: Infraestrutura como código com Puppet e Mcollective

Maior tempo gasto para executar mudanças

sábado, 21 de setembro de 13

Page 17: Infraestrutura como código com Puppet e Mcollective

Quanto tempo se gasta para criar um usuário em 450 servidores?

sábado, 21 de setembro de 13

Page 18: Infraestrutura como código com Puppet e Mcollective

Procedimento para criar usuário

Acessar o servidor por ssh

Se tornar root

Criar usuário

Especificar senha temporária

Especificar permissões no sudoers

sábado, 21 de setembro de 13

Page 19: Infraestrutura como código com Puppet e Mcollective

Criação de usuário450 máquinas 3 minutos por máquina1350 minutos ou 22,5 horas450 trocas de senhas

sábado, 21 de setembro de 13

Page 20: Infraestrutura como código com Puppet e Mcollective

Quanto tempo se gasta parainstalar um agente de monitoramento em 450 servidores removendo o agente antigo?

sábado, 21 de setembro de 13

Page 21: Infraestrutura como código com Puppet e Mcollective

Procedimento para instalar zabbix

Acessar servidor via ssh

Adicionar repositório APT

Atualizar índices

Instalar pacote

Ajustar arquivo zabbix_agentd.conf

Reiniciar agente zabbix

Remover agente antigo (nagios).

sábado, 21 de setembro de 13

Page 22: Infraestrutura como código com Puppet e Mcollective

Instalação de agente de monitoramento450 máquinas 10 minutos por máquina4500 minutos ou 75 horas9 dias trabalhando 8 h.p.d

sábado, 21 de setembro de 13

Page 23: Infraestrutura como código com Puppet e Mcollective

Documentação inexistente

sábado, 21 de setembro de 13

Page 24: Infraestrutura como código com Puppet e Mcollective

Não há rastreamento de mudanças

sábado, 21 de setembro de 13

Page 25: Infraestrutura como código com Puppet e Mcollective

Demandas pipocando...

sábado, 21 de setembro de 13

Page 26: Infraestrutura como código com Puppet e Mcollective

Ambiente pipocando...

sábado, 21 de setembro de 13

Page 27: Infraestrutura como código com Puppet e Mcollective

Estresse aumentando...

sábado, 21 de setembro de 13

Page 28: Infraestrutura como código com Puppet e Mcollective

E você começa a ter a sensação de estar sendo engolido por seu ambiente.

sábado, 21 de setembro de 13

Page 29: Infraestrutura como código com Puppet e Mcollective

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

sábado, 21 de setembro de 13

Page 30: Infraestrutura como código com Puppet e Mcollective

Gerência de Configurações

sábado, 21 de setembro de 13

Page 31: Infraestrutura como código com Puppet e Mcollective

Padronização

sábado, 21 de setembro de 13

Page 32: Infraestrutura como código com Puppet e Mcollective

Automatização

sábado, 21 de setembro de 13

Page 33: Infraestrutura como código com Puppet e Mcollective

Controle

sábado, 21 de setembro de 13

Page 34: Infraestrutura como código com Puppet e Mcollective

Integridade

sábado, 21 de setembro de 13

Page 35: Infraestrutura como código com Puppet e Mcollective

Agilidade nas mudanças

sábado, 21 de setembro de 13

Page 36: Infraestrutura como código com Puppet e Mcollective

Ferramentas de GC

sábado, 21 de setembro de 13

Page 37: Infraestrutura como código com Puppet e Mcollective

sábado, 21 de setembro de 13

Page 38: Infraestrutura como código com Puppet e Mcollective

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

configurações para seu ambiente.

sábado, 21 de setembro de 13

Page 39: Infraestrutura como código com Puppet e Mcollective

Puppet em poucas palavras

sábado, 21 de setembro de 13

Page 40: Infraestrutura como código com Puppet e Mcollective

Puppet em poucas palavras

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

Nos permite reaproveitar código para construir configurações

Oferece linguagem declarativa para criar configurações

Sintaxe simples, prática e natural para sysadmins

Oferece suporte a Linux, BDBs, OSX e Windows

sábado, 21 de setembro de 13

Page 41: Infraestrutura como código com Puppet e Mcollective

Sobre a ferramenta

sábado, 21 de setembro de 13

Page 42: Infraestrutura como código com Puppet e Mcollective

Sobre a ferramenta

Ferramenta Open Source - Apache License

Ferramenta mantida pela empresa Puppetlabs

Empresa oferece suporte e versão enterprise

Criado por Luke Kaines (CEO e Fundador Puppetlabs)

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

Recebeu pesados investimentos

sábado, 21 de setembro de 13

Page 43: Infraestrutura como código com Puppet e Mcollective

Sobre a ferramenta

Ferramenta Open Source - Apache License

Ferramenta mantida pela empresa Puppetlabs

Empresa oferece suporte e versão enterprise

Criado por Luke Kaines (CEO e Fundador Puppetlabs)

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

Recebeu pesados investimentos

sábado, 21 de setembro de 13

Page 44: Infraestrutura como código com Puppet e Mcollective

Feito por um SysAdmin para SysAdmins

sábado, 21 de setembro de 13

Page 45: Infraestrutura como código com Puppet e Mcollective

Desenhada para uso DevOps

sábado, 21 de setembro de 13

Page 46: Infraestrutura como código com Puppet e Mcollective

Visão DevOpssábado, 21 de setembro de 13

Page 47: Infraestrutura como código com Puppet e Mcollective

Tech Specs

sábado, 21 de setembro de 13

Page 48: Infraestrutura como código com Puppet e Mcollective

Tech SpecsEscrito em Ruby

Extensível usando código Ruby

Funciona em modo autônomo (serverless)

Funciona em modo cliente.servidor

Usa RESTful API

Oferece comunicação segura com uso de certificados digitais

sábado, 21 de setembro de 13

Page 49: Infraestrutura como código com Puppet e Mcollective

Clientes Puppet Enterprise

sábado, 21 de setembro de 13

Page 50: Infraestrutura como código com Puppet e Mcollective

Parcerias

sábado, 21 de setembro de 13

Page 51: Infraestrutura como código com Puppet e Mcollective

Parcerias

sábado, 21 de setembro de 13

Page 52: Infraestrutura como código com Puppet e Mcollective

ArquiteturaComo funciona o Puppet?

sábado, 21 de setembro de 13

Page 53: Infraestrutura como código com Puppet e Mcollective

sábado, 21 de setembro de 13

Page 54: Infraestrutura como código com Puppet e Mcollective

AbstraçãoÉ mais fácil e rápido usar o Puppet!

sábado, 21 de setembro de 13

Page 55: Infraestrutura como código com Puppet e Mcollective

Resource Abstraction Layer (RAL)

sábado, 21 de setembro de 13

Page 56: Infraestrutura como código com Puppet e Mcollective

sábado, 21 de setembro de 13

Page 57: Infraestrutura como código com Puppet e Mcollective

Resource Abstraction Layer

sábado, 21 de setembro de 13

Page 58: Infraestrutura como código com Puppet e Mcollective

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 fazer

sábado, 21 de setembro de 13

Page 59: Infraestrutura como código com Puppet e Mcollective

Instale Pacote X

sábado, 21 de setembro de 13

Page 60: Infraestrutura como código com Puppet e Mcollective

Remova usuário Z

sábado, 21 de setembro de 13

Page 61: Infraestrutura como código com Puppet e Mcollective

(Re)inicie serviço Y

sábado, 21 de setembro de 13

Page 62: Infraestrutura como código com Puppet e Mcollective

Tratamento de Informações

O grande diferencial do Puppet é a forma como ele trata as informações de seus nodes

sábado, 21 de setembro de 13

Page 63: Infraestrutura como código com Puppet e Mcollective

Tratamento de informações

sábado, 21 de setembro de 13

Page 64: Infraestrutura como código com Puppet e Mcollective

Tratamento de informações

No Puppet tudo é modelado e tratado como ‘dados’

O estado atual de um node (servidor) é um dado

Um pacote instalado em um node é um dado

Um usuário em um servidor é um dado

A versão do sistema operacional é um dado

A arquitetua do sistema é um dado

sábado, 21 de setembro de 13

Page 65: Infraestrutura como código com Puppet e Mcollective

Os dados são inseridos em catálogos pelo master

O catálogo é processado pelo node e as modificações são aplicadas de acordo com o que foi declarado.

sábado, 21 de setembro de 13

Page 66: Infraestrutura como código com Puppet e Mcollective

Processamento do Catálogo

1) Agente Requisita Catálogo1.1) Agente envia Fatos para Master2) Master Processa Fatos e Compara2.1) Master Produz e envia Catálogo3) Node Recebe, Compara e Aplica4) Node informa estado atual ao Master5) Sistema reflete catálogo

sábado, 21 de setembro de 13

Page 67: Infraestrutura como código com Puppet e Mcollective

Processamento do Catálogo

1) Agente Requisita Catálogo1.1) Agente envia Fatos para Master2) Master Processa Fatos e Compara2.1) Master Produz e envia Catálogo3) Node Recebe, Compara e Aplica4) Node informa estado atual ao Master5) Sistema reflete catálogo

sábado, 21 de setembro de 13

Page 68: Infraestrutura como código com Puppet e Mcollective

Idempotência

sábado, 21 de setembro de 13

Page 69: Infraestrutura como código com Puppet e Mcollective

ConfiguraçõesVolá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

sábado, 21 de setembro de 13

Page 70: Infraestrutura como código com Puppet e Mcollective

Você pode fazer deploy de sua APPVocê pode controlar a versão de sua APP

Você pode controlar fazer rollback

sábado, 21 de setembro de 13

Page 71: Infraestrutura como código com Puppet e Mcollective

Puppet em rede, como funciona?

sábado, 21 de setembro de 13

Page 72: Infraestrutura como código com Puppet e Mcollective

Modo Cliente/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

sábado, 21 de setembro de 13

Page 73: Infraestrutura como código com Puppet e Mcollective

Puppet Visão em Rede

Puppet Master

Puppet Client

8140/ TCPpuppet agent

acesso seguro ssl

sábado, 21 de setembro de 13

Page 74: Infraestrutura como código com Puppet e Mcollective

Fluxo Cliente/Servidor

Instalação do node

sábado, 21 de setembro de 13

Page 75: Infraestrutura como código com Puppet e Mcollective

Fluxo Cliente/Servidor

Instalação do node

Inicialização do puppet

sábado, 21 de setembro de 13

Page 76: Infraestrutura como código com Puppet e Mcollective

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Inicialização do puppet

sábado, 21 de setembro de 13

Page 77: Infraestrutura como código com Puppet e Mcollective

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Envio de Certificado

Inicialização do puppet

sábado, 21 de setembro de 13

Page 78: Infraestrutura como código com Puppet e Mcollective

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Master Assina Certificado

Envio de Certificado

Inicialização do puppet

sábado, 21 de setembro de 13

Page 79: Infraestrutura como código com Puppet e Mcollective

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Agente Sincroniza

Master Assina Certificado

Envio de Certificado

Inicialização do puppet

sábado, 21 de setembro de 13

Page 80: Infraestrutura como código com Puppet e Mcollective

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 manualAssinatura pode ser automática por domínioAssinatura pode ser automática em qualquer requisição

sábado, 21 de setembro de 13

Page 81: Infraestrutura como código com Puppet e Mcollective

O agente se comunica com o master a cada N minutos

sábado, 21 de setembro de 13

Page 82: Infraestrutura como código com Puppet e Mcollective

Quais funcionalidades estão disponíveis?

sábado, 21 de setembro de 13

Page 83: Infraestrutura como código com Puppet e Mcollective

Funcionalidades

Resource Types

Parâmetros e Meta-parâmetros para Resource Types

Templates (arquivo dinâmicos)

Definições (configurações dinâmicas)

Classes e Módulos

Funções e Condicionais

sábado, 21 de setembro de 13

Page 84: Infraestrutura como código com Puppet e Mcollective

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.

sábado, 21 de setembro de 13

Page 85: Infraestrutura como código com Puppet e Mcollective

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

sábado, 21 de setembro de 13

Page 86: Infraestrutura como código com Puppet e Mcollective

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

sábado, 21 de setembro de 13

Page 87: Infraestrutura como código com Puppet e Mcollective

Resource Type: FileEspecifique permissões e owners

Declare arquivos, diretórios e links

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

sábado, 21 de setembro de 13

Page 88: Infraestrutura como código com Puppet e Mcollective

Exemplossábado, 21 de setembro de 13

Page 89: Infraestrutura como código com Puppet e Mcollective

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?

sábado, 21 de setembro de 13

Page 90: Infraestrutura como código com Puppet e Mcollective

Instala, Configura e Inicia

# aptitude install apache2

# insserv apache2

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

# invoke-rc.d apache2 start

no debian seria assim:

sábado, 21 de setembro de 13

Page 91: Infraestrutura como código com Puppet e Mcollective

Instala, Configura e Inicia

# yum install httpd

# chkconfig httpd on

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

# service httpd start

no redhat/centos seria assim:

sábado, 21 de setembro de 13

Page 92: Infraestrutura como código com Puppet e Mcollective

Como seria no Puppet?

sábado, 21 de setembro de 13

Page 93: Infraestrutura como código com Puppet e Mcollective

Puppet ManifestsArquivo com extensão.pp em que expressamos nossas

necesidades utilizando a sintaxe declarativa do Puppet.

sábado, 21 de setembro de 13

Page 94: Infraestrutura como código com Puppet e Mcollective

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

sábado, 21 de setembro de 13

Page 95: Infraestrutura como código com Puppet e Mcollective

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

resource typeparameter

titlevalue

sábado, 21 de setembro de 13

Page 96: Infraestrutura como código com Puppet e Mcollective

Mais exemplos

sábado, 21 de setembro de 13

Page 97: Infraestrutura como código com Puppet e Mcollective

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}

sábado, 21 de setembro de 13

Page 98: Infraestrutura como código com Puppet e Mcollective

Variáveis e FatosFatos (facter)

vimpackage => vim-puppet,

apacheservice => apache2,

ntpconfrhel => ntp.conf.rhel,

Variáveisdomainfqdnhostnameinterfacesipaddress_eth0ipaddress_eth1ipaddress_lolsbdistidlsbdistrelease

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

sábado, 21 de setembro de 13

Page 99: Infraestrutura como código com Puppet e Mcollective

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', }}....

sábado, 21 de setembro de 13

Page 100: Infraestrutura como código com Puppet e Mcollective

Definiçõesproxy::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_effective_user cache_effective_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',

sábado, 21 de setembro de 13

Page 101: Infraestrutura como código com Puppet e Mcollective

Templates

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

Trecho do template postfix/main.cf

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

Substituição de variáveis por fatos

sábado, 21 de setembro de 13

Page 102: Infraestrutura como código com Puppet e Mcollective

Padronizando nodes

sábado, 21 de setembro de 13

Page 103: Infraestrutura como código com Puppet e Mcollective

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}

sábado, 21 de setembro de 13

Page 104: Infraestrutura como código com Puppet e Mcollective

Como acompanho mudanças?

sábado, 21 de setembro de 13

Page 105: Infraestrutura como código com Puppet e Mcollective

Puppet Dashboard

sábado, 21 de setembro de 13

Page 106: Infraestrutura como código com Puppet e Mcollective

sábado, 21 de setembro de 13

Page 107: Infraestrutura como código com Puppet e Mcollective

Posso fazer mudanças em tempo real?

sábado, 21 de setembro de 13

Page 108: Infraestrutura como código com Puppet e Mcollective

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

sábado, 21 de setembro de 13

Page 109: Infraestrutura como código com Puppet e Mcollective

Demonstração

sábado, 21 de setembro de 13

Page 110: Infraestrutura como código com Puppet e Mcollective

Posso provisionar VMs/Instâncias?

sábado, 21 de setembro de 13

Page 111: Infraestrutura como código com Puppet e Mcollective

Ferramentas de Provisionamento

Puppet/Chef/Ansible

Foreman

Vagrant

Razor

Sprinkle

sábado, 21 de setembro de 13

Page 112: Infraestrutura como código com Puppet e Mcollective

Qual o resultado concreto?

sábado, 21 de setembro de 13

Page 113: Infraestrutura como código com Puppet e Mcollective

Documentação Instantânea

sábado, 21 de setembro de 13

Page 114: Infraestrutura como código com Puppet e Mcollective

Processos bem definidos

sábado, 21 de setembro de 13

Page 115: Infraestrutura como código com Puppet e Mcollective

Ambiente Padronizado

sábado, 21 de setembro de 13

Page 116: Infraestrutura como código com Puppet e Mcollective

Restore e backup de mudanças

sábado, 21 de setembro de 13

Page 117: Infraestrutura como código com Puppet e Mcollective

Tarefas Automatizadas

sábado, 21 de setembro de 13

Page 118: Infraestrutura como código com Puppet e Mcollective

Benefícios ReaisMaior 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 e suas madrugas e finais de semana serão seus

sábado, 21 de setembro de 13

Page 119: Infraestrutura como código com Puppet e Mcollective

Comparando

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

sábado, 21 de setembro de 13

Page 120: Infraestrutura como código com Puppet e Mcollective

Tecnologia trabalhando para você

sábado, 21 de setembro de 13

Page 121: Infraestrutura como código com Puppet e Mcollective

Boas Práticassábado, 21 de setembro de 13

Page 122: Infraestrutura como código com Puppet e Mcollective

Insira o puppet nos templates de seu hypervisor

sábado, 21 de setembro de 13

Page 123: Infraestrutura como código com Puppet e Mcollective

Use o puppet para executar e controlar mudanças em seu parque

sábado, 21 de setembro de 13

Page 124: Infraestrutura como código com Puppet e Mcollective

Para de administrar e comece a desenvolver a sua infraestrutura

sábado, 21 de setembro de 13

Page 125: Infraestrutura como código com Puppet e Mcollective

Nova demanda? Já execute utilizando o Puppet, escreva classes e módulos para que você só tenha que fazer isto 1 vez e reaproveitar o código depois.

sábado, 21 de setembro de 13

Page 126: Infraestrutura como código com Puppet e Mcollective

Versione as configurações (git) criadas no Puppet.

sábado, 21 de setembro de 13

Page 127: Infraestrutura como código com Puppet e Mcollective

Crie manifests pensando em reaproveitamento código, escreva seus módulos e classes da forma mais flexível possível.

sábado, 21 de setembro de 13

Page 128: Infraestrutura como código com Puppet e Mcollective

Não precisa começar do zero, use módulos prontos do GitHub e PuppetForge.

sábado, 21 de setembro de 13

Page 129: Infraestrutura como código com Puppet e Mcollective

Pesquise, há muita informação sobre puppet na rede!

sábado, 21 de setembro de 13

Page 130: Infraestrutura como código com Puppet e Mcollective

Puppet em números

700+ 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

sábado, 21 de setembro de 13

Page 131: Infraestrutura como código com Puppet e Mcollective

Puppet Labs & Luke Kaines

sábado, 21 de setembro de 13

Page 132: Infraestrutura como código com Puppet e Mcollective

Site/Bloghttp://www.puppetlabs.comhttp://www.puppetlabs.com/blog/http://puppet-br.org/

Twitter@puppetlabs@puppetmasterd

GitHubhttp://www.github.com/puppelabs

Puppet na rede

Google GroupsPuppet-camp,puppet-users,puppet-users-br,puppet-dev

IRCirc.freenode.org#puppet#puppet-br

sábado, 21 de setembro de 13

Page 133: Infraestrutura como código com Puppet e Mcollective

Perguntas?

sábado, 21 de setembro de 13

Page 134: Infraestrutura como código com Puppet e Mcollective

Obrigado!

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

E-mail: [email protected]

Contato

Slides: slideshare.net/gutocarvalhoBlog: gutocarvalho.net

Twitter: @gutocarvalho

sábado, 21 de setembro de 13