SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Automação e gerenciamento
 de servidores com puppet

                 Pedro Filho
                Ramon Mota
Motivações

   o   Estudar alternativas para gerenciamento de servidores

Requisitos

   o   Gerir grandes quantidade de máquinas
   o   Minimizar a repetição de tarefas
   o   Trabalhar com diferentes distros e S.Os


         O puppet demonstrou ser uma boa alternativa !
Porque não trabalhar com outras ferramentas
               semelhantes?
                       

 Quais os problemas que queremos resolver?
Atividades repetitivas...


  o   Criar e manter um usuário ativo em um grupo de servidores

  o   Manter os pacotes do serviço NTP sempre instalados e o serviço
      rodando

  o   Manter o firewall local dos servidores sempre ativos com as
      corretas regras de filtragem de pacotes
Atividades repetitivas...
Normalmente

   o   Entrar em cada um dos servidores
   o   Adicionar o usuário, senha ou par de chaves
   o   Verificar se os pacotes estão instalados

  #rpm -q ntp
  #dpkg -l ntp

   o   Verificar se as regras de iptables foram ativadas e se estão corretamente
       aplicadas

  #iptables -nvL

Problemas
   o   realizar estas ações em cada servidor - retrabalho
   o   distros ou S.Os diferentes - diferentes abordagens
   o   outros admins podem cometer erros - padronização
Atividades repetitivas...
Com puppet

   o   Associar um cliente ao servidor master
   o   Criar um manifest específico para este cliente ou grupo de
       clientes
   o   Atualizar o manifest quando necessário

Vantagens

   o                         uma única vez
       criar ou editar o manifest
   o abstração de distros (redhat, debian, etc)
   o outros admins não vão alterar as confs aleatoriamente
Porque usar o puppet?

•   Para reduzir o tempo gasto com atividades repetitivas
•   Para manter arquivos de configuração padronizados
•   Para gerenciar diferentes distros e S.Os
•   Porque o puppet fornece um poderoso framework que
    simplifica uma série de tarefas (linhas de comando)
O puppet
• ferramenta que proporciona a automação das atividades
• baseado em Ruby
• fornece uma abstração entre os administradores e os
  sistemas gerenciados
• linguagem simples que se baseia na especificação de
  elementos do S.O, como:
    o usuários
    o pacotes
    o serviços
    o arquivos
Quem suporta puppet?
Linux                             BSD
•   CentOS                        • FreeBSD 4.7 and later
•   Debian 3.1 and later          • OpenBSD 4.1 and later
•   Fedora Core 2-6               Other Unix
•   Fedora 7 and later            •   Macintosh OS X
•   Gentoo Linux                  •   Sun Solaris 2.6
•   Mandriva Corporate Server 4   •   Sun Solaris 7 and later
•   RHEL 3 and later              •   AIX
•   Oracle Linux                  •   HP-UX
•   SuSE Linux 8 and later
•   Ubuntu 7.04 and later         Windows
•   ArchLinux                     • Windows (version 2.6.0 and
                                    later)
Afinal, como o puppet
trabalha?
Manifests
São arquivos de configuração do puppet usados na gerência
de seus clientes, estes contém:

   o   Variados tipos de resources;
   o   Variáveis;
   o   Expressões de condição;
   o   Importação de outros manifests;
   o   Definição de classes;




                                         Arquivo.pp
Resource
• Conjunto funções ou objetos que definem as ações à serem
  tomadas;
• RAL (Resource Abstraction Layer) é responsável pela
  interoperabilidade entre sistemas

Tipos:                   user { 'user_fisl':
 User                        ensure =>    present,
 Package                     uid    =>    '507',
 File                        gid    =>    'admin',
                             shell  =>    '/bin/bash',
 Service                     home   =>    '/home/fisl',
 Cron                    }
 Exec
 Group
             # puppet describe [nome_resource]
Facter
• Desenvolvido pelo PuppetLabs
• Lib do puppet para buscar informações de Hardware e SO
• Auxilia o desenvolvimento dos Resources

  #facter

  virtual: vmware
  memorysize: 250.33 MB
  is_virtual: true
  kernelversion: 2.6.26
  ...
  operatingsystem: Debian
