Gerenciamento de Configurações em Nuvem usando Puppet.
Text of Puppet Cloud IaaS
1. Gerncia de Conguraes em Cloud Puppet em ambientes IaaS Jos
Augusto (Guto) Carvalho [email protected], August 8,
12
2. whoami Consultor/SysAdmin (LPIC-3) na 4Linux 12 anos de
experincia com tecnologias FOSS Blogueiro FOSS h 6 anos no site
gutocarvalho.net Atuao em vrios projetos de Governo no MDA, MINC,
EBC/RADIOBRS, MPS/DATAPREV, ITI/PR, CEF, MD/SIPAM, DETRAN/DF H 2
anos trabalhando com gerncia de conguraes em ambientes
virtualizados e clouds privadas em BrasliaWednesday, August 8,
12
3. Puppet em IaaSWednesday, August 8, 12
4. Plano de Trabalho 40 minutos de apresentao 5 minutos para
perguntasWednesday, August 8, 12
5. Agenda Gerncia de Conguraes Infraestrutura como Cdigo Puppet
como soluo de Gerncia de Conguraes Puppet Arquitetura,
Funcionamento e Recursos PerguntasWednesday, August 8, 12
6. Cloud Computing - TendnciaWednesday, August 8, 12
7. Cloud e seus Benefcios Hiper escalvel Rpida e elstica
Abstrao de hardware Infraestrutura dinmica Alta disponibilidade
Investimento atraenteWednesday, August 8, 12
8. Provisionamento Podemos criar 500 VMs em poucos
minutosWednesday, August 8, 12
9. Como Administrar 500 VMs?Wednesday, August 8, 12
10. Congurao Manual?Wednesday, August 8, 12
11. Acesso Secure Shell (ssh)?Wednesday, August 8, 12
12. Host a Host?Wednesday, August 8, 12
13. Quantos SysAdmins so necessrios para administrar 500
servidores?Wednesday, August 8, 12
14. Qual a velocidade nas mudanas em seu ambiente?Wednesday,
August 8, 12
15. Qual a probabilidade de falhas decorrentes de mudanas
manuais?Wednesday, August 8, 12
16. Voc consegue manter todo o seu ambiente
padronizado?Wednesday, August 8, 12
17. Seu custo com manuteno e equipes tcnicas est
aumentando?Wednesday, August 8, 12
18. Est difcil colocar suas conguraes nos trilhos?Wednesday,
August 8, 12
19. Como resolver isto? Como obtenho controle e padronizao em
meu ambiente ?Wednesday, August 8, 12
20. Gerncia de ConguraesWednesday, August 8, 12
21. PadronizaoWednesday, August 8, 12
22. AutomatizaoWednesday, August 8, 12
23. ControleWednesday, August 8, 12
24. IntegridadeWednesday, August 8, 12
25. DesempenhoWednesday, August 8, 12
26. Agilidade nas mudanasWednesday, August 8, 12
27. Puppet Ferramenta de nova gerao que implementa gerncia de
conguraes para seu ambiente.Wednesday, August 8, 12
28. Viso Rpida Infraestrutura como cdigo Pare de administrar e
comece a desenvolver sua infra Reuse cdigo para gerenciar seu
parque com facilidade Linguagem declarativa para descrever
conguraes (DSL)Wednesday, August 8, 12
29. Sobre a ferramenta Suporte a Linux, BSDs, Solaris e Windows
Criado por Luke Kaines (CEO e Fundador) Empresa PuppetLabs mantm a
Ferramenta Ferramenta OpenSource (Licena Apache) Recebeu grandes
investimentos Empresa oferece Suporte e Verso EnterpriseWednesday,
August 8, 12
30. Feito por um SysAdmin para SysAdminsWednesday, August 8,
12
31. Eciente para uso DevOpsWednesday, August 8, 12
32. Especicaes Escrito em Ruby Extensvel usando cdigo Ruby
Funciona em modo Autnomo (serverless) Funciona em modo
Cliente/Servidor RESTful API Comunicao segura (SSL
Certicate)Wednesday, August 8, 12
33. Cases PuppetWednesday, August 8, 12
34. Arquitetura Como funciona o Puppet?Wednesday, August 8,
12
35. Resource Abstraction Layer (RAL)Wednesday, August 8,
12
36. Puppet: RAL Resource Abstraction Layer = RAL Camada de
Abstrao de Recursos Fale o que voc quer que seja feito No se
preocupe em como ser feito O Puppet sabe como fazerWednesday,
August 8, 12
37. Instale Pacote XWednesday, August 8, 12
38. Remova usurio ZWednesday, August 8, 12
39. (Re)inicie servio YWednesday, August 8, 12
40. Tratamento de Informaes O grande diferencial do Puppet a
forma como ele trata as informaes de seus nodesWednesday, August 8,
12
41. Tratamento de informaes 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 usurio em um servidor um
dadoWednesday, August 8, 12
42. Os dados so inseridos em catlogos pelo master O catlogo
processado pelo node e as modicaes so aplicadas de acordo com o que
foi declarado.Wednesday, August 8, 12
43. Processamento do Catlogo 1) Agente Requisita Catlogo 1.1)
Agente envia Fatos para Master 2) Master Processa Fatos e Compara
2.1) Master Produz e envia Catlogo 3) Node Recebe, Compara e Aplica
4) Node informa estado atual ao Master 5) Sistema reete
catlogoWednesday, August 8, 12
44. IdempotnciaWednesday, August 8, 12
45. Funcionamento Puppet Conguraes Mdulos Estticos Master
Volteis e Dados Camada de Servios Estruturantes LDAP DNS MONIT
SYSLOG Camada de Aplicao JBOSS APACHE MYSQL PGSQL Puppet
AgentsWednesday, August 8, 12
46. Puppet Master 8140 TCP 8139 TCP Client SSL Server puppetd
-t puppetrun Puppet Client Puppet Viso em RedeWednesday, August 8,
12
47. Administrao IaaS Administrar uma cloud IaaS no algo
complicado Escalabilidade automtica um recurso fantstico Ter
elasticidade fundamental Criar novos servidores muito fcil
Administrar centenas de nodes? Aqui comea a complicar.Wednesday,
August 8, 12
48. Quando seu ambiente IaaS comear a crescer demais voc vai
perceber administr-lo no to simples.Wednesday, August 8, 12
52. Como o Puppet pode ajudar? Automatizando seu ambiente
Gerando maior produtividade com menor esforo Padronizando seus
nodes logo aps a instalao Modicando conguraes de forma
controladaWednesday, August 8, 12
53. Insira o Puppet na imagem de instalao de seus
nodes.Wednesday, August 8, 12
54. No tenha medo de realizar atualizaes, o puppet faz pra
voc!Wednesday, August 8, 12
55. Voc pode fazer deploy de sua APP Voc pode controlar a verso
de sua APPWednesday, August 8, 12
56. Como funciona o modo cliente/servidor?Wednesday, August 8,
12
57. Arquitetura Cliente/Servidor O agente gera um certicado
digital O master precisa autorizar o certicado Sem autorizao o
agente no pode se comunicar Toda a comunicao entre agente e master
seguraWednesday, August 8, 12
58. Fluxo Cliente/Servidor Instalao do nodeWednesday, August 8,
12
59. Fluxo Cliente/Servidor Instalao do Inicializao node do
puppetWednesday, August 8, 12
60. Fluxo Cliente/Servidor Instalao do Inicializao Gerao de
node do puppet CerticadoWednesday, August 8, 12
61. Fluxo Cliente/Servidor Instalao do Inicializao Gerao de
node do puppet Certicado Envio de CerticadoWednesday, August 8,
12
62. Fluxo Cliente/Servidor Instalao do Inicializao Gerao de
node do puppet Certicado Master Assina Envio de Certicado
CerticadoWednesday, August 8, 12
63. Fluxo Cliente/Servidor Instalao do Inicializao Gerao de
node do puppet Certicado Agente Master Assina Envio de Sincroniza
Certicado CerticadoWednesday, August 8, 12
64. Fluxo Cliente/Servidor Instalao do Inicializao Gerao de
node do puppet Certicado Agente Master Assina Envio de Sincroniza
Certicado Certicado Modalidades de Assinatura de Certicado
Assinatura pode ser manual Assinatura pode ser automtica por domnio
Assinatura pode ser automtica em qualquer requisioWednesday, August
8, 12
65. O agente se comunica com o master a cada N
minutosWednesday, August 8, 12
66. Quais recursos esto disponveis?Wednesday, August 8, 12
67. Recursos do Puppet Resource Types Parmetros e
Meta-parmetros Templates e Denies Classes e Mdulos Funes e
CondicionaisWednesday, August 8, 12
68. Puppet Resource Types Arquivos e Diretrios Yum Repos
Usurios Augeas Alias Hosts Pacotes SSH Servios Cron O puppet
oferece 38 tipos de recursos nativos, e voc pode
estend-lo.Wednesday, August 8, 12
69. Resource Type: Packages Suporte a 23 tipos de provedores de
pacotes Faz a abstrao do OS Declare se o pacote deve estar presente
ou ausente Declare se o pacote deve sempre estar em sua ltima
versoWednesday, August 8, 12
70. Resource Type: Services Suporta 11 tipos de sistemas INIT
para inicializar servios Declare se um servio deve estar sempre
rodando Declare se um servio deve ser carregado no boot Declare se
um servio depende de um pacote ou arquivoWednesday, August 8,
12
71. Resource Type: File Especique permisses e owners Declare
arquivos, diretrios e links Controle de mudanas usando at 15 tipos
de checksumsWednesday, August 8, 12
74. Instala, Congura e Inicia package { apache2: ensure =>
present, } service { apache2: ensure => running, enable =>
true, } le { httpd.conf: path => /etc/apache2/httpd.conf, source
=> /etc/puppet/les/httpd.conf, }Wednesday, August 8, 12
75. Instala, Congura e Inicia package { apache2: ensure =>
present, } resource type service { apache2: parameter ensure =>
running, title enable => true, value } le { httpd.conf: path
=> /etc/apache2/httpd.conf, source =>
/etc/puppet/les/httpd.conf, }Wednesday, August 8, 12
76. Base Class class 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 }Wednesday, August 8, 12
77. Declarando um node node servidor.dominio { include
linux-server include module } node balancer.dominio { include
linux-server include cyrus::backend include postx::hub include
haproxy::mailproxy }Wednesday, August 8, 12
81. Templates Trecho do template postx/main.cf myorigin =
mydestination = $myhostname, ..., localhost, Substituio de variveis
por fatos myorigin = servidor.dominio mydestination = $myhostname,
..., localhost, servidor.dominioWednesday, August 8, 12
82. Como acompanho mudanas?Wednesday, August 8, 12
83. Puppet DashboardWednesday, August 8, 12
84. Posso fazer mudanas em tempo real?Wednesday, August 8,
12
85. Marionette Collective Orquestrador de nodes Execuo de
Tarefas Paralelas Interao com centenas de nodes Inventrio
descentralizado Leitura de meta-dados do Puppet Similar a Fabric e
CapistranoWednesday, August 8, 12
86. Qual o resultado concreto?Wednesday, August 8, 12
87. Documentao InstantneaWednesday, August 8, 12
88. Restore e backup de mudanasWednesday, August 8, 12
89. Processos bem denidosWednesday, August 8, 12
90. Ambiente PadronizadoWednesday, August 8, 12
91. Tarefas AutomatizadasWednesday, August 8, 12
92. Benefcios Reais Maior produtividade em menor tempo Poucos
SysAdmins para muitos nodes Diminuio de falhas humanas Maior
controle de todo o seu parque Diminuio do tempo gasto em mudanas
Diminuio do custo de manutenoWednesday, August 8, 12
93. Tecnologia trabalhando para vocWednesday, August 8, 12
99. Versione suas conguraesWednesday, August 8, 12
100. Reaproveite CdigoWednesday, August 8, 12
101. GitHub & PuppetForgeWednesday, August 8, 12
102. Pesquise!Wednesday, August 8, 12
103. Puppet em nmeros 727 pessoas online no canal #puppet da
irc.freenode.net 8.500 repositrios no GitHub 450 mdulos no
PuppetForge 4457 usurios ativos na lista puppet-users com 7795
tpicos de discusso Dados coletados em 2012-08-06 s 10:34
PMWednesday, August 8, 12
104. 4Linux & PuppetLabs 1o Parceiro no Brasil Consultores
Especializados Cases no Governo Federal Suporte Puppet Enterprise
Treinamentos Puppet MasterWednesday, August 8, 12
105. Puppet na rede Site/Blog Google Groups
http://www.puppetlabs.com Puppet-camp,
http://www.puppetlabs.com/blog/ puppet-users, http://puppet-br.org/
puppet-users-br, puppet-dev Twitter @puppetlabs IRC
irc.freenode.org GitHub #puppet http://www.github.com/puppelabs
#puppet-brWednesday, August 8, 12
108. Comparando Ferramentas Recursos Puppet Chef CfEngine Pull
Yes Yes Yes Push No No No Idempotence Yes Yes Yes Cong Language
Declarative Ruby Declarative Web UI Yes Yes Yes OS Support
*NIX,Windows *NIX,Windows *NIX,Windows License Apache Apache GPL
Company Puppetlabs OpsCode CfEngine Cloud Yes Yes YesWednesday,
August 8, 12