SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Puppet – Torne seu datacenter ágil Jeferson Rodrigues
Puppet ,[object Object],[object Object],[object Object],www.puppetlabs.com/company/overview /
Puppet: Modelo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Puppet: Componentes ,[object Object],[object Object],[object Object]
Puppet: Manifest ,[object Object],[object Object]
Puppet: Manifest
Puppet: Classe e Resource Types ,[object Object],[object Object]
Puppet: Classe e Resource Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Puppet: Resource Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Puppet: Resource Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Puppet: Define ,[object Object]
Puppet: Define ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Puppet: Define ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Puppet: Template resolv.conf.erb ,[object Object],[object Object],[object Object],[object Object],[object Object],############################## #  By Puppet ############################## domain terra.com.br search tpn.terra.com terra.com.br nameserver 10.225.54.200 nameserver 10.225.54.201 nameserver 10.225.54.202 options rotate cat /etc/resolv.conf Header.erb resolv.conf.erb
Puppet : Nodes node basenode { include ntp :: client include puppet :: client include resolv :: client include host:: ssh } node_terminus  = plain
Puppet : Nodes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Facter!
Facter ,[object Object],[object Object]
Facter ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Facter ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Documentação ,[object Object],[object Object]
Terra: Automação da Infraestrutura ,[object Object],[object Object],[object Object],[object Object]
Terra: Processo de Deploy
Terra: Objetivos projeto Automação ,[object Object],[object Object],[object Object],[object Object]
Fatores Críticos de Sucesso ,[object Object],[object Object],[object Object],[object Object],[object Object]
Terra: Desafios do Projeto ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitetura
Desenho da Arquitetura Apache mod_ssl mod_passenger Rack: /puppet/rack/puppetmasterd Load Balance SVN puppet-manifest puppet-facts puppet-files puppet-templates LDAP LDAP LDAP puppetclass MySQL reports sysadmin puppet client
Integração ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Webservices ,[object Object],[object Object],[object Object]
Webservice PuppetClass
Webservice SetVLAN
Gestão de Identidade ,[object Object],[object Object],[object Object]
Deploy de sistema operacional ,[object Object],[object Object]
Repositórios de pacotes ,[object Object],[object Object],class yumrepos { case $datacenter { MIA: { $server = "terralinux-mia.tpn.terra.com" } default: { $server = "terralinux-poa.tpn.terra.com" } } trrnoarch": name => "trrnoarch", baseurl => "http://$server/yum/sistemas/centos/$lsbmajdistrelease/noarch/", descr => "Terra-NoArch", enabled => 1; } }
Inventario Básico ,[object Object],[object Object],mysql> select b.name, a.value from fact_values a, fact_names b where a.host_id = (select id from hosts where name like 'osborne.%') and a.fact_name_id = b.id and a.value = "monit-web-poa" order by b.name; +-------------+---------------+ | name  | value  | +-------------+---------------+ | puppetclass | monit-web-poa | +-------------+---------------+ 1 row in set (0.00 sec)
Monitoração ,[object Object],[object Object],[object Object],snmpget -v2c -c xxxxxx 127.0.0.1 1.3.6.1.4.1.7803.3.1.20 TERRA-SYSTEM-MIB::CorePuppetClass = STRING: "monit-web-poa"
Puppet e o Terra ,[object Object],[object Object],[object Object],[object Object]
Terra: Tecnologia
Puppet – Torne seu datacenter ágil Jeferson Rodrigues Muito Obrigado!!! Perguntas? www.terra.com.br/trabalhenoterra

Weitere ähnliche Inhalte

Was ist angesagt?

Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Jose Augusto Carvalho
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppetElton Simões
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilJose Augusto Carvalho
 
Gerenciamento de Configurações - Puppet
Gerenciamento de Configurações - PuppetGerenciamento de Configurações - Puppet
Gerenciamento de Configurações - PuppetRoberto Scudeller
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxElton Minetto
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#Leandro Silva
 
Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!Iuri Andreazza
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...tdc-globalcode
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTelliando dias
 
Automação de Ambientes com Puppet
Automação de Ambientes com Puppet Automação de Ambientes com Puppet
Automação de Ambientes com Puppet 4LinuxCursos
 
Palestra ganeti puppet
Palestra ganeti puppetPalestra ganeti puppet
Palestra ganeti puppetDaniel Sobral
 
Como o Cucumber Funciona
Como o Cucumber FuncionaComo o Cucumber Funciona
Como o Cucumber FuncionaLaís Berlatto
 
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
 

Was ist angesagt? (20)

Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)
 
Consegi 2011: Puppet
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppet
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágil
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Gerenciamento de Configurações - Puppet
Gerenciamento de Configurações - PuppetGerenciamento de Configurações - Puppet
Gerenciamento de Configurações - Puppet
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - Tchelinux
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
 
Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!Hotspot Green and Blue Label - Switching the labels!
Hotspot Green and Blue Label - Switching the labels!
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
 
Automação de Ambientes com Puppet
Automação de Ambientes com Puppet Automação de Ambientes com Puppet
Automação de Ambientes com Puppet
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
 
Palestra ganeti puppet
Palestra ganeti puppetPalestra ganeti puppet
Palestra ganeti puppet
 
apache+ssl+Jserv
apache+ssl+Jservapache+ssl+Jserv
apache+ssl+Jserv
 
