17.Jun.2015 Wat is Puppet?

Puppet is een beschrijvende programmeertaal (Ruby) om beheer te automatiseren. Het abstraheert configuratie tot resources. Het gaat hierbij zowel om het beheer van configuratie files (instellingen van de servers) als het beheer van de geïnstalleerde software (packages). Met Puppet kunnen system administrators het beheer van servers efficiënt en consistent organisatiebreed automatiseren. Er hoeft geen tijd meer besteed te worden aan het steeds opnieuw schrijven van dezelfde code, zodat system administrators zich kunnen richten op het beheer van de infrastructuur als geheel.

Use Cases

Een typische use case voor Puppet is het beheer van virtuele servers in een private cloud. Het kan gebruikt worden om snel extra webservers te installeren. In Puppet worden classes gemaakt waarin de desired state van een server feitelijk beschreven is.

Deze classes kunnen ook dynamisch zijn doordat ze scripts bevatten die situatie afhankelijk software installeren. Zo kan een script zien op welk type hardware de installatie plaats vindt en aan de hand daarvan bepalen welke specifieke software (ten behoeve van Remote Access, ILO) geïnstalleerd moet worden. Op iedere te beheren server draait een server proces (puppet.d) dat met de server communiceert. Deze communicatie is versleuteld en er kan ingesteld worden met welk interval de configuratie van de te beheren server vergeleken wordt met de Puppet server.

Facter

Ook kan gebruik gemaakt worden van Facter. Facter vergaart informatie die als variabele gebruikt kan worden, zogenaamde ‘facts’) en bouwt zo een library ten behoeve van configuratie. Deze informatie kan eventueel samen met variabelen gebruikt worden in de classes. De classes zijn te nesten zodat ze hergebruikt kunnen worden. Zo word het een krachtig stuk gereedschap dat steeds krachtiger wordt naar mate er meer servers beheerd moeten worden. In Puppet definieer je ‘manifests’, die aangeven hoe een stukje software met eventuele configuratiebestanden op een machine moet worden neergezet.

 

Waarom het enthousiasme over Puppet?

Een interessante vraag is waarom de technisch specialisten er zo enthousiast over zijn. Als ik voor mijzelf spreek is dit voor een deel te begrijpen omdat ik zo min mogelijk hetzelfde wil doen. Ik denk dat dit voor Technisch Specialisten in het algemeen geldt: we doen niet graag dubbel werk. Wanneer de eerste server is ingesteld en een tweede geconfigureerd moet worden, begint een technisch specialist na te denken of het niet slimmer kan. Puppet is een manier om het slimmer te doen en daar houden we van. Natuurlijk moeten de classes gemaakt worden en zonder twijfel wordt het daar complexer van. Maar bij grote aantallen servers scheelt het veel tijd. Schrijf de code 1 keer, gebruik de code vaker.

Een andere reden om Puppet te willen gebruiken is dat ze daarmee controle en overzicht verkrijgen. Middels de classes zijn de configuraties van alle servers beschreven. Dat scheelt behoorlijk als er gedocumenteerd moet worden, een werkje dat niet altijd even leuk gevonden wordt. Bovendien kan eenvoudig de configuratie van honderden servers aangepast worden. Als technisch specialist ben je daarmee ‘in control’.

Business perspectief

Als Puppet gecombineerd wordt met GIT kan er versiebeheer uitgevoerd worden op de configuraties. Het voordeel van dit versiebeheer is dat er een roll back kan worden gedaan naar een ‘oude’ configuratie waarvan bekend is dat die werkte en dat alle wijzigingen gedocumenteerd zijn. Er is precies te zien wie, wanneer, wat, heeft veranderd. Dit betreft een historie van alle wijzigingen die er op servers hebben plaatsgevonden. Vanuit ITIL is dit erg interessant. De gedachte achter ITIL is dat 80 procent van alle verstoringen veroorzaakt worden door wijzigingen. Goede documentatie van alle wijzigingen is een eerste stap richting het beheersen en controleren van het veranderproces. Betere beheersing van het veranderproces leidt tot minder verstoringen. Het is duidelijk wat het belang van minder verstoringen is voor de bedrijfsvoering van organisaties.

Een nog interessantere vraag is waarom bedrijven vanuit het business perspectief gebruik zouden willen maken van Puppet. It-organisaties zien zich tegenwoordig geconfronteerd met een aantal uitdagingen waarbij Puppet mogelijk kan helpen. Om te beginnen moet alles tegen lagere kosten. Met andere woorden het moet efficiënter. Dit is bij uitstek natuurlijk een gebied waarin Puppet zinvol is. Mits goed ingericht kan met weinig mankracht een groot aantal servers worden beheerd.

Doordat alle configuraties beschreven zijn kunnen servers ook snel (fysiek danwel virtueel) opnieuw geïnstalleerd worden. Dit is buitengewoon praktisch voor bijvoorbeeld het opzetten van een testomgeving.  In Puppet is het gehele systeem beschreven waardoor ook de herinstallatie kan snel worden uitgevoerd.

Opensource

Puppet is open source software. Dit maakt de instap bijzonder laagdrempelig. Indien organisaties behoefte hebben aan commerciële support dan kan deze onder andere bij Puppetlabs verkregen worden. Er kan dan gebruikt gemaakt worden van de enterprise edition. Deze betaalde versie heeft naast support ook extra’s die het goed bruikbaar maken binnen bijvoorbeeld een VMware-omgeving. Puppet Enterprise werkt met zogenaamde classes, geschreven door de community, die te vinden zijn op Puppet Forge. Hierdoor kan snel gebruik worden gemaakt van de functionaliteiten van Puppet.

Puppet links Informatie : http://www.puppetlabs.com/puppet/introduction/
Website Ger Apeldoorn: http://www.puppetspecialist.nl/

Comments Off on Wat is Puppet?

Pages

Categories

  • Archives

  • Skype

    Call MindJudo - Laurens van Gunst klik hier voor direct contact via Skype!
  • Facebook

  • Follow me on Twitter

  • Contact info

    Mobile: +31615259234

    Email: info@mindjudo.nl

Meta