Variaveis e Condicionais

 case $operatingsystem {
     centos, redhat: {
         $service_name = 'ntpd',
     }
     debian, ubuntu: {
         $service_name = 'ntp',
     }
 }
#cat ntp.pp

case $operatingsystem {
    centos, redhat: {
        $service_name = 'ntpd'
        $conf_file = 'ntp.conf.rhel'
    }
    debian, ubuntu: {
        $service_name = 'ntp'
        $conf_file = 'ntp.conf.debian'
    }
}
package { 'ntp':
    ensure =>     installed,
}

file     { '/etc/ntp.conf':
       ensure =>     file,
       require =>    Package['ntp'],
       source =>     "puppet:///modules/ntp/$conf_file",
}
service { '$service_name':
    ensure =>     running,
    enable =>     true,
}
Como aplicar o manifest ao cliente?

# vim /etc/puppet/manifests/site.pp

node 'cliente.exemplo.com'          {

    import 'ntp.pp'
    include ssh

    user       { 'user_fisl':
         ensure    =>    present,
         uid       =>    '507',
         gid       =>    'admin',
         shell     =>    '/bin/bash',
         home      =>    '/home/fisl',
     }
}
Instalação

• Através de tarball ou RubyGems
• Via gerenciamento de pacotes

• Pré-requisito:
   o Instalação do ruby e openssl
       ruby
       libshadow-ruby
       libopenssl-ruby
       openssl

  o   Instalação do fact;
        biblioteca desenvolvido pelo puppet labs
Configurando
• Definições DNS:
  o puppet.exemplo.com        =   Puppet Master (Server)

 • Gerando o arquivo de configuração:
#puppetmaster --genconfig         (Para o puppet master)
#puppet --genconfig              (Para o puppet client)

• Arquivos de certificados e usuário do daemon do puppet
#puppet master    --mkusers
Adicionando um puppet
 agent no puppet master

• No cliente:

#puppet agent --server puppet.exemplo.com --waitforcert 60
--test

• No server:

#puppet cert --list
#puppet cert --sing   cliente01.exemplo.com
Retirando o puppet agent

• Exclui o certificado do client no server.

#rm -f /etc/puppet/ssl/ca/signed/cliente01.exemplo.com



• Para reassinar o cliente:

#rm -rf /etc/puppet/ssl/
Um pouco mais de Puppet...
Puppet Scalability
• Integração com o Apache para gerenciamento de SSL
Um pouco mais de Puppet...
Modules
• Coleção de Resources, Arquivos, Classes e Templates

• Organização

• Comunidade ativa no desenvolvimento de módulos
Um pouco mais de Puppet...
Marionette MCollective
Exemplos:

• Quais servidores tem 32 GB de memória?

• Quantos servidores estão on-line?

• Permite realizar um deploy nos clients em tempo real
Um pouco mais de Puppet...
Reports

Centralizados no puppetmaster

Por padrão são enviados no formato Yaml

Report Processors
• tagmail
• rrdgraph
• log
Um pouco mais de Puppet...
Puppet Dashboard
Por onde iniciar / referências


 Documentação disponível em, http://docs.puppetlabs.com/




                     Perguntas?



                  ramonmsf@gmail.com
                 pedro.filho.jp@gmail.com

Más contenido relacionado

La actualidad más candente

Combo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linuxCombo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linuxVideo Aulas Linux e Mikrotik
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiFrancisco Gonçalves
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 
Containers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteContainers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteRoberto Mello
 
PostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaPostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaFabio Telles Rodriguez
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de ProgramasFrederico Madeira
 
Sistemas operacionais de rede exercicio de sala
Sistemas operacionais de rede exercicio de salaSistemas operacionais de rede exercicio de sala
Sistemas operacionais de rede exercicio de salaCarlos Melo
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Fabrízio Mello
 
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
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxyFernando Ike
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - AmbientesDirceu Belém
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaLucas Brasilino
 
Tópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster BeowulfTópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster BeowulfLuiz Arthur
 

La actualidad más candente (20)

Node JS - Parte 3
Node JS - Parte 3Node JS - Parte 3
Node JS - Parte 3
 
Combo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linuxCombo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linux
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 
Containers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteContainers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container Suite
 
