Administracao de sistemas_com_puppet

1,435 views

Published on

Palestra apresentada no fisl12 (02/07/2011) na PUCRS - POA - RS.

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

  • Be the first to like this

No Downloads
Views
Total views
1,435
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
36
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Administracao de sistemas_com_puppet

  1. 1. Automação e gerenciamento de servidores com puppet Pedro Filho Ramon Mota
  2. 2. Motivações o Estudar alternativas para gerenciamento de servidoresRequisitos 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. 3. Porque não trabalhar com outras ferramentas semelhantes?   Quais os problemas que queremos resolver?
  4. 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. 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 -nvLProblemas 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. 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árioVantagens 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. 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. 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. 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. 10. Afinal, como o puppettrabalha?
  11. 11. ManifestsSão arquivos de configuração do puppet usados na gerênciade 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. 12. Resource• Conjunto funções ou objetos que definem as ações à serem tomadas;• RAL (Resource Abstraction Layer) é responsável pela interoperabilidade entre sistemasTipos: 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. 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. 14. Variaveis e Condicionais case $operatingsystem { centos, redhat: { $service_name = ntpd, } debian, ubuntu: { $service_name = ntp, } }
  15. 15. #cat ntp.ppcase $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. 16. Como aplicar o manifest ao cliente?# vim /etc/puppet/manifests/site.ppnode cliente.exemplo.com { import ntp.pp include ssh user { user_fisl: ensure => present, uid => 507, gid => admin, shell => /bin/bash, home => /home/fisl, }}
  17. 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. 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. 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. 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. 21. Um pouco mais de Puppet...Puppet Scalability• Integração com o Apache para gerenciamento de SSL
  22. 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. 23. Um pouco mais de Puppet...Marionette MCollectiveExemplos:• Quais servidores tem 32 GB de memória?• Quantos servidores estão on-line?• Permite realizar um deploy nos clients em tempo real
  24. 24. Um pouco mais de Puppet...ReportsCentralizados no puppetmasterPor padrão são enviados no formato YamlReport Processors• tagmail• rrdgraph• log
  25. 25. Um pouco mais de Puppet...Puppet Dashboard
  26. 26. Por onde iniciar / referências Documentação disponível em, http://docs.puppetlabs.com/ Perguntas? ramonmsf@gmail.com pedro.filho.jp@gmail.com

×