Administracao de sistemas_com_puppet
Upcoming SlideShare
Loading in...5
×
 

Administracao de sistemas_com_puppet

on

  • 1,457 views

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

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

Statistics

Views

Total Views
1,457
Views on SlideShare
1,457
Embed Views
0

Actions

Likes
0
Downloads
26
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Administracao de sistemas_com_puppet Administracao de sistemas_com_puppet Presentation Transcript

  • Automação e gerenciamento de servidores com puppet Pedro Filho Ramon Mota
  • 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 !
  • 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 -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
  • 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
  • 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 puppettrabalha?
  • 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
  • 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]
  • 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.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,}
  • 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, }}
  • 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 MCollectiveExemplos:• 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...ReportsCentralizados no puppetmasterPor padrão são enviados no formato YamlReport 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