SlideShare ist ein Scribd-Unternehmen logo
1 von 109
Downloaden Sie, um offline zu lesen
Prestação de serviços em:                  Baseados em:
      - Consultoria - Desenvolvimento          - Softwares Livres
      - Suporte     - Soluções e Aplicativos   - Open Source
      - Projetos    - Treinamento              - Padrões Abertos



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

Tuesday, August 7, 12
Gerência de Configurações em Cloud
                        Puppet em ambientes IaaS
                         José Augusto (Guto) Carvalho
                            jose.carvalho@4linux.com.br




Tuesday, August 7, 12
whoami
                        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

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


Tuesday, August 7, 12
Puppet em IaaS
Tuesday, August 7, 12
Plano de Trabalho


                        40 minutos de apresentação
                        5 minutos para perguntas




Tuesday, August 7, 12
Agenda

                        Gerência de Configurações
                        Infraestrutura como Código
                        Puppet como solução de Gerência de Configurações
                        Puppet Arquitetura, Funcionamento e Recursos
                        Perguntas


Tuesday, August 7, 12
Cloud Computing - Tendência
Tuesday, August 7, 12
Cloud e seus Benefícios
                        Hiper-escalável
                        Rápida e elástica
                        Abstração de hardware
                        Infraestrutura dinâmica
                        Alta-disponibilidade
                        Investimento atraente
Tuesday, August 7, 12
Provisionamento
            Podemos criar 500 VM’s em
                 poucos minutos




Tuesday, August 7, 12
Como Administrar 500 VM’s?



Tuesday, August 7, 12
Configuração Manual?



Tuesday, August 7, 12
Acesso Secure Shell (ssh)?



Tuesday, August 7, 12
Host a Host?



Tuesday, August 7, 12
Quantos SysAdmins são necessários
                         para administrar 500 servidores?




Tuesday, August 7, 12
Qual a velocidade nas
                        mudanças em seu ambiente?


Tuesday, August 7, 12
Qual a probabilidade de falhas
                        decorrentes de mudanças manuais?




Tuesday, August 7, 12
Você consegue manter todo o
                         seu ambiente padronizado?


Tuesday, August 7, 12
Seu custo com manutenção e
                   equipes técnicas está aumentando?



Tuesday, August 7, 12
Está difícil colocar suas configurações nos trilhos?

Tuesday, August 7, 12
Como resolver isto?
                              Como obtenho controle e
                          padronização em meu ambiente ?




Tuesday, August 7, 12
Gerência de Configurações
Tuesday, August 7, 12
Padronização


Tuesday, August 7, 12
Automatização


Tuesday, August 7, 12
Controle


Tuesday, August 7, 12
Integridade


Tuesday, August 7, 12
Desempenho


Tuesday, August 7, 12
Agilidade nas mudanças


Tuesday, August 7, 12
Puppet
           Ferramenta de nova geração
           que implementa gerência de
              configurações para seu
                   ambiente.



Tuesday, August 7, 12
Visão Rápida

                        Infraestrutura como código
                        Pare de administrar e comece a desenvolver sua infra
                        Reuse código para gerenciar seu parque com facilidade
                        Linguagem declarativa para descrever configurações (DSL)


Tuesday, August 7, 12
Sobre a ferramenta
                        Suporte a Linux, BSDs, Solaris e Windows
                        Criado por Luke Kaines (CEO e Fundador)
                        Empresa PuppetLabs mantém a Ferramenta
                        Ferramenta OpenSource (Licença Apache)
                        Recebeu grandes investimentos
                        Empresa oferece Suporte e Versão Enterprise
Tuesday, August 7, 12
Feito por um SysAdmin para SysAdmins




Tuesday, August 7, 12
Eficiente para uso DevOps




Tuesday, August 7, 12
Especificações
                        Escrito em Ruby
                        Extensível usando código Ruby
                        Funciona em modo Autônomo (serverless)
                        Funciona em modo Cliente/Servidor
                        RESTful API
                        Comunicação segura (SSL Certificate)
Tuesday, August 7, 12
Cases Puppet




Tuesday, August 7, 12
Arquitetura
                        Como funciona o Puppet?




Tuesday, August 7, 12
Resource Abstraction Layer
                                  (RAL)



Tuesday, August 7, 12
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

Tuesday, August 7, 12
Instale Pacote X


Tuesday, August 7, 12
Remova usuário Z


Tuesday, August 7, 12
(Re)inicie serviço Y


