Administracao de sistemas_com_puppet
-
Upload
ramon-mota -
Category
Technology
-
view
1.523 -
download
0
description
Transcript of Administracao de sistemas_com_puppet
![Page 1: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/1.jpg)
Automação e gerenciamento de servidores com puppet
Pedro FilhoRamon Mota
![Page 2: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/2.jpg)
Motivações
o Estudar alternativas para gerenciamento de servidores Requisitos
o Gerir grandes quantidade de máquinaso Minimizar a repetição de tarefaso Trabalhar com diferentes distros e S.Os
O puppet demonstrou ser uma boa alternativa !
![Page 3: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/3.jpg)
Porque não trabalhar com outras ferramentas semelhantes?
Quais os problemas que queremos resolver?
![Page 4: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/4.jpg)
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
![Page 5: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/5.jpg)
Normalmente
o Entrar em cada um dos servidoreso Adicionar o usuário, senha ou par de chaveso 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
Problemaso realizar estas ações em cada servidor - retrabalho o distros ou S.Os diferentes - diferentes abordagenso outros admins podem cometer erros - padronização
Atividades repetitivas...
![Page 6: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/6.jpg)
Com puppet
o Associar um cliente ao servidor mastero Criar um manifest específico para este cliente ou grupo de
clienteso Atualizar o manifest quando necessário
Vantagens
o criar ou editar o manifest uma única vez o abstração de distros (redhat, debian, etc)o outros admins não vão alterar as confs aleatoriamente
Atividades repetitivas...
![Page 7: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/7.jpg)
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)
![Page 8: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/8.jpg)
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árioso pacoteso serviçoso arquivos
![Page 9: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/9.jpg)
Quem suporta puppet?
Linux• CentOS• Debian 3.1 and later• Fedora Core 2-6• Fedora 7 and later• Gentoo Linux• Mandriva Corporate Server 4• RHEL 3 and later• Oracle Linux• SuSE Linux 8 and later• Ubuntu 7.04 and later• ArchLinux
BSD• FreeBSD 4.7 and later• OpenBSD 4.1 and later
Other Unix• Macintosh OS X• Sun Solaris 2.6• Sun Solaris 7 and later• AIX• HP-UX
Windows• Windows (version 2.6.0 and
later)
![Page 10: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/10.jpg)
Afinal, como o puppet trabalha?
![Page 11: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/11.jpg)
ManifestsSã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
![Page 12: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/12.jpg)
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 Package File Service Cron Exec Group
user { 'user_fisl': ensure => present, uid => '507', gid => 'admin', shell => '/bin/bash', home => '/home/fisl',}
# puppet describe [nome_resource]
![Page 13: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/13.jpg)
Facter
#facter
virtual: vmwarememorysize: 250.33 MBis_virtual: truekernelversion: 2.6.26...operatingsystem: Debian
• Desenvolvido pelo PuppetLabs• Lib do puppet para buscar informações de Hardware e SO• Auxilia o desenvolvimento dos Resources
![Page 14: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/14.jpg)
Variaveis e Condicionais
case $operatingsystem { centos, redhat: { $service_name = 'ntpd', } debian, ubuntu: { $service_name = 'ntp', }}
![Page 15: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/15.jpg)
#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,}
![Page 16: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/16.jpg)
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',
}}
![Page 17: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/17.jpg)
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
![Page 18: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/18.jpg)
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
![Page 19: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/19.jpg)
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
![Page 20: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/20.jpg)
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/
![Page 21: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/21.jpg)
Um pouco mais de Puppet...Puppet Scalability
• Integração com o Apache para gerenciamento de SSL
![Page 22: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/22.jpg)
Um pouco mais de Puppet...Modules
• Coleção de Resources, Arquivos, Classes e Templates
• Organização
• Comunidade ativa no desenvolvimento de módulos
![Page 23: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/23.jpg)
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
![Page 24: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/24.jpg)
Um pouco mais de Puppet...Reports
Centralizados no puppetmaster
Por padrão são enviados no formato Yaml
Report Processors• tagmail• rrdgraph• log
![Page 25: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/25.jpg)
Um pouco mais de Puppet...Puppet Dashboard
![Page 26: Administracao de sistemas_com_puppet](https://reader033.fdocuments.net/reader033/viewer/2022052820/54b3710c4a79594b608b4577/html5/thumbnails/26.jpg)
Por onde iniciar / referências
Documentação disponível em, http://docs.puppetlabs.com/
Perguntas?
[email protected]@gmail.com