Palestra ganeti puppet

813 views

Published on

Palestra do FLISOL 2011 DF, sobre uso do Ganeti e do Puppet para administração de ambientes virtualizados.

Essa palestra possui problemas de formatação.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
813
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Palestra ganeti puppet

  1. 1. FLISOL – DF - 2011Assuma o controle do seu parque virtualizado Palestrantes: Guto Carvalho @gutocarvalho Daniel Sobral @dcsobral
  2. 2. Já teve a sensação de estarperdendo o controle do seu ambiente virtualizado? Foto tirada do site sysadminday.com por Frank Schicksal
  3. 3. Necessidades do cliente● Isolamento de ambientes e serviços em vms● Facilidade de migração inter-sites● Maior estabilidade e disponibilidade dos serviços● Curta curva de aprendizagem
  4. 4. Desafios● Centralização da administração e configuração● Padronização do ambiente● Rápida implantação e implementação● Conversão de infraestrutura● Manutenção descomplicada
  5. 5. Decisões Importantes● Utilização de tecnologia livre ou opensource● Internalizar suporte● Utilização coerente de recursos e orçamento
  6. 6. Caso de Estudo● Empresa Brasil de Comunicação● Cerca de 160 máquinas virtuais rodando em um cluster com 15 nós● Gestão e distribuição de configurações● Administração compartilhada de 4 devops
  7. 7. Especialistas Envolvidos Equipe Tecnisys José Augusto Carvalho @gutocarvalho Daniel Sobral @dcsobral Jefferson Santos @jalexandre0 Equipe EBC CoordenadoresTadeu Ibns N. Rocha – tadeuibns@gmail.com José Eufrásio @coredump SysAdmins Nieson Santos – nieson.santos@gmail.com
  8. 8. VIRTUALIZAÇÃO
  9. 9. Terminologia Virtualization [. . . ] a hypervisor, also called virtual machine monitor, allowsmultiple operating systems to run concurrently on a host computer. (Wikipedia) Cluster Node ≡ physical machine Instance ≃ machine ≃ virtual machine
  10. 10. Nossa Escolha: GANETI● Produto criado pelo Google● Case interessante de uso interno no Google● Facilidade de implementação● Utilização de hypervisors livres XEN e KVM● Funciona em modo Cluster● Permite migração de máquinas entre nós● Administração simplificada via CLI ou WEB (frontends)● Boa documentação, desenvolvimento ativo e comunidade crescente
  11. 11. GANETI: Overview● Gerenciador Open Source para clusters virtualizados● Combina virtualização e replicação de disco em tempo real● Oferece uma aplicação de alta disponibilidade promovendo uma melhor utilização dos recursos do seu datacenter.
  12. 12. GANETI: HypervisorsXENXxxxXxxxXxxKVMXxxXxXxXx
  13. 13. GANETI: Estrutura Lógica● Cluster● Nó mestre● Nós● Instâncias
  14. 14. GANETI: Organização Lógica do Cluster
  15. 15. GANETI: Exemplos de melhorias● Na infraestrutura XEN a administração é descentralizada, precisávamos entrar em cada máquina para fazer manutenções nas VM. Hoje fazemos isto de forma centralizada no master node.● Informações descentralizadas: antes para criar máquinas precisávamos entrar em cada servidor XEN para avaliar os recursos disponíveis e escolher um servidor ideal para instalar o serviço. Com o ganeti temos um visão completa de todo o cluster no nó master.
  16. 16. GANETI: Listando nós
  17. 17. GANETI: Listando instâncias
  18. 18. GANETI: Listando info de VM
  19. 19. GANETI: Movendo VM entre nós
  20. 20. GANETI: Operações1. Criando um cluster# gnt-cluster init gnt-node01.empresa2. Adicionando nó ao cluster# gnt-instance add node02# gnt-instance add node033. Criando máquina virtual# gnt-instance add -n node1 -t plain -H memory=1G -s 10G -odebian apache01
  21. 21. GANETI: Operações4. desligando# gnt-instance shutdown maquina5. ligando# gnt-instance startup maquina6. reiniciando# gnt-instance reboot maquina
  22. 22. GANETI: OperaçõesMovendo máquinas entre nós# gnt-instance move -n gnt-node05 maquinaAtivando discos para montagem# gnt-instance activate-disks maquina# ssh gnt-nodeXX# kpartx -av /dev/mapper/xenvg-xxx.disk0# mount /dev/xenvg/xxxx /mnt/disco
  23. 23. GANETI: OperaçõesAdicionando mais memoria# gnt-instance modify -B memory=4G maquinaAdicionando mais processadores# gnt-instance modify -B vcpus=3 maquinaAdicionando mais placas de rede# gnt-instance modify -B --net add:ip=192.168.50.173 maquinaAdicionando disco# gnt-instance gnt-instance modify --disk add:size=1gsmtp02
  24. 24. GANETI: Hooks● Padronização de configurações do OS durante a instalação● Instalação dos softwares básicos para administração das máquinas
  25. 25. GANETI: GanhosCliente● Uso coerente dos recursos de hardware/rede● Investimento em conhecimento da equipe● Investimento de SW direcionado para HWEquipe● Facilidade na criação e adm. de máquinas● Movimentação de VMs entre nós e SITES● Replicação DRDB = Alta disponibilidade
  26. 26. GANETI: Problemas● Uso de Múltiplos volumes – storage area network (SAN)● SNAPSHOTs● Clonagem de máquinas● DRDB e desempenho● I/O● Múltiplas Redes
  27. 27. GANETI: Front-End
  28. 28. GANETI: Web Manager
  29. 29. GANETI: Web Manager
  30. 30. GANETI: Web Manager
  31. 31. GANETI: Web Manager
  32. 32. GANETI: ComparaçõesMáquina Física – Debian Lenny● Tempo de instalação de maquina física – 40 minutos sem atualizações (CD)● Tempo de configuração/update* – padrão - de maquina física – 40 minutosMáquina Virtual – Debian Lenny● Tempo de criação de maquina virtual - 2 minutos
  33. 33. GANETI: ComparaçõesMáquina Física – Debian Lenny● Tempo de instalação de maquina física – 40 minutos sem atualizações (CD)● Tempo de configuração/update* – padrão - de maquina física – 40 minutosMáquina Virtual – Debian Lenny● Tempo de criação de maquina virtual - 2 minutos
  34. 34. GANETI: Dicas● Atenção com DNS, dependência grande para criar a VMs● Uso e abuse de Activate Disks para montar e `clonar` máquinas● GrowDisk e Parted● Nunca dê CTRL+C● Usar - - submit● Nunca, jamais, de forma alguma, dê um KILL em um processo de MOVE ou CREATE.
  35. 35. GANETI: Limitações dos HooksSabendo que os hooks são podem ser utilizadosinstalação das VMS, como ir além dos hooks...?
  36. 36. Gestão de Configuração
  37. 37. Gestão de Configuração● Facilitar o trabalho de administração de servidores● Padronizar as configurações utilizadas● Possibilitar auditoria de configuração● Centralizar a administração● Elementos comumente gerenciados ● Usuários ● Grupos ● Arquivos ● pacotes instalados
  38. 38. Nossa Escolha ● Puppet (2005) ● Ruby, GPL ● AIX, BSD, HP-UX, Linux, MaxOS, Solaris, Windows(*) ● Wikipedia: ● Configuration_management ● Comparison_of_open_sourc e_configuration_manageme nt_software
  39. 39. PUPPET: Funcionamento● Autônomo ● Cliente obtém plugins● Cliente/Servidor ● Cliente envia fatos ● HTTPS ● Servidor produz ● Certificado de Cliente catálogo ● Pull por default ● Cliente processa ● Push opcional catálogo ● Cliente envia relatório
  40. 40. Puppet: Fácil Aprendizado Sintaxe Declarativac l ass r sy sl og { pac kage { r s ysl og : ens ur e => pr esent , } s er vi ce { r s ysl og : has r es t ar t => t r ue, } f i l e { / et c/ r sy s l og. d/ l ogs er v er 01. conf : ens ur e => pr esent , s our ce => puppet : / / / f i l es / r s ys l og/ r s ys l og. d/ l ogser ver 01. c onf , not i f y => Ser vi ce[ r s ys l og ] , }}
  41. 41. Puppet: Fácil Aprendizado Independente de Plataformac l as s edi t or { $v i m = $oper at i ngs y s t em ? { RedHat => v i m enhanc ed , - Cent OS => v i m enhanc ed , - Fedor a => v i m enhanc ed , - def aul t => v i m , } pac k age { " $v i m : " ens ur e => pr es ent , al i as => v i m , }}node “ hos t 01. dom n. c om br ” { ai . i nc l ude edi t or}node “ hos t 02. dom n. c om br ” { ai . i nc l ude edi t or}
  42. 42. Puppet: Auto documentadoc l as s l i nux - s er v er { # I nc l ude c l as s es c om on t o al l l i nux s er v er s m i nc l ude l oc al m at i nc l ude nt pdat e i nc l ude puppet : : c onf i nc l ude s s h: : s er v er i nc l ude s udoer s i nc l ude us er s i nc l ude ut i l s i nc l ude z abbi x - agent i nc l ude edi t or i nc l ude s nm pd i nc l ude r s y s l og #. . .}
  43. 43. Puppet: Controle de Versão e Rollback#gi t l ogc om i t 263b2239cc f f 746f 345c448d723f 4f f 52d3f 8c0f mAut hor : Dani el Sobr al <dcs obr al @ ai l . com gm >Dat e: Thu Mar 31 22: 11: 16 2011 - 0300 Ex cl ui a bol et i ns das máqui nas c onf i gur adas c om m a s at él i t e. o t Li m t a a conf i gur aç ão do ex i m às m i 4 áqui nas Ubunt u e Debi an.c om i t 8f bed5a4b8095b7560941c598454d47f 3b3dec7e mAut hor : Dani el Sobr al <dcs obr al @ ai l . com gm >Dat e: Thu M ar 31 22: 08: 22 2011 - 0300 Cl as se debi an- c om on adapt ada par a l i dar com Ubunt u. Basi cam m ent e,f or ça l i dar com s er vi ços no padr ão Debi an ( Ubunt u s upor t a padr ão Fr eeBSD t am bém , e não m ) exe no sour ce l i st ( por hor a) . Si st emas Ubunt u t ambém i ncl ui r ão a c l ass e debi an- s er ver . Ver i f i ca se o k er nel é xen, e, s e f or , i nc l ui o l i nux modul es cor r es pondent e.
  44. 44. Puppet: Altamente Flexívelnode " el ei c oes c onc ur v m 01" { i nc l ude l i nux - s er v er j bos s : : app { c ons el ho : c onf => def aul t , pgdb => c ons el hopr od , # Al t er a pg_ hba. c onf }}node “ el ei c oes c onc ur v m bd01” { i nc l ude l i nux - s er v er pgdb { c ons el hopr od : # Ger a XM par a dat as our c e L pas s wor d => * * * * * * * * , pgv er s i on => 8. 4 , }}
  45. 45. Puppet: Expansível def i ne pgcl i ent ( $ens ur e = pr esent ,● Puppet $i p = $i paddr es s) { @ l i ne { " pgcl i ent ${ i p} " : @ ● Classes ens ur e => $ensur e, l i ne => " ${ i p} / 32 n" , r equi r e => Fi l e[ c l i ent i p ] , ● Definições t ag => " pgcl i ent _ $ { t i t l e} " ,● Templates (ERB) } }● Ruby # augeas v er s i on. r b Fact er . add( " augeasv er si on" ) do ● Fatos set code do begi n r equi r e augeas ● Funções aug = Augeas: : open( , , Augeas: : NO_LOAD & Augeas : : NO_ STDI NC) ● Tipos aug. get ( / augeas/ v er s i on ) | | ni l ● Provedores #. . .
  46. 46. Puppet: Problemas● Documentação Deficiente● Mensagens de erro ruins● Servidor default nao segura mais de 20 máquinas● Não distribui arquivos grandes● Grande investimento de tempo para chegar ao nível de expert
  47. 47. Frontends – Puppet Dashboard
  48. 48. Frontends – The Foreman● Visualiza ● Inventário (fatos) ● Relatório ● Configurações● Provisiona servidores ● Kickstart ● Jumpstart ● Preseed
  49. 49. PUPPET + GANETIOnde podemos chegar com essa combinação?
  50. 50. Comparação FinalMáquina Física – Debian Lenny + LAMP● Tempo de instalação de maquina física – 40 minutos sem atualizações (CD) Tempo de configuração/update OS* – padrão -Máquina Virtual –● de maquina física – 40 minutosDebian Lenny Tempo de instalação e configuração Apache2,● PHP5, MYSQL – 2 horas**● Tempo de criação de
  51. 51. ConclusãoO Ganeti é uma alternativa viável, modernaestável, largamente utilizado no google, em francodesenvolvimento com um comunidade crescentee ativa.O Puppet é uma ferramenta essencial paragerenciar e distribuir configurações, ele é umbatalhão de sysadmins trabalhando para você.
  52. 52. Informações dos projetosSite/Blog Site/BlogHttp://ww.puppetlabs.com http://code.google.com/p/ganeti/Http://www.puppetlabs.com DocsTwitter http://docs.ganeti.org@puppetlabs Twitter (manager web do ganeti)Http://www.github.com/puppelabs @ganetiwebmgrGoogle Groups Google GroupsPuppet-camp, ganeti,puppet-users, ganeti-develpuppet-dev ganeti-webmgrIRC IRCIrc.freenode.org Irc.freenode.org#puppet #ganeti
  53. 53. Contato, Dúvidas, PerguntasGuto Carvalho: Daniel Sobralgutocarvalho@gmail.com dcsobral@gmail@gutocarvalho .com @dcsobralhttp://gutocarvalho.netem nossos sites. Palestras de hoje disponíveis/dokuwiki http://dcsobral.blogHttp://github.com/ Commons - Atribuição Palestra sob licença Creativedcsobral Http://github.co m/dcsobral

×