Trab linux+sarg
Trab linux+sargTrab linux+sarg
Trab linux+sarg
 
PostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaPostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manada
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Puppet overview
Puppet overviewPuppet overview
Puppet overview
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Sistemas operacionais de rede exercicio de sala
Sistemas operacionais de rede exercicio de salaSistemas operacionais de rede exercicio de sala
Sistemas operacionais de rede exercicio de sala
 
Node JS - Parte 4
Node JS - Parte 4Node JS - Parte 4
Node JS - Parte 4
 
Proftpd
ProftpdProftpd
Proftpd
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
 
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...
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxy
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
 
Tópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster BeowulfTópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster Beowulf
 

Destacado

Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosEduardo Legatti
 
131444591 97430634-apostila-468-zabbix
131444591 97430634-apostila-468-zabbix131444591 97430634-apostila-468-zabbix
131444591 97430634-apostila-468-zabbixRodrigo Souza
 
Gnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USPGnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USPWellington Silva
 
Criando um baseline de seu ambiente completo utilizando ssis e ssrs
Criando um baseline de seu ambiente completo utilizando ssis e ssrsCriando um baseline de seu ambiente completo utilizando ssis e ssrs
Criando um baseline de seu ambiente completo utilizando ssis e ssrsMarcos Freccia
 
Palestra ganeti puppet
Palestra ganeti puppetPalestra ganeti puppet
Palestra ganeti puppetDaniel Sobral
 
Planejamento de Sac 2.0: do começo ao fim
Planejamento de Sac 2.0: do começo ao fimPlanejamento de Sac 2.0: do começo ao fim
Planejamento de Sac 2.0: do começo ao fimElife Brasil
 
Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3suk kim
 
Workshop SQL Server 2012
Workshop SQL Server 2012Workshop SQL Server 2012
Workshop SQL Server 2012Viviane_ribeiro
 
JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.Eduardo Medeiros
 
Monitoramento de Redes com Nagios
Monitoramento de Redes com NagiosMonitoramento de Redes com Nagios
Monitoramento de Redes com NagiosDaniel Lara
 
Implantação do Windows Server 2008 R2
Implantação do Windows Server 2008 R2Implantação do Windows Server 2008 R2
Implantação do Windows Server 2008 R2Fabio Hara
 
Codificando Night Week 2017 - Migrando seu banco de dados para a nuvem
Codificando Night Week 2017 - Migrando seu banco de dados para a nuvemCodificando Night Week 2017 - Migrando seu banco de dados para a nuvem
Codificando Night Week 2017 - Migrando seu banco de dados para a nuvemMarcos Freccia
 

Destacado (17)

Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - Nagios
 
Treinamento DBA Essential
Treinamento DBA EssentialTreinamento DBA Essential
Treinamento DBA Essential
 
131444591 97430634-apostila-468-zabbix
131444591 97430634-apostila-468-zabbix131444591 97430634-apostila-468-zabbix
131444591 97430634-apostila-468-zabbix
 
Gnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USPGnu/Linux - Workshop EACH-USP
Gnu/Linux - Workshop EACH-USP
 
Criando um baseline de seu ambiente completo utilizando ssis e ssrs
Criando um baseline de seu ambiente completo utilizando ssis e ssrsCriando um baseline de seu ambiente completo utilizando ssis e ssrs
Criando um baseline de seu ambiente completo utilizando ssis e ssrs
 
Palestra ganeti puppet
Palestra ganeti puppetPalestra ganeti puppet
Palestra ganeti puppet
 
Planejamento de Sac 2.0: do começo ao fim
Planejamento de Sac 2.0: do começo ao fimPlanejamento de Sac 2.0: do começo ao fim
Planejamento de Sac 2.0: do começo ao fim
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3Oracle database 12 c on oracle linux 7.3
Oracle database 12 c on oracle linux 7.3
 
Workshop SQL Server 2012
Workshop SQL Server 2012Workshop SQL Server 2012
Workshop SQL Server 2012
 
JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.JBUG Brasil - Desvendando as features do WildFly.
JBUG Brasil - Desvendando as features do WildFly.
 
Monitoramento de Redes com Nagios
Monitoramento de Redes com NagiosMonitoramento de Redes com Nagios
Monitoramento de Redes com Nagios
 
