Puppet infrastructuur

Puppet is een opensouce configuratie management tool. Hierdoor kan geautomatiseerd een geheel systeem installeren en configureren. Tevens kan het informatie tussen de puppet agents delen via een database.

Hierdoor krijg je een krachtig server  provisioning systeem.

Door de toevoeging van subversion krijg de kracht van het version systeem.

Hierdoor kan je in een wijziging van een bepaalde server eerst uittesten in een lab voordat je de wijziging activeert in de productie.

Doordat middels puppet het erg gemakkelijk is om informatie te delen en deze te hergebruiken op een andere server. Is het mogelijk om een mechanisme te creëren waarbij de servers met elkaar samen te werken.

In het bovenstaande infrastructuur diagram zijn de componenten zichtbaar die de kracht van puppet mogelijk maken.

Puppet agent

Puppet agent is een applicatie die als een service actief is op de server, middels een puppet recept waarin staat waar een bepaalde server aan moet voldoen, controleert de agent elk half uur of de server voldoet aan het recept. Wanneer deze niet aan het recept voldoet, dan past de puppet agent dit aan.

De puppet agent controleert onder andere de volgende zaken:

  • Bestaat een bestand
  • Heeft het bestand de volgende content
  • Is een bepaalde service actief
  • Is een bepaalde appllicatie geinstalleerd
  • etc

Puppet master

Dit in het centrale mechanisme waartegen de puppet agents tegen aanpraten. Hier halen de agents hun recept op. De puppet master verzameld uit verschillende bronnen zijn gegevens en genereert hieruit zijn recept.

De gegevens die de master terug krijgt van de agent, slaat deze weer op in de puppet DB, zodat de puppet master deze weer kan hergebruiken voor een andere agent.

Op deze manier worden alle nodes verzameld welke gebruikt worden om de backup server te configureren, zodat deze weet welke data gebackuped moet worden.

Voorbeeld code

Dit is een voorbeeld code van een server, deze server krijgt het volgende gedaan:

  • een IP adres geconfigueerd
  • wordt aangemeld bij de Backup server
  • wordt aangemaakt in de stepping stone server
  • wordt in de DNS zone aangemaakt
  • wordt aangemaakt in het monitoring systeem
  • wordt aangemaakt in het rundeck systeem
  • door de subversion kan een audit uitgevoerd worden wie welke wijziging uitgevoerd heeft
  • Kan je een rolback doen