Introduction

Puppet est le service de gestion des déploiements d'infrastructure que nous utilisons au sein de l'infrastructure cloud de la Soce. Il permet d'uniformiser nos installations et de pouvoir les reproduire l'infini dans le cadre d'une réinstallation. A noter qu'ormis le système d'exploitation tous les composants de base d'un serveur sont déployé via puppet.

Ce service est interne mais nous pourrons éventuellement publier certains de nos modules afin de les partager avec la communauté Opensource.

Quand consul sera déployé : Puppet est enregistré dans le consul de gadz.org via l'entrée service puppet : puppet.service.consul

 

Notes et liens utiles

Versionner les conf de puppet avec plusieurs environnements: https://puppet.com/blog/git-workflows-puppet-and-r10k

Installation de base

apt-get install puppetmaster puppet
127.0.0.1    puppet

Configuration

 

Le fichier de configuration de puppet est le suivant. Puppet dialogue avec ldap (LDAP-SI) pour authentifier les machines clientes par leurs noms et leurs ips.

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
server=toutatis.gorgu.net

[master]
node_terminus = ldap
ldapserver = ldapsi.service.consul
ldapbase = ou=Hosts,ou=SI,dc=gadz,dc=org
ldapuser = cn=puppetmaster,cn=users,dc=gadz,dc=org
ldappassword = <confidentiel>
environmentpath = /etc/puppet/environment

La gestion des environnements est dynamique c'est a dire que dans le répertoire /etc/puppet/environnement se trouve un clone git par environnement.

Pour les admin chaque environnement correspond a une branche dans le dépôt puppet.git : https://git.gadz.org/git/puppet.git ou git+ssh://git.gadz.org/puppet.git

Nom des modules

Modules installé sur chaque serveur :

 

Package / fonction

Nom module dans puppet

Interne ou url si issue de la forge

sysstat

  

ntp

  

vim

  

htop

  

git

  

openssh serverr + client

ssh

interne

puppet agent

-

 

telegraf

  

collectd

collecd

interne

pam-ldap

ldapuser

interne

sudo-ldap

ldapuser

interne

wget

  

curl

  

dns-utils

  

postfix

  

rsync-backup

  

ldap-utils

ldap-client

interne

nrpe

nrpe

interne

apt-cron

  

locales

  

logrotates

  

zsh

  
vmware-tools  
authorized keys de l’user root sshinterne
Un user local “prod” pour maintenance & sauvegarde  
firewall (netfilter-persistent)firewallinterne
dns via gadz.org