Tuesday, August 7, 12
Tratamento de
                   Informações
        O grande diferencial do Puppet
         é a forma como ele trata as
          informações de seus nodes




Tuesday, August 7, 12
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


Tuesday, August 7, 12
Os dados são inseridos em
                             catálogos pelo master
                        O catálogo é processado pelo node e as modificações
                         são aplicadas de acordo com o que foi declarado.




Tuesday, August 7, 12
Processamento
              do Catálogo
        1) Agente Requisita Catálogo
        1.1) Agente envia Fatos para Master
        2) Master Processa Fatos e Compara
        2.1) Master Produz e envia Catálogo
        3) Node Recebe, Compara e Aplica
        4) Node informa estado atual ao Master
        5) Sistema reflete catálogo

Tuesday, August 7, 12
Idempotência


Tuesday, August 7, 12
Funcionamento
                                                  Puppet           Configurações
       Módulos Estáticos                          Master          Voláteis e Dados

                   Camada de Serviços Estruturantes

                            LDAP            DNS         MONIT   SYSLOG
                    Camada de Aplicação

                            JBOSS         APACHE       MYSQL    PGSQL

                                               Puppet Agents
Tuesday, August 7, 12
Puppet Master

         8140 TCP                              8139 TCP
           Client                   SSL          Server
         puppetd -t                            puppetrun

                               Puppet Client



                        Puppet Visão em Rede
Tuesday, August 7, 12
Administração IaaS

                        Administrar uma cloud IaaS não é algo complicado
                        Escalabilidade automática é um recurso fantástico
                        Ter elasticidade é fundamental
                        Criar novos servidores é muito fácil
                        Administrar centenas de nodes? Aqui começa a complicar.

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




Tuesday, August 7, 12
Adicionando Novos Nodes
                                ZABBIX
                        NGINX

                                                 JBOSS


                                         POSTGRESQL


                                MEMCACHED




Tuesday, August 7, 12
Adicionando Novos Nodes
                                ZABBIX
                        NGINX

                                                 JBOSS


                                         POSTGRESQL


                                MEMCACHED


           Adicionar um novo node representa N mudanças
Tuesday, August 7, 12
Adicionando Novos Nodes
                                                         sysadmin-utils
                                ZABBIX                    zabbix-agent
                        NGINX
                                                             ntpconf
                                                             locales
                                                 JBOSS
                                                              hosts
                                                              users
                                         POSTGRESQL         localmta
                                                              smtpd
                                                              vimrc
                                MEMCACHED
                                                         backup-agent
                                                           apt-repos


Tuesday, August 7, 12
Como o Puppet pode ajudar?

                        Automatizando seu ambiente
                        Gerando maior produtividade com menor esforço
                        Padronizando seus nodes logo após a instalação
                        Modificando configurações de forma controlada


Tuesday, August 7, 12
Insira o Puppet na imagem de
                           instalação de seus nodes.



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




Tuesday, August 7, 12
Você pode fazer deploy de sua APP
                        Você pode controlar a versão de sua APP




Tuesday, August 7, 12
Como funciona o modo cliente/servidor?




Tuesday, August 7, 12
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


Tuesday, August 7, 12
Fluxo Cliente/Servidor
                   Instalação do
                       node




Tuesday, August 7, 12
Fluxo Cliente/Servidor
                   Instalação do     Inicialização
                       node           do puppet




Tuesday, August 7, 12
Fluxo Cliente/Servidor
                   Instalação do     Inicialização   Geração de
                       node           do puppet      Certificado




Tuesday, August 7, 12
Fluxo Cliente/Servidor
                   Instalação do     Inicialização   Geração de
                       node           do puppet      Certificado



                                                      Envio de
                                                     Certificado




Tuesday, August 7, 12
Fluxo Cliente/Servidor
                   Instalação do      Inicialização   Geração de
                       node            do puppet      Certificado



                                     Master Assina     Envio de
                                      Certificado      Certificado




Tuesday, August 7, 12
Fluxo Cliente/Servidor
                   Instalação do      Inicialização   Geração de
                       node            do puppet      Certificado



                          Agente     Master Assina     Envio de
                        Sincroniza    Certificado      Certificado




Tuesday, August 7, 12
Fluxo Cliente/Servidor
                   Instalação do          Inicialização           Geração de
                       node                do puppet              Certificado



                          Agente         Master Assina             Envio de
                        Sincroniza        Certificado              Certificado


    Modalidades de Assinatura de Certificado
          Assinatura pode ser manual
          Assinatura pode ser automática por domínio
          Assinatura pode ser automática em qualquer requisição
