Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

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.

Info

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

Info

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

  • Création du service puppet :

...

Bloc de code
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.

Bloc de code
titlepuppet.conf
[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.

Astuce

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://[email protected]/puppet.git

Nom des modules

Modules installés sur chaque serveur :

 

Package / fonction

Nom module dans puppet

Interne ou url si issue de la forgeStatus
stdlib (puppet lib + ressources pour les modules)puppetlabs-stdlibhttps://forge.puppet.com/puppetlabs/stdlib
État
colourGreen
titleok

sysstat

acme-sysstathttps://forge.puppet.com/acme/sysstat
État
colourYellow
titleTodo

ntp

   

vim

dhoppe-vimhttps://forge.puppet.com/dhoppe/vim
État
colourGreen
titleok

htop

counsyl-syshttps://forge.puppet.com/counsyl/sys
État
colourGreen
titleok

git

counsyl-syshttps://forge.puppet.com/counsyl/sys
État
colourGreen
titleok

openssh serverr + client

ssh

interne
État
colourGreen
titleok

puppet agent

-

  

telegraf

datacentred-telegrafhttps://forge.puppet.com/datacentred/telegraf
État
colourYellow
titleTodo

collectd

collecd

interne
État
colourGreen
titleok

pam-ldap

ldapuser

interne
État
colourGreen
titleok

sudo-ldap

ldapuser

interne
État
colourGreen
titleok

wget

counsyl-syshttps://forge.puppet.com/counsyl/sys
État
colourGreen
titleok

curl

counsyl-syshttps://forge.puppet.com/counsyl/sys
État
colourYellow
titleTodo

dns-utils

   

postfix

dhoppe/postfixhttps://forge.puppet.com/dhoppe/postfix
État
colourYellow
titleTodo

rsync-backup

counsyl-syshttps://forge.puppet.com/counsyl/sys
État
colourYellow
titleTodo

ldap-utils

ldap-client

interne 

nrpe

nrpe

interne
État
colourGreen
titleok

apt-cron

   

locales

saz-localeshttps://forge.puppet.com/saz/locales
État
colourGreen
titleok

logrotates

yo61-logrotatehttps://forge.puppet.com/yo61/logrotate 

zsh

counsyl-syshttps://forge.puppet.com/counsyl/sys
État
colourGreen
titleok
vmware-toolsrazorsedge-vmwaretoolshttps://forge.puppet.com/razorsedge/vmwaretools
État
colourYellow
titleTodo
authorized keys de l’user root sshinterne 
Un user local “prod” pour maintenance & sauvegarde   
firewall (netfilter-persistent)firewallinterne
État
colourGreen
titleok
dns via gadz.org   

Modules installés sur certains serveurs :

Package / fonction

Nom module dans puppet

Interne ou url si issue de la forge
nfs servernfshttps://forge.puppet.com/derdanne/nfs

 

Installation d'un module depuis la forge

Bloc de code
languagebash
puppet module install $NOM_DU_MODULE --environment $ENVIRONEMENT --modulepath /etc/puppet/environment/$ENVIRONEMENT/modules

#exemple :
puppet module install acme-sysstat --environment production --modulepath /etc/puppet/environment/production/modules