Upload
taciano-tres
View
58
Download
2
Embed Size (px)
Citation preview
Puppet 3 (em 2017)
A vida como ela é
Taciano TresAnalista de sistemas
Desenvolvedor Java
Administrador de sistemas
Desenvolvedor de infraestrutura
Puppet 3 Fim do suporte: 31/12/2016
Infra atualProva de conceito
3 Puppet Master 3.8.4
3 PuppetDB 1.5.2
3 Foreman 1.11
Tamanho do problema
Quantidade de VMs x86
Windows-Puppet: 1250
GNU/Linux+Puppet: 4000
GNU/Linux-Puppet: 2150
VersõesAgente
Primórdios: 0.23, 0.24, 0.25
v2.x: 2.6, 2.7
v3.x: 3.0, … , 3.4, … , 3.7, 3.8
v4.x: 4.0, … , 4.9
v5.x: Maio/2017
DependênciasFacter
Yum/Zypper/Apt-get
`df -h`
`df -i`
Red Hat Enterprise Linuxa.k.a. RHEL
RHEL 77.{2..3}
Puppet 3.8
Facter 2.4.6
RHEL 66.{2..9}
Puppet 3.8
Facter 2.4.6
RHEL 55.{9..11}
Puppet 3.4.2
Facter 2.4.6
SuSE Linux Enterprise Servera.k.a SLES
SLES 12SP {0..2}
Puppet 3.8.5
Facter 2.0.2
SLES 11SP {1..4}
Puppet 3.7
Facter 2.0.2
Outras questões
MódulosLista de 'exec'
exec { descompactar':
command => 'unzip instalador.zip',
unless => 'test -d /tmp/dir',
path => '/sbin:/bin:/usr/bin',
}
exec { 'instalar':
command => '/tmp/dir/install.sh',
depends => Exec['exec1'],
path => '/sbin:/bin:/usr/bin',
}
Clone WarsUma VM foi clonada. 'n' vezes.
Mesmo 'certname'
Mesmo certificado SSL
Requisita catálogo '2n' vezes por hora
Nem tudo está perdido
ConsideraçõesAntes da migração
PuppetDB
Environments
Revisão dos módulos internos
Mudanças no parser
Fatos como tipos (não strings)
ConsideraçõesAntes da migração
PuppetDB: não migrar
Environments
Revisão dos módulos internos
Mudanças no parser
Fatos como tipos (não strings)
ConsideraçõesAntes da migração
PuppetDB: não migrar
Environments
Revisão dos módulos internos
Mudanças no parser
Fatos como tipos (não strings)
ConsideraçõesAntes da migração
PuppetDB: não migrar
Environments
Revisão dos módulos internos
Mudanças no parser
Fatos como tipos (não strings)
Provisionando a nova infra (com puppet)
Puppet 4Nova infra
baseada no PE 2016.5
puppet-agent 1.8.3
8 puppetserver 2.6.0
2 PuppetDB 4.2.5
2 Foreman 1.14
Puppet CA
Configurar novos repositórios
Instalar agente 4.8
puppet module install --skip-dependencies <nome>.tar.gz
Criar manifesto básico
puppet apply -e 'include profile::puppet::ca_startup'
puppet agent -t
puppet cert sign --allow-dns-alt-names puppetca001
Puppet Server{1..6}
Configurar novos repositórios
Instalar agente 4.8
puppet agent -t --server puppetca --dns-alt-names puppet
puppet cert sign --allow-dns-alt-names puppetsr00{1..6}
PuppetDB{1..2}
Configurar novos repositórios
Instalar agente 4.8
puppet agent -t --server puppet --dns-alt-names puppetdb
puppet cert sign --allow-dns-alt-names puppetdb00{1..2}
Foreman{1..2}
Configurar novos repositórios
Instalar agente 4.8
puppet agent -t --server puppet --dns-alt-names foreman
puppet cert sign --allow-dns-alt-names puppetmn00{1..2}
r10kAutomatizando deploy de
módulos
2 control repo no GitLab
1 Puppet Server CA
production
6 Puppet Server
des, hom, piloto, prd
Relações
Puppet Server + CA + r10k
6 Puppet Server - CA + r10k
2 PuppetDB
2 Foreman
* agentes
Novos problemas
Migração3.x → 4.x
service puppet stop
rm -rf /var/lib/puppet/ssl
yum remove facter puppet
yum install puppet-agent-1.8.3
puppet agent -t --server puppet --ca_server puppetca
Vantagens
Puppet gerenciando Puppet
Versões atuais dos pacotes
Ferramentas mais performáticas
Módulos testados pela comunidade
Infra com redundância
Obrigado!
Sugestões de leitura
Contatos:@tacianot
Upgrading Puppet 3 to Puppet 4:
https://engineering.skroutz.gr/blog/upgrading-puppet3-to-puppet4/