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
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.
é 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.
• Investimento em conhecimento da equipe • Investimento de SW direcionado para HW Equipe • Facilidade na criação e adm. de máquinas • Movimentação de VM's entre nós e SITES • Replicação DRDB = Alta disponibilidade
instalação de maquina física – 40 minutos sem atualizações (CD) • Tempo de configuração/update* – padrão - de maquina física – 40 minutos Máquina Virtual – Debian Lenny • Tempo de criação de maquina virtual - 2 minutos
instalação de maquina física – 40 minutos sem atualizações (CD) • Tempo de configuração/update* – padrão - de maquina física – 40 minutos Máquina Virtual – Debian Lenny • Tempo de criação de maquina virtual - 2 minutos
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.
{ package { ' r sysl og' : ensur e => pr esent , } ser vi ce { ' r sysl og' : hasr est ar t => t r ue, } f i l e { ' / et c/ r sysl og. d/ l ogser ver 01. conf ' : ensur e => pr esent , sour ce => ' puppet : / / / f i l es/ r sysl og/ r sysl og. d/ l ogser ver 01. conf ' , not i f y => Ser vi ce[ ' r sysl og' ] , } }
or { $vi m = $oper at i ngsyst em ? { ' RedHat ' => ' vi m - enhanced' , ' Cent OS' => ' vi m - enhanced' , ' Fedor a' => ' vi m - enhanced' , def aul t => ' vi m ' , } package { " $vi m " : ensur e => pr esent , al i as => ' vi m ' , } } node “ host 01. dom ai n. com . br ” { i ncl ude edi t or } node “ host 02. dom ai n. com . br ” { i ncl ude edi t or }
{ # I ncl ude cl asses com m on t o al l l i nux ser ver s i ncl ude l ocal m t a i ncl ude nt pdat e i ncl ude puppet : : conf i ncl ude ssh: : ser ver i ncl ude sudoer s i ncl ude user s i ncl ude ut i l s i ncl ude zabbi x- agent i ncl ude edi t or i ncl ude snm pd i ncl ude r sysl og #. . . }
com m i t 263b2239ccf f 746f 345c448d723f 4f f 52d3f 8c0f Aut hor : Dani el Sobr al <dcsobr al @ gm ai l . com > Dat e: Thu M ar 31 22: 11: 16 2011 - 0300 Excl ui a bol et i ns das m áqui nas conf i gur adas com o m t a sat él i t e. Li m i t a a conf i gur ação do exi m 4 às m áqui nas Ubunt u e Debi an. com m i t 8f bed5a4b8095b7560941c598454d47f 3b3dec7e Aut hor : Dani el Sobr al <dcsobr al @ gm ai l . com > Dat e: Thu M ar 31 22: 08: 22 2011 - 0300 Cl asse debi an- com m on adapt ada par a l i dar com Ubunt u. Basi cam ent e, f or ça l i dar com ser vi ços no padr ão Debi an ( Ubunt u supor 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 em as Ubunt u t am bém i ncl ui r ão a cl asse debi an- ser ver . Ver i f i ca se o ker nel é xen, e, se f or , i ncl ui o l i nux m odul es cor r espondent e.
{ i ncl ude l i nux- ser ver j boss: : app { ' consel ho' : conf => ' def aul t ' , pgdb => ' consel hopr od' , # Al t er a pg_hba. conf } } node “ el ei coesconcur vm bd01” { i ncl ude l i nux- ser ver pgdb { ' consel hopr od' : # Ger a XM L par a dat asour ce passwor d => ' * * * * * * * * ' , pgver si on => ' 8. 4' , } }
(ERB) • Ruby • Fatos • Funções • Tipos • Provedores def i ne pgcl i ent ( $ensur e = pr esent , $i p = $i paddr ess) { @ @ l i ne { " pgcl i ent ${ i p} " : ensur e => $ensur e, l i ne => " ${ i p} / 32\ n" , r equi r e => Fi l e[ ' cl i ent i p' ] , t ag => " pgcl i ent _$ { t i t l e} " , } } # augeasver si on. r b Fact er . add( " augeasver si on" ) do set code do begi n r equi r e ' augeas' aug = Augeas: : open( ' ' , ' ' , Augeas: : NO_LOAD & Augeas: : NO_STDI NC) aug. get ( ' / augeas/ ver si on' ) | | ni l #. . .
Tempo de instalação de maquina física – 40 minutos sem atualizações (CD) • Tempo de configuração/update OS* – padrão - de maquina física – 40 minutos • Tempo de instalação e configuração Apache2, PHP5, MYSQL – 2 horas** Máquina Virtual – Debian Lenny • Tempo de criação de
utilizado no google, em franco desenvolvimento com um comunidade crescente e ativa. O Puppet é uma ferramenta essencial para gerenciar e distribuir configurações, ele é um batalhão de sysadmins trabalhando para você.
Groups Puppet-camp, puppet-users, puppet-dev IRC Irc.freenode.org #puppet Site/Blog http://code.google.com/p/ganeti/ Docs http://docs.ganeti.org Twitter (manager web do ganeti) @ganetiwebmgr Google Groups ganeti, ganeti-devel ganeti-webmgr IRC Irc.freenode.org #ganeti
dcsobral Daniel Sobral dcsobral@gmail .com @dcsobral http://dcsobral.blog Http://github.co m/dcsobral Palestras de hoje disponíveis em nossos sites. Palestra sob licença Creative Commons - Atribuição