Tuesday, August 7, 12
Quais recursos estão disponíveis?




Tuesday, August 7, 12
Recursos do Puppet

                        Resource Types
                        Parâmetros e Meta-parâmetros
                        Templates e Definições
                        Classes e Módulos
                        Funções e Condicionais

Tuesday, August 7, 12
Puppet Resource Types
                         Arquivos e Diretórios   Yum Repos

                         Usuários                Augeas

                         Alias                   Hosts

                         Pacotes                 SSH

                         Serviços                Cron

     O puppet oferece 38 tipos de recursos nativos, e você pode estendê-lo.


Tuesday, August 7, 12
Resource Type: Packages
                        Suporte 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


Tuesday, August 7, 12
Resource Type: Services
                        Suporta 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


Tuesday, August 7, 12
Resource Type: File
                        Especifique permissões e
                        owners
                        Declare arquivos,
                        diretórios e links
                        Controle de mudanças
                        usando até 15 tipos de
                        checksums

Tuesday, August 7, 12
Exemplos


Tuesday, August 7, 12
Instala, Configura e Inicia
     debian-way

           # aptitude install apache2
           # update-rc.d -f apache2 defaults
           # cp ~/httpd.conf /etc/apache2/
           # invoke-rc.d apache2 start


Tuesday, August 7, 12
Instala, Configura e Inicia
          package { 'apache2':
            ensure => present,
            }
           
          service { 'apache2':
            ensure => running,
            enable => true,
            }

          file { 'httpd.conf':
            path => “/etc/apache2/httpd.conf”,
            source => “/etc/puppet/files/httpd.conf”,
            }
Tuesday, August 7, 12
Instala, Configura e Inicia
          package { 'apache2':
            ensure => present,
            }                                  resource type
           
          service { 'apache2':
                                                 parameter
            ensure => running,                      title
            enable => true,                        value
            }

          file { 'httpd.conf':
            path => “/etc/apache2/httpd.conf”,
            source => “/etc/puppet/files/httpd.conf”,
            }
Tuesday, August 7, 12
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
                  }

Tuesday, August 7, 12
Declarando um node
            node “servidor.dominio” {
              include linux-server
              include module
            }


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

Tuesday, August 7, 12
Variáveis e Fatos
         Fatos (facter)

         domain            => hacklab,
                                                      Variáveis
         fqdn              => puppetmaster.hacklab,
         hostname          => puppetmaster,
                                                      vimpackage => vim-puppet,
         interfaces        => eth0,eth1,lo,
         ipaddress_eth0    => 10.0.2.15,
                                                      apacheservice => apache2,
         ipaddress_eth1    => 192.168.56.150,
         ipaddress_lo      => 127.0.0.1,
                                                      ntpconfrhel   => ntp.conf.rhel,
         lsbdistid         => debian,
         lsbdistrelease    => 6.0.5,



Tuesday, August 7, 12
Condicionais
                 case $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',
                   }
                 }
                 ....
Tuesday, August 7, 12
Definições
       proxy::squid { 'ProxyFilial' :
           http_port                       => '3128',
           squid_mode                      => 'transparent',
           squid_hostname                  => 'proxy.4linux',
           cache_mem                       => '2 GB',
           maximum_object_size_in_memory   => '6 MB',
           maximum_object_size             => '128 MB',
           memory_replacement_policy       => 'heap GDSF',
           cache_replacement_policy        => 'heap LFUDA',
           cache_dir                       => 'aufs /var/spool/squid 1024 16 256',
           cache_mgr                       => 'monitora@4linux.com.br',
           cache_effective_user            => 'proxy',
           cache_effective_group           => 'proxy',
           dns_nameservers                 => '127.0.0.1 10.61.12.2 172.16.1.1',
           ips_squid                       => '127.0.0.1 192.168.12.3',
         }


Tuesday, August 7, 12
Templates
      Trecho do template postfix/main.cf

     myorigin = <%= hostname %>
     mydestination = $myhostname, ..., localhost, <%= fqdn %>



   Substituição de variáveis por fatos

       myorigin = servidor.dominio
       mydestination = $myhostname, ..., localhost, servidor.dominio



Tuesday, August 7, 12
Como acompanho mudanças?



Tuesday, August 7, 12
Puppet Dashboard




