178
Gerência de Configurações c/ Puppet Patrocínio: 4Linux José Augusto (Guto) Carvalho [email protected] Thursday, October 25, 12

Oficina Puppet latinoware

Embed Size (px)

DESCRIPTION

Slides do Oficina de Puppet no Latinoware 2012

Citation preview

Page 1: Oficina Puppet latinoware

Gerência de Configurações c/ PuppetPatrocínio: 4Linux

José Augusto (Guto) [email protected]

Thursday, October 25, 12

Page 2: Oficina Puppet latinoware

- Desenvolvimento- Soluções e Aplicativos- Treinamento

Baseados em:- Softwares Livres- Open Source- Padrões Abertos

Para construir sua infraestrutura de TI e criar novas soluções de negócio.

Prestação de serviços em:- Consultoria- Suporte- Projetos

Thursday, October 25, 12

Page 3: Oficina Puppet latinoware

Consultor/SysAdmin (LPIC-3) na 4Linux

12 anos de experiência com tecnologias FOSS

Blogueiro FOSS 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, CAIXA

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

whoami

Thursday, October 25, 12

Page 4: Oficina Puppet latinoware

Oficina PuppetThursday, October 25, 12

Page 5: Oficina Puppet latinoware

Plano de Trabalho

50 min de apresentação GC & Puppet

60 min hands on puppet serverless

60 min hands on puppet master

10 min para perguntas

Thursday, October 25, 12

Page 6: Oficina Puppet latinoware

AgendaApresentando Cenários

Gerência de Configurações e Infraestrutura como Código

Puppet como solução de Gerência de Configurações

Hands On: Puppet Serverless

Hands On: Puppet Master

Hands On: Puppet Dashboard

Perguntas

Thursday, October 25, 12

Page 7: Oficina Puppet latinoware

Virtualização - Tendência

Thursday, October 25, 12

Page 8: Oficina Puppet latinoware

Virt. e seus BenefíciosMenor consumo de energia

Melhor aproveitamento de espaço físico

Melhor aproveitamento de hardware (sem hw ocioso)

Maior segurança com isolamento de ambientes

Pode-se trabalhar disponibilidade e balanceamento

Facilidade de provisionamento e gerenciamento

Thursday, October 25, 12

Page 9: Oficina Puppet latinoware

Cloud Computing - Tendência

Thursday, October 25, 12

Page 10: Oficina Puppet latinoware

Cloud e seus BenefíciosHiper escalável

Rápida e elástica

Abstração de hardware

Infraestrutura dinâmica

Alta disponibilidade

Investimento atraente para projetos emergentes

Thursday, October 25, 12

Page 11: Oficina Puppet latinoware

ProvisionamentoPodemos criar 500 VM’s em

poucos minutos

Thursday, October 25, 12

Page 12: Oficina Puppet latinoware

Como Administrar 500 VM’s?

Thursday, October 25, 12

Page 13: Oficina Puppet latinoware

Configuração Manual?

Thursday, October 25, 12

Page 14: Oficina Puppet latinoware

Acesso Secure Shell (ssh)?

Thursday, October 25, 12

Page 15: Oficina Puppet latinoware

Host a Host?

Thursday, October 25, 12

Page 16: Oficina Puppet latinoware

Quantos SysAdmins são necessários para administrar 500 servidores?

Thursday, October 25, 12

Page 17: Oficina Puppet latinoware

Qual a velocidade nas mudanças em seu ambiente?

Thursday, October 25, 12

Page 18: Oficina Puppet latinoware

Qual a probabilidade de falhas decorrentes de mudanças manuais?

Thursday, October 25, 12

Page 19: Oficina Puppet latinoware

Você consegue manter todo o seu ambiente padronizado?

Thursday, October 25, 12

Page 20: Oficina Puppet latinoware

Seu custo com manutenção e equipes técnicas está aumentando?

Thursday, October 25, 12

Page 21: Oficina Puppet latinoware

Está difícil colocar suas configurações nos trilhos?

Thursday, October 25, 12

Page 22: Oficina Puppet latinoware

Como resolver isto?Como obtenho controle e

padronização em meu ambiente ?

Thursday, October 25, 12

Page 23: Oficina Puppet latinoware

Gerência de Configurações

Thursday, October 25, 12

Page 24: Oficina Puppet latinoware

Padronização

Thursday, October 25, 12

