Puppet 3 em 2017

Post on 16-Apr-2017

58 views 2 download

Transcript of Puppet 3 em 2017

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

tacianotres@gmail.com

Upgrading Puppet 3 to Puppet 4:

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