Tuesday, August 7, 12
Posso fazer mudanças em
                               tempo real?


Tuesday, August 7, 12
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


Tuesday, August 7, 12
Qual o resultado concreto?




Tuesday, August 7, 12
Documentação Instantânea




Tuesday, August 7, 12
Restore e backup de mudanças




Tuesday, August 7, 12
Processos bem definidos




Tuesday, August 7, 12
Ambiente Padronizado




Tuesday, August 7, 12
Tarefas Automatizadas




Tuesday, August 7, 12
Benefícios Reais
                        Maior 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
Tuesday, August 7, 12
Tecnologia trabalhando para você




Tuesday, August 7, 12
E a compatibilidade?


Tuesday, August 7, 12
Puppet & Cloud IaaS
                        Cloud Tools (FOSS)   Cloud Hosts




                        Ganeti


Tuesday, August 7, 12
Boas Práticas


Tuesday, August 7, 12
Use API do fornecedor


Tuesday, August 7, 12
Desenvolva sua Infra


Tuesday, August 7, 12
Versione suas configurações



Tuesday, August 7, 12
Reaproveite Código


Tuesday, August 7, 12
GitHub & PuppetForge


Tuesday, August 7, 12
Pesquise!


Tuesday, August 7, 12
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 PM
Tuesday, August 7, 12
4Linux & PuppetLabs
                        1o Parceiro no Brasil

                        Consultores Especializados

                        Cases no Governo Federal

                        Suporte Puppet Enterprise

                        Treinamentos Puppet Master




Tuesday, August 7, 12
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-br




Tuesday, August 7, 12
Perguntas?


Tuesday, August 7, 12
4linux na rede                 Contato
                                   Twitter @gutocarvalho
               Twitter @4linuxBR
                                   jose.carvalho@4linux.com.br
               Facebook /4Linux
                                   slideshare.net/gutocarvalho




                              Obrigado!
Tuesday, August 7, 12
Prestação de serviços em:                  Baseados em:
      - Consultoria - Desenvolvimento          - Softwares Livres
      - Suporte     - Soluções e Aplicativos   - Open Source
      - Projetos    - Treinamento              - Padrões Abertos



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

Tuesday, August 7, 12
Comparando Ferramentas
                        Recursos      Puppet          Chef         CfEngine
                Pull                   Yes            Yes            Yes
                Push                    No            No              No
                Idempotence            Yes            Yes            Yes
                Config 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            Yes


Tuesday, August 7, 12

Weitere ähnliche Inhalte

Andere mochten auch

PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanosCaike Souza
 
Dev ninja -> vagrant + virtualbox + chef-solo + git + ec2
Dev ninja  -> vagrant + virtualbox + chef-solo + git + ec2Dev ninja  -> vagrant + virtualbox + chef-solo + git + ec2
Dev ninja -> vagrant + virtualbox + chef-solo + git + ec2Yros
 
Mini-curso de Linux - SECCOMP 2009
Mini-curso de Linux - SECCOMP 2009Mini-curso de Linux - SECCOMP 2009
Mini-curso de Linux - SECCOMP 2009CI&T
 
Gestão automática de configuração usando puppet
Gestão automática de configuração usando puppetGestão automática de configuração usando puppet
Gestão automática de configuração usando puppetDaniel Sobral
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zeroFred Ramos
 

Andere mochten auch (9)

PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanos
 
Dev ninja -> vagrant + virtualbox + chef-solo + git + ec2
Dev ninja  -> vagrant + virtualbox + chef-solo + git + ec2Dev ninja  -> vagrant + virtualbox + chef-solo + git + ec2
Dev ninja -> vagrant + virtualbox + chef-solo + git + ec2
 
Git Básico
Git BásicoGit Básico
Git Básico
 
Mini-curso de Linux - SECCOMP 2009
Mini-curso de Linux - SECCOMP 2009Mini-curso de Linux - SECCOMP 2009
Mini-curso de Linux - SECCOMP 2009
 
Gestão automática de configuração usando puppet
Gestão automática de configuração usando puppetGestão automática de configuração usando puppet
Gestão automática de configuração usando puppet
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Firewall linux virtual para windows
Firewall linux virtual para windowsFirewall linux virtual para windows
Firewall linux virtual para windows
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 

Ähnlich wie Soluções em TI baseadas em software livre e padrões abertos

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
 
