Betere versienummers bij Puppet runs
Bij elke Puppetrun wordt er een configuratieversie getoont, dit is een nummer gebaseerd op datum/tijd.
Voorbeeld:
# puppet agent -t info: Retrieving plugin ----%<---- info: Caching catalog for web99.puppetspecialist.nl info: Applying configuration version '126374558'
Aangezien wij onze manifests en hiera-data met Git beheren (en die met tags uitrollen) kunnen we daar natuurlijk beter iets aan koppelen waar we wat aan hebben:
# puppet agent -t info: Retrieving plugin ----%<---- info: Caching catalog for web99.puppetspecialist.nl info: Applying configuration version '3.18.0/1.11.0/development'
Zoals je hierboven kunt zien is het versienummer uit 3 componenten opgebouwd:
- Tag Manifests
- Tag Hieradata
- Environment
Daar heb je tenminste wat aan!
Om dit voorelkaar te krijgen, moeten we een paar handelingen verrichten:
- Script plaatsen
- Configuratie Puppet Master aanpassen
- Puppet Master restarten
Script
Maak een scriptje aan (/etc/puppetlabs/puppet/version.sh) met de volgende inhoud:
#!/bin/bash MANVER=$(git --git-dir=/etc/puppetlabs/puppet/environments/$1/.git describe --tags) DATVER=$(git --git-dir=/etc/puppetlabs/puppet/environments/$1_data/.git describe --tags) echo "$MANVER/$DATVER/$1"
Maak hem executable:
chmod +x /etc/puppetlabs/puppet/version.sh
Configuratie Puppet Master
Voeg aan /etc/puppetlabs/puppet/puppet.conf het volgende regeltje toe onder [main].
config_version = /etc/puppetlabs/puppet/version.sh $environment
Restart Puppet Master
Als laatste restarten we nog even de PUppet Master om de configuratiewijziging te activeren:
/etc/init.d/pe-httpd restart
Labels:best-practices, git, howto, techniek, verder