4 open source configuratiebeheertools
Gepubliceerd: Donderdag 15 september 2011
Auteur: Koen Vervloesem
Heb je meer dan een handvol servers te configureren, dan is het lastig om dat handmatig te blijven doen. Hier vier open source configuratiebeheertools om het beheer van je servers te automatiseren.
Met een configuratiebeheertool definieer je de configuratie van elk systeem in policy's en laat je de tool die policy's toepassen. Op elke machine draait een client die de policy's van een server haalt. Door dit te automatiseren zorg je ervoor dat al je machines zich altijd in een consistente toestand bevinden.
Configuratiebeheer is vooral gebruikelijk in Linux-omgevingen, maar ook voor Windows bestaan er configuratiebeheersystemen. Hier volgt een lijstje van de bekendste open source tools, zowel voor Linux als Windows.
Puppet
Puppet is waarschijnlijk wel het bekendste configuratiebeheersysteem. Het wordt onder andere gebruikt door Red Hat, Citrix en het Los Alamos National Laboratory. Puppet gebruikt een declaratieve taal om resources en de afhankelijkheden daartussen te beschrijven.
Puppet verzamelt dan alle geïnstalleerde Puppet-manifests en leidt hieruit af in welke toestand de systemen zich moeten bevinden en welke acties er daarvoor uitgevoerd moeten worden. Puppet ondersteunt heel wat UNIX-achtige besturingssystemen, waaronder Linux, FreeBSD en Solaris. Recent is er ook een beperkte ondersteuning voor Windows toegevoegd.
Puppet kwam in eerdere versies uit onder de GPL-licentie, maar gebruikt sinds versie 2.7.0 de Apache 2.0-licentie. Het is geschreven in Ruby en is ook uitbreidbaar voor wie Ruby kent. Zo kun je zelf je eigen types resources, providers en functies schrijven.
En met de Ruby DSL kun je sinds Puppet 2.6 zelfs Puppet-modules rechtstreeks in Ruby-syntax schrijven. Een nadeel van Ruby is wel dat het niet zo'n kleine footprint heeft, waardoor Puppet vooral op embedded systemen of andere machines met beperkte resources voor te veel overhead zorgt.
Puppet heeft een heel ecosysteem van tools. Er bestaan twee webinterfaces: Puppet Dashboard (de officiële webinterface van Puppet Labs) en (The) Foreman (ontwikkeld door Ohad Levy van Red Hat).
Die laatste kan ook machines provisioneren tot op het punt dat Puppet in actie kan schieten om de machines verder te configureren. Voor het bouwen van virtuele machines zijn er ook Vagrant, dat Puppet (en ook Chef) ondersteunt, en het daarmee gerelateerde VeeWee.
Puppet Labs heeft ook Puppet Forge gepubliceerd, een online repository waarin iedereen zijn Puppet-modules kan delen. Op dit moment staan er al 186 modules in de lijst. Voor wie complexe Puppet-modules schrijft, is er ook Geppetto, een op Eclipse gebaseerde ontwikkelomgeving, inclusief syntaxiskleuring, code folding, enzovoort.