Otimizacao de aplicações Zend Framework
Otimizacao de aplicações Zend FrameworkOtimizacao de aplicações Zend Framework
Otimizacao de aplicações Zend FrameworkElton Minetto
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxElton Minetto
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEJoao Galdino Mello de Souza
 
App Web Escalaveis Fisl
App Web Escalaveis FislApp Web Escalaveis Fisl
App Web Escalaveis FislElton Minetto
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoAllisson Azevedo
 
Cultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develCultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develJose Augusto Carvalho
 
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
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develJose Augusto Carvalho
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Djangofabiocerqueira
 
Novidades Groovy 2.0
Novidades Groovy 2.0Novidades Groovy 2.0
Novidades Groovy 2.0Ismael
 

Ähnlich wie Soluções em TI baseadas em software livre e padrões abertos (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)
 
Oficina Puppet latinoware
Oficina Puppet latinowareOficina Puppet latinoware
Oficina Puppet latinoware
 
Palestra Puppet Hora Livre
Palestra Puppet Hora LivrePalestra Puppet Hora Livre
Palestra Puppet Hora Livre
 
Otimizacao de aplicações Zend Framework
Otimizacao de aplicações Zend FrameworkOtimizacao de aplicações Zend Framework
Otimizacao de aplicações Zend Framework
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - Tchelinux
 
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCEAgenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
Agenda atualizada - 14TH CMG BRASIL PERFORMANCE AND CAPACITY PLANNING CONFERENCE
 
App Web Escalaveis Fisl
App Web Escalaveis FislApp Web Escalaveis Fisl
App Web Escalaveis Fisl
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação Django
 
Cultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develCultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e devel
 
Apresentacao_Puppet
Apresentacao_PuppetApresentacao_Puppet
Apresentacao_Puppet
 
Automação de Ambientes com Puppet
Automação de Ambientes com Puppet Automação de Ambientes com Puppet
Automação de Ambientes com Puppet
 
Alex Vitola
Alex VitolaAlex Vitola
Alex Vitola
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Cucumber and BDD
Cucumber and BDDCucumber and BDD
Cucumber and BDD
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Django
 
Novidades Groovy 2.0
Novidades Groovy 2.0Novidades Groovy 2.0
Novidades Groovy 2.0
 
Puppet overview
Puppet overviewPuppet overview
Puppet overview
 

Mehr von Diego Santos

Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend ServerDiego Santos
 
HTML5 – O que tem de novo?
HTML5 – O que tem de novo?HTML5 – O que tem de novo?
HTML5 – O que tem de novo?Diego Santos
 
Criando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com ZabbixCriando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com ZabbixDiego Santos
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLDiego Santos
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayDiego Santos
 
KDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITKDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITDiego Santos
 
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...Diego Santos
 
Tenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a BonitaTenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a BonitaDiego Santos
 
Socialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo PlatformSocialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo PlatformDiego Santos
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Análise estática de malware com o pev
Análise estática de malware com o pevAnálise estática de malware com o pev
Análise estática de malware com o pevDiego Santos
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosDiego Santos
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!Diego Santos
 
Webcast Tutorial: Análise de dumps de memória no GNU/Linux
Webcast Tutorial: Análise de dumps de memória no GNU/LinuxWebcast Tutorial: Análise de dumps de memória no GNU/Linux
Webcast Tutorial: Análise de dumps de memória no GNU/LinuxDiego Santos
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livreDiego Santos
 

Mehr von Diego Santos (17)

Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend Server
 
HTML5 – O que tem de novo?
HTML5 – O que tem de novo?HTML5 – O que tem de novo?
HTML5 – O que tem de novo?
 
Criando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com ZabbixCriando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com Zabbix
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQL
 
Cloud é Linux
Cloud é LinuxCloud é Linux
Cloud é Linux
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlay
 
KDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITKDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MIT
 
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
 
Tenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a BonitaTenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a Bonita
 
Socialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo PlatformSocialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo Platform
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Análise estática de malware com o pev
Análise estática de malware com o pevAnálise estática de malware com o pev
Análise estática de malware com o pev
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores Efetivos
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!
 
Webcast Tutorial: Análise de dumps de memória no GNU/Linux
Webcast Tutorial: Análise de dumps de memória no GNU/LinuxWebcast Tutorial: Análise de dumps de memória no GNU/Linux
Webcast Tutorial: Análise de dumps de memória no GNU/Linux
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livre
 

