Betere versienummers bij Puppet runs

Written by Ger Apeldoorn on. Posted in Sysadmin

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