35
Puppet 3 (em 2017) A vida como ela é

Puppet 3 em 2017

Embed Size (px)

Citation preview

Page 1: Puppet 3 em 2017

Puppet 3 (em 2017)

A vida como ela é

Page 2: Puppet 3 em 2017

Taciano TresAnalista de sistemas

Desenvolvedor Java

Administrador de sistemas

Desenvolvedor de infraestrutura

Page 3: Puppet 3 em 2017

Puppet 3 Fim do suporte: 31/12/2016

Page 4: Puppet 3 em 2017

Infra atualProva de conceito

3 Puppet Master 3.8.4

3 PuppetDB 1.5.2

3 Foreman 1.11

Page 5: Puppet 3 em 2017

Tamanho do problema

Quantidade de VMs x86

Windows-Puppet: 1250

GNU/Linux+Puppet: 4000

GNU/Linux-Puppet: 2150

Page 6: Puppet 3 em 2017

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

Page 7: Puppet 3 em 2017

DependênciasFacter

Yum/Zypper/Apt-get

`df -h`

`df -i`

Page 8: Puppet 3 em 2017

Red Hat Enterprise Linuxa.k.a. RHEL

Page 9: Puppet 3 em 2017

RHEL 77.{2..3}

Puppet 3.8

Facter 2.4.6

Page 10: Puppet 3 em 2017

RHEL 66.{2..9}

Puppet 3.8

Facter 2.4.6

Page 11: Puppet 3 em 2017

RHEL 55.{9..11}

Puppet 3.4.2

Facter 2.4.6

Page 12: Puppet 3 em 2017

SuSE Linux Enterprise Servera.k.a SLES

Page 13: Puppet 3 em 2017

SLES 12SP {0..2}

Puppet 3.8.5

Facter 2.0.2

Page 14: Puppet 3 em 2017

SLES 11SP {1..4}

Puppet 3.7

Facter 2.0.2

Page 15: Puppet 3 em 2017

Outras questões

Page 16: Puppet 3 em 2017

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',

}

Page 17: Puppet 3 em 2017

Clone WarsUma VM foi clonada. 'n' vezes.

Mesmo 'certname'

Mesmo certificado SSL

Requisita catálogo '2n' vezes por hora

Page 18: Puppet 3 em 2017

Nem tudo está perdido

Page 19: Puppet 3 em 2017

ConsideraçõesAntes da migração

PuppetDB

Environments

Revisão dos módulos internos

Mudanças no parser

Fatos como tipos (não strings)

Page 20: Puppet 3 em 2017

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)

Page 21: Puppet 3 em 2017

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)

Page 22: Puppet 3 em 2017

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)

Page 23: Puppet 3 em 2017

Provisionando a nova infra (com puppet)

Page 24: Puppet 3 em 2017

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

Page 25: Puppet 3 em 2017

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

Page 26: Puppet 3 em 2017

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}

Page 27: Puppet 3 em 2017

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}

Page 28: Puppet 3 em 2017

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}

Page 29: Puppet 3 em 2017

r10kAutomatizando deploy de

módulos

2 control repo no GitLab

1 Puppet Server CA

production

6 Puppet Server

des, hom, piloto, prd

Page 30: Puppet 3 em 2017

Relações

Puppet Server + CA + r10k

6 Puppet Server - CA + r10k

2 PuppetDB

2 Foreman

* agentes

Page 31: Puppet 3 em 2017

Novos problemas

Page 32: Puppet 3 em 2017

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

Page 33: Puppet 3 em 2017

Vantagens

Puppet gerenciando Puppet

Versões atuais dos pacotes

Ferramentas mais performáticas

Módulos testados pela comunidade

Infra com redundância

Page 34: Puppet 3 em 2017

Obrigado!

Page 35: Puppet 3 em 2017

Sugestões de leitura

Contatos:@tacianot

[email protected]

Upgrading Puppet 3 to Puppet 4:

https://engineering.skroutz.gr/blog/upgrading-puppet3-to-puppet4/