Page 25: Oficina Puppet latinoware

Automatização

Thursday, October 25, 12

Page 26: Oficina Puppet latinoware

Controle

Thursday, October 25, 12

Page 27: Oficina Puppet latinoware

Integridade

Thursday, October 25, 12

Page 28: Oficina Puppet latinoware

Desempenho

Thursday, October 25, 12

Page 29: Oficina Puppet latinoware

Agilidade nas mudanças

Thursday, October 25, 12

Page 30: Oficina Puppet latinoware

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

configurações para seu ambiente.

Thursday, October 25, 12

Page 31: Oficina Puppet latinoware

Visão Rápida

Framework Open Source para Gerência de Configurações

Oferece um cojunto de ferramentas para manipular estados

Nos permite trabalhar a Infraestrutura como código

Funciona localmente ou via rede

Oferece uma linguagem declarativa para descrever configurações de sistemas e serviços

Thursday, October 25, 12

Page 32: Oficina Puppet latinoware

Sobre a ferramenta

Suporte a Linux, BSDs, Solaris e Windows (19 tipos de OS)

Criado por Luke Kaines (CEO e Fundador Puppetlabs)

Empresa PuppetLabs mantém a Ferramenta

Ferramenta OpenSource (Licença Apache)

Recebeu grandes investimentos

Empresa oferece Suporte Corporativo e Versão Enterprise

Thursday, October 25, 12

Page 33: Oficina Puppet latinoware

Feito por um SysAdmin para SysAdmins

Thursday, October 25, 12

Page 34: Oficina Puppet latinoware

Eficiente para uso DevOps

Thursday, October 25, 12

Page 35: Oficina Puppet latinoware

Especificações

Escrito em Ruby

Extensível usando código Ruby

Funciona em modo Autônomo (serverless)

Funciona em modo Cliente/Servidor usando API REST

Provê comunicação segura usando SSL

Thursday, October 25, 12

Page 36: Oficina Puppet latinoware

Quem usa o Puppet?

Thursday, October 25, 12

Page 37: Oficina Puppet latinoware

ArquiteturaComo funciona o Puppet?

Thursday, October 25, 12

Page 38: Oficina Puppet latinoware

Resource Abstraction Layer

Thursday, October 25, 12

Page 39: Oficina Puppet latinoware

Puppet: RAL

Resource Abstraction Layer = RAL

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

Thursday, October 25, 12

Page 40: Oficina Puppet latinoware

Instale Pacote X

Thursday, October 25, 12

Page 41: Oficina Puppet latinoware

Remova usuário Z

Thursday, October 25, 12

Page 42: Oficina Puppet latinoware

(Re)inicie serviço Y

Thursday, October 25, 12

Page 43: Oficina Puppet latinoware

Tratamento de Informações

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

Thursday, October 25, 12

Page 44: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 45: Oficina Puppet latinoware

Os dados são inseridos em catálogos para serem utilizadosO catálogo é processado pelo node e as modificações

são aplicadas de acordo com o que foi declarado.

Thursday, October 25, 12

Page 46: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 47: Oficina Puppet latinoware

Idempotência

Thursday, October 25, 12

Page 48: Oficina Puppet latinoware

ConfiguraçõesVoláteis e Dados

Puppet MasterMódulos Estáticos

Ambiente Puppet

LDAP DNS MONIT SYSLOG

JBOSS APACHE MYSQL PGSQL

Puppet Agents

Camada de Aplicação

Camada de Serviços Estruturantes

Thursday, October 25, 12

Page 49: Oficina Puppet latinoware

Administração Instâncias

Administrar Cloud IaaS ou uma infra Virtualizada não é difícil

Escalabilidade automática é um recurso fantástico na Cloud

Balanceamento e Alta disponibiliade são recursos nativos de Virt.

Criar novos servidores é muito fácil tanto na Cloud quanto em Virt.

Administrar centenas de nodes? Aqui começa a complicar.

Thursday, October 25, 12

Page 50: Oficina Puppet latinoware

Quando seu ambiente começar a crescer demais você vai perceber administrá-lo não é tão simples.

Thursday, October 25, 12

Page 51: Oficina Puppet latinoware

Adicionando Nodes

ZABBIX

JBOSS

POSTGRESQL

MEMCACHED

NGINX

Thursday, October 25, 12

Page 52: Oficina Puppet latinoware

Adicionando Nodes