Soluções em TI baseadas em software livre e padrões abertos

  • 1. Prestação de serviços em: Baseados em: - Consultoria - Desenvolvimento - Softwares Livres - Suporte - Soluções e Aplicativos - Open Source - Projetos - Treinamento - Padrões Abertos Para construir sua infraestrutura de TI e criar novas soluções de negócio. Tuesday, August 7, 12
  • 2. Gerência de Configurações em Cloud Puppet em ambientes IaaS José Augusto (Guto) Carvalho jose.carvalho@4linux.com.br Tuesday, August 7, 12
  • 3. whoami 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 Há 2 anos trabalhando com gerência de configurações em ambientes virtualizados e clouds privadas em Brasília Tuesday, August 7, 12
  • 4. Puppet em IaaS Tuesday, August 7, 12
  • 5. Plano de Trabalho 40 minutos de apresentação 5 minutos para perguntas Tuesday, August 7, 12
  • 6. Agenda Gerência de Configurações Infraestrutura como Código Puppet como solução de Gerência de Configurações Puppet Arquitetura, Funcionamento e Recursos Perguntas Tuesday, August 7, 12
  • 7. Cloud Computing - Tendência Tuesday, August 7, 12
  • 8. Cloud e seus Benefícios Hiper-escalável Rápida e elástica Abstração de hardware Infraestrutura dinâmica Alta-disponibilidade Investimento atraente Tuesday, August 7, 12
  • 9. Provisionamento Podemos criar 500 VM’s em poucos minutos Tuesday, August 7, 12
  • 10. Como Administrar 500 VM’s? Tuesday, August 7, 12
  • 12. Acesso Secure Shell (ssh)? Tuesday, August 7, 12
  • 13. Host a Host? Tuesday, August 7, 12
  • 14. Quantos SysAdmins são necessários para administrar 500 servidores? Tuesday, August 7, 12
  • 15. Qual a velocidade nas mudanças em seu ambiente? Tuesday, August 7, 12
  • 16. Qual a probabilidade de falhas decorrentes de mudanças manuais? Tuesday, August 7, 12
  • 17. Você consegue manter todo o seu ambiente padronizado? Tuesday, August 7, 12
  • 18. Seu custo com manutenção e equipes técnicas está aumentando? Tuesday, August 7, 12
  • 19. Está difícil colocar suas configurações nos trilhos? Tuesday, August 7, 12
  • 20. Como resolver isto? Como obtenho controle e padronização em meu ambiente ? Tuesday, August 7, 12
  • 28. Puppet Ferramenta de nova geração que implementa gerência de configurações para seu ambiente. Tuesday, August 7, 12
  • 29. Visão Rápida Infraestrutura como código Pare de administrar e comece a desenvolver sua infra Reuse código para gerenciar seu parque com facilidade Linguagem declarativa para descrever configurações (DSL) Tuesday, August 7, 12
  • 30. Sobre a ferramenta Suporte a Linux, BSDs, Solaris e Windows Criado por Luke Kaines (CEO e Fundador) Empresa PuppetLabs mantém a Ferramenta Ferramenta OpenSource (Licença Apache) Recebeu grandes investimentos Empresa oferece Suporte e Versão Enterprise Tuesday, August 7, 12
  • 31. Feito por um SysAdmin para SysAdmins Tuesday, August 7, 12
  • 32. Eficiente para uso DevOps Tuesday, August 7, 12
  • 33. Especificações Escrito em Ruby Extensível usando código Ruby Funciona em modo Autônomo (serverless) Funciona em modo Cliente/Servidor RESTful API Comunicação segura (SSL Certificate) Tuesday, August 7, 12
  • 35. Arquitetura Como funciona o Puppet? Tuesday, August 7, 12
  • 36. Resource Abstraction Layer (RAL) Tuesday, August 7, 12
  • 37. 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 Tuesday, August 7, 12
  • 41. Tratamento de Informações O grande diferencial do Puppet é a forma como ele trata as informações de seus nodes Tuesday, August 7, 12
  • 42. 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 Tuesday, August 7, 12
  • 43. Os dados são inseridos em catálogos pelo master O catálogo é processado pelo node e as modificações são aplicadas de acordo com o que foi declarado. Tuesday, August 7, 12
  • 44. Processamento do Catálogo 1) Agente Requisita Catálogo 1.1) Agente envia Fatos para Master 2) Master Processa Fatos e Compara 2.1) Master Produz e envia Catálogo 3) Node Recebe, Compara e Aplica 4) Node informa estado atual ao Master 5) Sistema reflete catálogo Tuesday, August 7, 12
  • 46. Funcionamento Puppet Configurações Módulos Estáticos Master Voláteis e Dados Camada de Serviços Estruturantes LDAP DNS MONIT SYSLOG Camada de Aplicação JBOSS APACHE MYSQL PGSQL Puppet Agents Tuesday, August 7, 12
  • 47. Puppet Master 8140 TCP 8139 TCP Client SSL Server puppetd -t puppetrun Puppet Client Puppet Visão em Rede Tuesday, August 7, 12
  • 48. Administração IaaS Administrar uma cloud IaaS não é algo complicado Escalabilidade automática é um recurso fantástico Ter elasticidade é fundamental Criar novos servidores é muito fácil Administrar centenas de nodes? Aqui começa a complicar. Tuesday, August 7, 12
  • 49. Quando seu ambiente IaaS começar a crescer demais você vai perceber administrá-lo não é tão simples. Tuesday, August 7, 12
  • 50. Adicionando Novos Nodes ZABBIX NGINX JBOSS POSTGRESQL MEMCACHED Tuesday, August 7, 12
  • 51. Adicionando Novos Nodes ZABBIX NGINX JBOSS POSTGRESQL MEMCACHED Adicionar um novo node representa N mudanças Tuesday, August 7, 12
  • 52. Adicionando Novos Nodes sysadmin-utils ZABBIX zabbix-agent NGINX ntpconf locales JBOSS hosts users POSTGRESQL localmta smtpd vimrc MEMCACHED backup-agent apt-repos Tuesday, August 7, 12
  • 53. Como o Puppet pode ajudar? Automatizando seu ambiente Gerando maior produtividade com menor esforço Padronizando seus nodes logo após a instalação Modificando configurações de forma controlada Tuesday, August 7, 12
  • 54. Insira o Puppet na imagem de instalação de seus nodes. Tuesday, August 7, 12
  • 55. Não tenha medo de realizar atualizações, o puppet faz pra você! Tuesday, August 7, 12
  • 56. Você pode fazer deploy de sua APP Você pode controlar a versão de sua APP Tuesday, August 7, 12
  • 57. Como funciona o modo cliente/servidor? Tuesday, August 7, 12
  • 58. 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 Tuesday, August 7, 12
  • 59. Fluxo Cliente/Servidor Instalação do node Tuesday, August 7, 12
  • 60. Fluxo Cliente/Servidor Instalação do Inicialização node do puppet Tuesday, August 7, 12
  • 61. Fluxo Cliente/Servidor Instalação do Inicialização Geração de node do puppet Certificado Tuesday, August 7, 12
  • 62. Fluxo Cliente/Servidor Instalação do Inicialização Geração de node do puppet Certificado Envio de Certificado Tuesday, August 7, 12
  • 63. Fluxo Cliente/Servidor Instalação do Inicialização Geração de node do puppet Certificado Master Assina Envio de Certificado Certificado Tuesday, August 7, 12
  • 64. Fluxo Cliente/Servidor Instalação do Inicialização Geração de node do puppet Certificado Agente Master Assina Envio de Sincroniza Certificado Certificado Tuesday, August 7, 12
  • 65. Fluxo Cliente/Servidor Instalação do Inicialização Geração de node do puppet Certificado Agente Master Assina Envio de Sincroniza Certificado Certificado Modalidades de Assinatura de Certificado Assinatura pode ser manual Assinatura pode ser automática por domínio Assinatura pode ser automática em qualquer requisição Tuesday, August 7, 12
  • 66. Quais recursos estão disponíveis? Tuesday, August 7, 12
  • 67. Recursos do Puppet Resource Types Parâmetros e Meta-parâmetros Templates e Definições Classes e Módulos Funções e Condicionais Tuesday, August 7, 12
  • 68. Puppet Resource Types Arquivos e Diretórios Yum Repos Usuários Augeas Alias Hosts Pacotes SSH Serviços Cron O puppet oferece 38 tipos de recursos nativos, e você pode estendê-lo. Tuesday, August 7, 12
  • 69. Resource Type: Packages Suporte 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 Tuesday, August 7, 12
  • 70. Resource Type: Services Suporta 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 Tuesday, August 7, 12
  • 71. Resource Type: File Especifique permissões e owners Declare arquivos, diretórios e links Controle de mudanças usando até 15 tipos de checksums Tuesday, August 7, 12
  • 73. Instala, Configura e Inicia debian-way # aptitude install apache2 # update-rc.d -f apache2 defaults # cp ~/httpd.conf /etc/apache2/ # invoke-rc.d apache2 start Tuesday, August 7, 12
  • 74. Instala, Configura e Inicia package { 'apache2': ensure => present, }   service { 'apache2': ensure => running, enable => true, } file { 'httpd.conf': path => “/etc/apache2/httpd.conf”, source => “/etc/puppet/files/httpd.conf”, } Tuesday, August 7, 12
  • 75. Instala, Configura e Inicia package { 'apache2': ensure => present, } resource type   service { 'apache2': parameter ensure => running, title enable => true, value } file { 'httpd.conf': path => “/etc/apache2/httpd.conf”, source => “/etc/puppet/files/httpd.conf”, } Tuesday, August 7, 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 } Tuesday, August 7, 12
  • 77. Declarando um node node “servidor.dominio” { include linux-server include module } node “balancer.dominio” { include linux-server include cyrus::backend include postfix::hub include haproxy::mailproxy } Tuesday, August 7, 12
  • 78. Variáveis e Fatos Fatos (facter) domain => hacklab, Variáveis fqdn => puppetmaster.hacklab, hostname => puppetmaster, vimpackage => vim-puppet, interfaces => eth0,eth1,lo, ipaddress_eth0 => 10.0.2.15, apacheservice => apache2, ipaddress_eth1 => 192.168.56.150, ipaddress_lo => 127.0.0.1, ntpconfrhel => ntp.conf.rhel, lsbdistid => debian, lsbdistrelease => 6.0.5, Tuesday, August 7, 12
  • 79. Condicionais case $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', } } .... Tuesday, August 7, 12
  • 80. Definições proxy::squid { 'ProxyFilial' : http_port => '3128', squid_mode => 'transparent', squid_hostname => 'proxy.4linux', cache_mem => '2 GB', maximum_object_size_in_memory => '6 MB', maximum_object_size => '128 MB', memory_replacement_policy => 'heap GDSF', cache_replacement_policy => 'heap LFUDA', cache_dir => 'aufs /var/spool/squid 1024 16 256', cache_mgr => 'monitora@4linux.com.br', cache_effective_user => 'proxy', cache_effective_group => 'proxy', dns_nameservers => '127.0.0.1 10.61.12.2 172.16.1.1', ips_squid => '127.0.0.1 192.168.12.3', } Tuesday, August 7, 12
  • 81. Templates Trecho do template postfix/main.cf myorigin = <%= hostname %> mydestination = $myhostname, ..., localhost, <%= fqdn %> Substituição de variáveis por fatos myorigin = servidor.dominio mydestination = $myhostname, ..., localhost, servidor.dominio Tuesday, August 7, 12
  • 84. Posso fazer mudanças em tempo real? Tuesday, August 7, 12
  • 85. 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 Tuesday, August 7, 12
  • 86. Qual o resultado concreto? Tuesday, August 7, 12
  • 88. Restore e backup de mudanças Tuesday, August 7, 12
  • 92. Benefícios Reais Maior 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 Tuesday, August 7, 12
  • 93. Tecnologia trabalhando para você Tuesday, August 7, 12
  • 95. Puppet & Cloud IaaS Cloud Tools (FOSS) Cloud Hosts Ganeti Tuesday, August 7, 12
  • 97. Use API do fornecedor Tuesday, August 7, 12
  • 103. 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 PM Tuesday, August 7, 12
  • 104. 4Linux & PuppetLabs 1o Parceiro no Brasil Consultores Especializados Cases no Governo Federal Suporte Puppet Enterprise Treinamentos Puppet Master Tuesday, August 7, 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-br Tuesday, August 7, 12
  • 107. 4linux na rede Contato Twitter @gutocarvalho Twitter @4linuxBR jose.carvalho@4linux.com.br Facebook /4Linux slideshare.net/gutocarvalho Obrigado! Tuesday, August 7, 12
  • 108. Prestação de serviços em: Baseados em: - Consultoria - Desenvolvimento - Softwares Livres - Suporte - Soluções e Aplicativos - Open Source - Projetos - Treinamento - Padrões Abertos Para construir sua infraestrutura de TI e criar novas soluções de negócio. Tuesday, August 7, 12
  • 109. Comparando Ferramentas Recursos Puppet Chef CfEngine Pull Yes Yes Yes Push No No No Idempotence Yes Yes Yes Config 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 Yes Tuesday, August 7, 12