Como o Cucumber Funciona
Como o Cucumber FuncionaComo o Cucumber Funciona
Como o Cucumber Funciona
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
 

Ähnlich wie Puppet – Torne Seu Datacenter áGil

2009 05 20 Floripa Flex
2009 05 20 Floripa Flex2009 05 20 Floripa Flex
2009 05 20 Floripa FlexEduardo Kraus
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
Project HA
Project HAProject HA
Project HAKarpv
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxThiago Paes
 
rails_and_agile
rails_and_agilerails_and_agile
rails_and_agileJuan Maiz
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlManuel Lemos
 
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlDiego Tremper
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosRegis Magalhães
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppetpericles_junior
 
Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...
Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...
Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...Tchelinux
 

Ähnlich wie Puppet – Torne Seu Datacenter áGil (20)

Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
nDeveloper Framework
nDeveloper FrameworknDeveloper Framework
nDeveloper Framework
 
2009 05 20 Floripa Flex
2009 05 20 Floripa Flex2009 05 20 Floripa Flex
2009 05 20 Floripa Flex
 
PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
Puppet overview
Puppet overviewPuppet overview
Puppet overview
 
Project HA
Project HAProject HA
Project HA
 
Tw Course Ajax 2007 Ap05
Tw Course Ajax 2007 Ap05Tw Course Ajax 2007 Ap05
Tw Course Ajax 2007 Ap05
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
rails_and_agile
rails_and_agilerails_and_agile
rails_and_agile
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies Cabecalhos
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppet
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...
Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...
Linux Deployment: Como instalar Linux sem sair da cadeira - Jonathan Meller e...
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Collectd
CollectdCollectd
Collectd
 

Puppet – Torne Seu Datacenter áGil

Hinweis der Redaktion

  1. Breve apresentação Quiz: - Quandos sysadmin temos aqui? - Quantos sysadmin tem alguma afinidade com programação? - E se a configuração fosse vista como programavel? Bom, a nossa paletra tem duas partes. Uma breve indrodução ao Puppet e como utilzamos o Puppet no ambiente do Terra.
  2. Surge como sucessor do cfengine para administrar um ou milhares de servidores, ou 10000 servidores conforme a idéia do idealizador. É um framework open-source robusto, flexivel e estensivel. Destina-se a automação e gerencia de configuração, tambem é utilizado como solução para execução de tarefas repetitivas. Por exemplo ... Se destina especialmente para administradores de sistemas (sysadmin). 5 minutos falando da historia
  3. Irei demostrar na sequencia o que é cada item e qual sua funcionalidade.
  4. Puppetmasterd is a central management daemon. In most installations, you’ll have one puppetmasterd server and each managed machine will run ‘puppetd’. By default, puppetmasterd runs a certificate authority, which you can read more about in the security section . Puppetmasterd will automatically serve up puppet orders to managed systems, as well as files and templates. Puppetd runs on each managed node. By default, it will wake up every 30 minutes (configurable), check in with puppetmasterd, send puppetmasterd new information about the system (facts), and then recieve a ‘compiled catalog’ containing the desired system configuration that should be applied as ordered by the central server. When running Puppet locally (for instance, to test manifests, or in a non-networked disconnected case), puppet is run instead of puppetd. It then uses local files, and does not try to contact the central server. Otherwise, it behaves the same as puppetd.
  5. Catalogo que tem como responsabilidade de agrupar os facter, classes e seus resources.
  6. Catalogo que tem como responsabilidade de agrupar os facter, classes e seus resources
  7. Criando uma classe para instalar e configurar de maneira automaitzada o webserver nginx Explicar com calma cada passo do exemplo...
  8. idem
  9. idem
  10. Ponte com resolv.conf. Exemplo em multiplos datacenters Definitions, on the other hand, can be reused many times on the same node. They essentially work as if you created your own Puppet type just by using the language. They are meant to be evaluated multiple times, with different inputs each time. This means you can pass variable values into the defines. Both classes and defines are very useful and you should make use of them when building out your puppet infrastructure. Classes Classes are introduced with the class keyword, and their contents are wrapped in curly braces. The following simple example creates a simple class that manages two seperate files:
  11. Por exemplo, o resolv.conf de um servidor em uma determinada localidade consulta servidores de DNS especificos. Explicar para criança....
  12. Idem.... Explicar para criança
  13. Basenode é um modelo padrão que adotamos que todo o servidor deve ter. Já o monit-web-poa é classe que herda caracteriscas de basenode e constroe um servidor do frontend da monitoracao ....
  14. Basenode é um modelo padrão que adotamos que todo o servidor deve ter. Já o monit-web-poa é classe que herda caracteriscas de basenode e constroe um servidor do frontend da monitoracao ....
  15. Facter is an independent, cross-platform Ruby library designed to gather information on all the nodes you will be managing with Puppet. It is available on all platforms that Puppet is available. Quick information gathering on nodes Facter is a lightweight program that gathers basic node information about the hardware and operating system. Facter is especially useful for retrieving things like operating system names, hardware characteristics, IP addresses, MAC addresses, and SSH keys.
  16. Aqui a saida dos facter que podemos utilizar para tomada de decissão, por exemplo, a construção de um define...
  17. Exemplo de uso do facter. O proprio resolve $operationsystem
  18. Visite a documentação é muito boa e bem completa