ZABBIX

POSTGRESQL

MEMCACHED

NGINX

Adicionar um novo node representa N mudanças

JBOSS

Thursday, October 25, 12

Page 53: Oficina Puppet latinoware

Adicionando Nodessysadmin-utilszabbix-agent

ntpconflocaleshostsusers

localmtasmtpdvimrc

backup-agentapt-repos

ZABBIX

POSTGRESQL

MEMCACHED

NGINX

JBOSS

Thursday, October 25, 12

Page 54: Oficina Puppet latinoware

Como o Puppet pode ajudar?

Automatizando todo o seu ambiente

Provendo maior produtividade com menor esforço

Padronizando seus nodes logo após a criação e instalação

Modificando configurações de forma controlada

Mantendo o estado declarado para cada node/instância

Thursday, October 25, 12

Page 55: Oficina Puppet latinoware

Insira o Puppet na imagem de instalação de seus nodes.

Thursday, October 25, 12

Page 56: Oficina Puppet latinoware

Pare de administrar e começe a desenvolver sua infra

Thursday, October 25, 12

Page 57: Oficina Puppet latinoware

Não tenha medo de realizar atualizações, o puppet faz pra você!

Thursday, October 25, 12

Page 58: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 59: Oficina Puppet latinoware

Como funciona o modo cliente/servidor?

Thursday, October 25, 12

Page 60: Oficina Puppet latinoware

Puppet Visão em Rede

Puppet Master

Puppet Client

8140 TCPClient

puppetd -t

8139 TCPServer

puppetrunSSL

Thursday, October 25, 12

Page 61: Oficina Puppet latinoware

Arquitetura 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

Thursday, October 25, 12

Page 62: Oficina Puppet latinoware

Fluxo Cliente/Servidor

Instalação do node

Thursday, October 25, 12

Page 63: Oficina Puppet latinoware

Fluxo Cliente/Servidor

Instalação do node

Inicialização do puppet

Thursday, October 25, 12

Page 64: Oficina Puppet latinoware

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Inicialização do puppet

Thursday, October 25, 12

Page 65: Oficina Puppet latinoware

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Envio de Certificado

Inicialização do puppet

Thursday, October 25, 12

Page 66: Oficina Puppet latinoware

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Master Assina Certificado

Envio de Certificado

Inicialização do puppet

Thursday, October 25, 12

Page 67: Oficina Puppet latinoware

Fluxo Cliente/Servidor

Instalação do node

Geração de Certificado

Agente Sincroniza

Master Assina Certificado

Envio de Certificado

Inicialização do puppet

Thursday, October 25, 12

Page 68: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 69: Oficina Puppet latinoware

O agente se comunica com o master a cada N minutos

Thursday, October 25, 12

Page 70: Oficina Puppet latinoware

E quais os recursos disponíveis para gerenciar sistemas e serviços?

Como manipulo estados do meu ambiente?

Thursday, October 25, 12

Page 71: Oficina Puppet latinoware

Recursos do Puppet

Resource Types

Parâmetros e Meta-parâmetros

Templates e Definições

Classes e Módulos

Funções e Condicionais

Thursday, October 25, 12

Page 72: Oficina Puppet latinoware

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.

Thursday, October 25, 12

Page 73: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 74: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 75: Oficina Puppet latinoware

Resource Type: FileEspecifique permissões e owners

Declare arquivos, diretórios e links

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

Thursday, October 25, 12

Page 76: Oficina Puppet latinoware

ExemplosThursday, October 25, 12

Page 77: Oficina Puppet latinoware

Instala, Configura e Inicia

# aptitude install apache2

# update-rc.d -f apache2 defaults

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

# invoke-rc.d apache2 start

debian-way

Thursday, October 25, 12

Page 78: Oficina Puppet latinoware

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

 service { 'apache2':

ensure => running,enable => true,}

file { 'httpd.conf':path => “/etc/apache2/httpd.conf”,source => “/etc/puppet/files/httpd.conf”,}

Instala, Configura e Inicia

Thursday, October 25, 12

Page 79: Oficina Puppet latinoware

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

 service { 'apache2':

ensure => running,enable => true,}

file { 'httpd.conf':path => “/etc/apache2/httpd.conf”,source => “/etc/puppet/files/httpd.conf”,}

Instala, Configura e Inicia

resource typeparameter

titlevalue