Implantação do Windows Server 2008 R2
Implantação do Windows Server 2008 R2Implantação do Windows Server 2008 R2
Implantação do Windows Server 2008 R2
 
Treinamento RMAN Workshop 12c
Treinamento RMAN Workshop 12cTreinamento RMAN Workshop 12c
Treinamento RMAN Workshop 12c
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
12c on RHEL7
12c on RHEL712c on RHEL7
12c on RHEL7
 
Codificando Night Week 2017 - Migrando seu banco de dados para a nuvem
Codificando Night Week 2017 - Migrando seu banco de dados para a nuvemCodificando Night Week 2017 - Migrando seu banco de dados para a nuvem
Codificando Night Week 2017 - Migrando seu banco de dados para a nuvem
 

Similar a Automatize e padronize servidores com Puppet

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
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Oficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar ConfiguraçõesOficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar ConfiguraçõesJose Augusto Carvalho
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...Renato Groff
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...Renato Groff
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux DayFábio Albuquerque
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Renato Groff
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaSoftD Abreu
 

Similar a Automatize e padronize servidores com Puppet (20)

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
 
Consegi 2011: Puppet
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
 
Puppet webcast 4linux
Puppet webcast 4linuxPuppet webcast 4linux
Puppet webcast 4linux
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Igor Oliveira - Puppet
Igor Oliveira - PuppetIgor Oliveira - Puppet
Igor Oliveira - Puppet
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Oficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar ConfiguraçõesOficina Puppet - Aprenda a Gerenciar Configurações
Oficina Puppet - Aprenda a Gerenciar Configurações
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux Day
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Gentoo
GentooGentoo
Gentoo
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresa
 