Thursday, October 25, 12

Page 80: Oficina Puppet latinoware

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}

Thursday, October 25, 12

Page 81: Oficina Puppet latinoware

Declarando um nodenode “servidor.dominio” { include linux-server include module}

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

Thursday, October 25, 12

Page 82: Oficina Puppet latinoware

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,

Thursday, October 25, 12

Page 83: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 84: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 85: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 86: Oficina Puppet latinoware

E como acompanho mudanças?

Thursday, October 25, 12

Page 87: Oficina Puppet latinoware

Puppet Dashboard

Thursday, October 25, 12

Page 88: Oficina Puppet latinoware

Posso fazer mudanças em tempo real?

Thursday, October 25, 12

Page 89: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 90: Oficina Puppet latinoware

Hands On: Puppet Serverless

Thursday, October 25, 12

Page 91: Oficina Puppet latinoware

http://gutocarvalho.net/dokuwiki

Thursday, October 25, 12

Page 92: Oficina Puppet latinoware

Cenário

1 VM - Debian 64bits - para PuppetServerless (local)

Thursday, October 25, 12

Page 93: Oficina Puppet latinoware

instalando puppet

Thursday, October 25, 12

Page 94: Oficina Puppet latinoware

RAL

Thursday, October 25, 12

Page 95: Oficina Puppet latinoware

RAL

Resource Types

Parameters

Meta-parameters

Provedores

Thursday, October 25, 12

Page 96: Oficina Puppet latinoware

RAL: Modifica & Sincroniza

Verifica o estado atual de um recurso

Compara dados coletados

Aplica mudanças

Thursday, October 25, 12

Page 97: Oficina Puppet latinoware

Recursos

Thursday, October 25, 12

Page 98: Oficina Puppet latinoware

tipo  {  'título':    param1          =>  'valor',    param2          =>  'valor',    param3          =>  'valor',    metaparam1  =>  'valor',    metaparam2  =>  'valor',    function1    =>  'valor',    function2    =>  'valor',}

Exemplo de Recurso

Thursday, October 25, 12

Page 99: Oficina Puppet latinoware

Exemplo de Recurso: User

user  {  'gutocarvalho':    ensure                      =>  'present',    gid                            =>  '500',    home                          =>  '/home/gutocarvalho',    password                  =>  '$6$BE6a/5SJ...KfCy0',    password_max_age  =>  '99999',    password_min_age  =>  '0',    shell                        =>  '/bin/bash',    uid                            =>  '500',}

Thursday, October 25, 12

Page 100: Oficina Puppet latinoware

Recurso, Título, Atributos

Thursday, October 25, 12

Page 101: Oficina Puppet latinoware

puppet resourcevamos manipular estados

usando o comando resource

Thursday, October 25, 12

Page 102: Oficina Puppet latinoware

puppet resource user{

Thursday, October 25, 12

Page 103: Oficina Puppet latinoware

puppet resource package

Thursday, October 25, 12

Page 104: Oficina Puppet latinoware

puppet resource service

Thursday, October 25, 12

Page 105: Oficina Puppet latinoware

resource typesvamos aprender a utilizar tipos distintos de recursos, inserí-los

em manifests e aplicá-los

Thursday, October 25, 12

Page 106: Oficina Puppet latinoware

manifest

Thursday, October 25, 12

Page 107: Oficina Puppet latinoware

puppet apply manifest.pp

Thursday, October 25, 12

Page 108: Oficina Puppet latinoware

resource type: file

Thursday, October 25, 12

Page 109: Oficina Puppet latinoware

resource type: package

Thursday, October 25, 12

Page 110: Oficina Puppet latinoware

resource type: service

Thursday, October 25, 12

Page 111: Oficina Puppet latinoware

resource type: exec

Thursday, October 25, 12

Page 112: Oficina Puppet latinoware

resource type: cron

Thursday, October 25, 12

Page 113: Oficina Puppet latinoware

resource type: host

Thursday, October 25, 12

Page 114: Oficina Puppet latinoware

meta-parâmetrosvamos aprender a utilizar os meta-

parâmetros, eles podem ser utilizados com praticamente todos os resource

types do puppet

Thursday, October 25, 12

Page 115: Oficina Puppet latinoware

meta-parameter: require

Thursday, October 25, 12

Page 116: Oficina Puppet latinoware

meta-parameter: notify

Thursday, October 25, 12

Page 117: Oficina Puppet latinoware

meta-parameter: alias

Thursday, October 25, 12

Page 118: Oficina Puppet latinoware

meta-parameter: subscribe

Thursday, October 25, 12

Page 119: Oficina Puppet latinoware

configuração em trio

Thursday, October 25, 12

Page 120: Oficina Puppet latinoware

package  {  'pacote':                ensure  =>  present,        }  service  {  'servico':                ensure          =>  running,                enable          =>  true,                hasrestart  =>  true,                hasstatus    =>  true,                require        =>  Package['pacote'],        }  file  {  'main.cf':                path        =>  "/etc/pacote/pacote.conf",                source    =>  "/root/puppet/pacote.conf",                owner      =>  'root',                group      =>  'root',                mode        =>  644,                require  =>  Package['pacote'],                notify    =>  Service['servico'],        }

Exemplo Conceitual Trio

Thursday, October 25, 12

Page 121: Oficina Puppet latinoware

Exemplo Real Trio: Postfixpackage  {  'postfix':                ensure  =>  present,}  service  {  'postfix':                ensure          =>  running,                enable          =>  true,                hasrestart  =>  true,                hasstatus    =>  true,                require        =>  Package['postfix'],}  file  {  'main.cf':                path        =>  "/etc/postfix/main.cf",                source    =>  '/root/puppet/main.cf',                owner      =>  'root',                group      =>  'root',                mode        =>  644,                require  =>  Package['postfix'],                notify    =>  Service['postfix'],}

Thursday, October 25, 12

Page 122: Oficina Puppet latinoware

Variáveis, Fatos e Condicionais

Vamos aprender a trabalhar com variáveis, fatos e

condicionais dentro de nossos manifests no puppet

Thursday, October 25, 12

Page 123: Oficina Puppet latinoware

variáveis

Thursday, October 25, 12

Page 124: Oficina Puppet latinoware

fatos

Thursday, October 25, 12

Page 125: Oficina Puppet latinoware

condições

Thursday, October 25, 12

Page 126: Oficina Puppet latinoware

casos

Thursday, October 25, 12

Page 127: Oficina Puppet latinoware

seletores

Thursday, October 25, 12

Page 128: Oficina Puppet latinoware

ClassesVamos aprender a agrupar

configurações dentro de classes

Thursday, October 25, 12

Page 129: Oficina Puppet latinoware

TemplatesVamos aprender a trabalhar com arquivos dinâmicos que

utilizam variáveis e fatos

Thursday, October 25, 12

Page 130: Oficina Puppet latinoware

noop

Thursday, October 25, 12

Page 131: Oficina Puppet latinoware

filebucket local

Thursday, October 25, 12

Page 132: Oficina Puppet latinoware

cenários para uso de puppet serverless

Thursday, October 25, 12

Page 133: Oficina Puppet latinoware

Hands On: Puppet Master

Thursday, October 25, 12

Page 134: Oficina Puppet latinoware

http://gutocarvalho.net/dokuwiki

Thursday, October 25, 12

Page 135: Oficina Puppet latinoware

Cenário

1 VM - Debian 64bits - para PuppetMaster (servidor)

1 VM - Debian 64bits - para PuppetAgent (node)

1 VM - Debian 64bits - para PuppetDashBoard (dashboard)

Thursday, October 25, 12

Page 136: Oficina Puppet latinoware

PuppetMaster: Teoria

API REST

TCP/IP

Certificados Digitais

SSL

Thursday, October 25, 12

Page 137: Oficina Puppet latinoware

Instalando puppetmaster

Thursday, October 25, 12

Page 138: Oficina Puppet latinoware

DNS, Host, Hostname

Thursday, October 25, 12

Page 139: Oficina Puppet latinoware

Estrutura do Master

Thursday, October 25, 12

Page 140: Oficina Puppet latinoware

Instalando PuppetAgent

Thursday, October 25, 12

Page 141: Oficina Puppet latinoware

DNS, Host, Hostname

Thursday, October 25, 12

Page 142: Oficina Puppet latinoware

Estrutura do Agent

Thursday, October 25, 12

Page 143: Oficina Puppet latinoware

Primeiro Contato Agent/Master

Thursday, October 25, 12

Page 144: Oficina Puppet latinoware

Manipulando Certificados no PuppetMaster

Thursday, October 25, 12

Page 145: Oficina Puppet latinoware

NodesVamos entender o que é um

node e como declaramos uma configuração para ele.

Thursday, October 25, 12

Page 146: Oficina Puppet latinoware

Empurrando uma Configuração

Thursday, October 25, 12

Page 147: Oficina Puppet latinoware

ClassesVamos aprender a trabalhar

com classes em modo master/agent.

Thursday, October 25, 12

Page 148: Oficina Puppet latinoware

DefiniçõesVamos aprender a trabalhar com classes parametrizadas

em modo master/agent.

Thursday, October 25, 12

Page 149: Oficina Puppet latinoware

MódulosVamos aprender a trabalhar

com módulos no puppet.

Thursday, October 25, 12

Page 150: Oficina Puppet latinoware

Organizando o Master

Thursday, October 25, 12

Page 151: Oficina Puppet latinoware

EscalandoVamos aprender a substituir o

Webrick pelo Apache com ModPassenger para que o

puppet Escale.

Thursday, October 25, 12

Page 152: Oficina Puppet latinoware

instalando puppetmaster-passenger

Thursday, October 25, 12

Page 153: Oficina Puppet latinoware

Hands On: Puppet Dashboard

Thursday, October 25, 12

Page 154: Oficina Puppet latinoware

instalando o dashboard

Thursday, October 25, 12

Page 155: Oficina Puppet latinoware

integrando master ao dashboard

Thursday, October 25, 12

Page 156: Oficina Puppet latinoware

habilitando reports nos agents

Thursday, October 25, 12

Page 157: Oficina Puppet latinoware

Qual o resultado concreto?

Thursday, October 25, 12

Page 158: Oficina Puppet latinoware

Documentação Instantânea

Thursday, October 25, 12

Page 159: Oficina Puppet latinoware

Restore e backup de mudanças

Thursday, October 25, 12

Page 160: Oficina Puppet latinoware

Processos bem definidos

Thursday, October 25, 12

Page 161: Oficina Puppet latinoware

Ambiente Padronizado

Thursday, October 25, 12

Page 162: Oficina Puppet latinoware

Tarefas Automatizadas

Thursday, October 25, 12

Page 163: Oficina Puppet latinoware

Quais os Benefícios Reais?Thursday, October 25, 12

Page 164: Oficina Puppet latinoware

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

Thursday, October 25, 12

Page 165: Oficina Puppet latinoware

Tecnologia trabalhando para você

Thursday, October 25, 12

Page 166: Oficina Puppet latinoware

Puppet & Cloud IaaSCloud Tools (FOSS) Cloud Hosts

Ganeti

Thursday, October 25, 12

Page 167: Oficina Puppet latinoware

Boas PráticasThursday, October 25, 12

Page 168: Oficina Puppet latinoware

Use API do fornecedor

Thursday, October 25, 12

Page 169: Oficina Puppet latinoware

Desenvolva sua Infra

Thursday, October 25, 12

Page 170: Oficina Puppet latinoware

Versione suas configurações

Thursday, October 25, 12

Page 171: Oficina Puppet latinoware

Reaproveite Código

Thursday, October 25, 12

Page 172: Oficina Puppet latinoware

GitHub & PuppetForge

Thursday, October 25, 12

Page 173: Oficina Puppet latinoware

Pesquise!

Thursday, October 25, 12

Page 174: Oficina Puppet latinoware

Puppet em números

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 com 7795 tópicos de discussão

Dados coletados em 2012-08-06 às 10:34 PMThursday, October 25, 12

Page 175: Oficina Puppet latinoware

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

Twitter@puppetlabs

GitHubhttp://www.github.com/puppelabs

Puppet na rede

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

IRCirc.freenode.org#puppet#puppet-br

Thursday, October 25, 12

Page 176: Oficina Puppet latinoware

4Linux & PuppetLabs1o Parceiro no Brasil

Consultores Especializados

Cases no Governo Federal

Suporte Puppet Enterprise

Treinamentos Puppet Master

Thursday, October 25, 12

Page 177: Oficina Puppet latinoware

Perguntas?Thursday, October 25, 12

Page 178: Oficina Puppet latinoware

Obrigado!

Twitter @4linuxBR

Facebook /4Linux

Twitter @[email protected]

4linux na rede Contato

slideshare.net/gutocarvalhohttp://gutocarvalho.net

Thursday, October 25, 12