Automatize e padronize servidores com Puppet

  • 1. Automação e gerenciamento de servidores com puppet Pedro Filho Ramon Mota
  • 2. Motivações o Estudar alternativas para gerenciamento de servidores Requisitos o Gerir grandes quantidade de máquinas o Minimizar a repetição de tarefas o Trabalhar com diferentes distros e S.Os O puppet demonstrou ser uma boa alternativa !
  • 3. Porque não trabalhar com outras ferramentas semelhantes?   Quais os problemas que queremos resolver?
  • 4. Atividades repetitivas... o Criar e manter um usuário ativo em um grupo de servidores o Manter os pacotes do serviço NTP sempre instalados e o serviço rodando o Manter o firewall local dos servidores sempre ativos com as corretas regras de filtragem de pacotes
  • 5. Atividades repetitivas... Normalmente o Entrar em cada um dos servidores o Adicionar o usuário, senha ou par de chaves o Verificar se os pacotes estão instalados #rpm -q ntp #dpkg -l ntp o Verificar se as regras de iptables foram ativadas e se estão corretamente aplicadas #iptables -nvL Problemas o realizar estas ações em cada servidor - retrabalho o distros ou S.Os diferentes - diferentes abordagens o outros admins podem cometer erros - padronização
  • 6. Atividades repetitivas... Com puppet o Associar um cliente ao servidor master o Criar um manifest específico para este cliente ou grupo de clientes o Atualizar o manifest quando necessário Vantagens o uma única vez criar ou editar o manifest o abstração de distros (redhat, debian, etc) o outros admins não vão alterar as confs aleatoriamente
  • 7. Porque usar o puppet? • Para reduzir o tempo gasto com atividades repetitivas • Para manter arquivos de configuração padronizados • Para gerenciar diferentes distros e S.Os • Porque o puppet fornece um poderoso framework que simplifica uma série de tarefas (linhas de comando)
  • 8. O puppet • ferramenta que proporciona a automação das atividades • baseado em Ruby • fornece uma abstração entre os administradores e os sistemas gerenciados • linguagem simples que se baseia na especificação de elementos do S.O, como: o usuários o pacotes o serviços o arquivos
  • 9. Quem suporta puppet? Linux BSD • CentOS • FreeBSD 4.7 and later • Debian 3.1 and later • OpenBSD 4.1 and later • Fedora Core 2-6 Other Unix • Fedora 7 and later • Macintosh OS X • Gentoo Linux • Sun Solaris 2.6 • Mandriva Corporate Server 4 • Sun Solaris 7 and later • RHEL 3 and later • AIX • Oracle Linux • HP-UX • SuSE Linux 8 and later • Ubuntu 7.04 and later Windows • ArchLinux • Windows (version 2.6.0 and later)
  • 10. Afinal, como o puppet trabalha?
  • 11. Manifests São arquivos de configuração do puppet usados na gerência de seus clientes, estes contém: o Variados tipos de resources; o Variáveis; o Expressões de condição; o Importação de outros manifests; o Definição de classes; Arquivo.pp
  • 12. Resource • Conjunto funções ou objetos que definem as ações à serem tomadas; • RAL (Resource Abstraction Layer) é responsável pela interoperabilidade entre sistemas Tipos: user { 'user_fisl': User ensure => present, Package uid => '507', File gid => 'admin', shell => '/bin/bash', Service home => '/home/fisl', Cron } Exec Group # puppet describe [nome_resource]
  • 13. Facter • Desenvolvido pelo PuppetLabs • Lib do puppet para buscar informações de Hardware e SO • Auxilia o desenvolvimento dos Resources #facter virtual: vmware memorysize: 250.33 MB is_virtual: true kernelversion: 2.6.26 ... operatingsystem: Debian
  • 14. Variaveis e Condicionais case $operatingsystem { centos, redhat: { $service_name = 'ntpd', } debian, ubuntu: { $service_name = 'ntp', } }
  • 15. #cat ntp.pp case $operatingsystem { centos, redhat: { $service_name = 'ntpd' $conf_file = 'ntp.conf.rhel' } debian, ubuntu: { $service_name = 'ntp' $conf_file = 'ntp.conf.debian' } } package { 'ntp': ensure => installed, } file { '/etc/ntp.conf': ensure => file, require => Package['ntp'], source => "puppet:///modules/ntp/$conf_file", } service { '$service_name': ensure => running, enable => true, }
  • 16. Como aplicar o manifest ao cliente? # vim /etc/puppet/manifests/site.pp node 'cliente.exemplo.com' { import 'ntp.pp' include ssh user { 'user_fisl': ensure => present, uid => '507', gid => 'admin', shell => '/bin/bash', home => '/home/fisl', } }
  • 17. Instalação • Através de tarball ou RubyGems • Via gerenciamento de pacotes • Pré-requisito: o Instalação do ruby e openssl  ruby  libshadow-ruby  libopenssl-ruby  openssl o Instalação do fact;  biblioteca desenvolvido pelo puppet labs
  • 18. Configurando • Definições DNS: o puppet.exemplo.com = Puppet Master (Server) • Gerando o arquivo de configuração: #puppetmaster --genconfig (Para o puppet master) #puppet --genconfig (Para o puppet client) • Arquivos de certificados e usuário do daemon do puppet #puppet master --mkusers
  • 19. Adicionando um puppet agent no puppet master • No cliente: #puppet agent --server puppet.exemplo.com --waitforcert 60 --test • No server: #puppet cert --list #puppet cert --sing cliente01.exemplo.com
  • 20. Retirando o puppet agent • Exclui o certificado do client no server. #rm -f /etc/puppet/ssl/ca/signed/cliente01.exemplo.com • Para reassinar o cliente: #rm -rf /etc/puppet/ssl/
  • 21. Um pouco mais de Puppet... Puppet Scalability • Integração com o Apache para gerenciamento de SSL
  • 22. Um pouco mais de Puppet... Modules • Coleção de Resources, Arquivos, Classes e Templates • Organização • Comunidade ativa no desenvolvimento de módulos
  • 23. Um pouco mais de Puppet... Marionette MCollective Exemplos: • Quais servidores tem 32 GB de memória? • Quantos servidores estão on-line? • Permite realizar um deploy nos clients em tempo real
  • 24. Um pouco mais de Puppet... Reports Centralizados no puppetmaster Por padrão são enviados no formato Yaml Report Processors • tagmail • rrdgraph • log
  • 25. Um pouco mais de Puppet... Puppet Dashboard
  • 26. Por onde iniciar / referências Documentação disponível em, http://docs.puppetlabs.com/ Perguntas? ramonmsf@gmail.com pedro.filho.jp@gmail.com