Puppet, Salt, Chef, & Ansible: Een vergelijking

Leestijd: 8 minuten

Welke is geschikt voor u?

Inhoudsopgave

I. Puppet II. SaltStack III. Chef IV. Ansible IV. Conclusie

Inleiding

Een enkele server configureren met de benodigde software is een redelijk eenvoudige taak. Echter, als op een groot aantal servers dezelfde of vergelijkbare software en configuraties moeten worden geïnstalleerd, kost dit proces vele manuren, die uw toch al overbelaste middelen uitputten. Zonder enige vorm van automatisering kan deze taak bijna onoverkomelijk worden. Met deze taak in gedachten werden nieuwe configuratiebeheertools ontwikkeld om te voorzien in de behoefte om nieuwe servers in te zetten met vooraf gemaakte configuraties en updates, die een soepeler en beter beheersbaar automatiseringsproces mogelijk maakten. Om deze servers synchroon te houden en updates te beheren voor een groot aantal hosts in een datacenter- of cloudomgeving, voorzien automatiseringstools als Puppet, SaltStack, Chef en Ansible in deze behoefte.

Het kiezen van de juiste beheertools voor gebruik in uw infrastructuur is een cruciale beslissing. Daarom bekijken we de beschikbare opties voor deze projecten. Deze tools bieden de meeste voordelen voor zowel DevOps als sysadmins. Hopelijk kan deze informatie u in de juiste richting wijzen. Hoewel het waar is dat alle hierboven genoemde configuratietools deze taken hoogstwaarschijnlijk zullen volbrengen, biedt elk verschillende methodologieën en rollen op enigszins verschillende manieren om dit doel te bereiken. Dit artikel is bedoeld om u enkele van de essentiële verschillen te laten zien die elk software management platform biedt. Dit zal u in staat stellen een beter geïnformeerde beslissing te nemen, omdat we proberen elke softwaretitel en de voordelen ervan aan te stippen, en dan aan het eind een overzicht te bieden

.

Puppet

Puppet is een van de oudste en meest vertrouwde beheertools in onze lijst. Hierdoor biedt het een bredere ondersteuning binnen de Puppet-gemeenschap en door het Puppet-team. Puppet biedt ook een open-source editie van zijn software die kan worden geïnstalleerd op een breed scala van besturingssystemen. De enterprise versie van de software is echter geschikt voor grotere systemen zoals IBM’s AIX of F5 Big-IP hardware. Opgemerkt moet worden dat de Puppet master server alleen kan worden geïnstalleerd op Unix/Linux besturingssystemen.

Een Puppet implementatie bestaat meestal uit een master server en meerdere client machines (die worden aangeduid als Agents). Puppet is een van de tools in deze lijst die gebruik maakt van zijn eigen unieke taal die is gebaseerd op Ruby. De Puppet DSL (of Domain Specific Language) wordt gebruikt om de gewenste toestand van je systeem te beschrijven binnen een bestand, dat een manifest bestand wordt genoemd. Manifest bestanden zijn fundamenteel een set van configuraties of taken die bepalen hoe uw netwerk en besturingssysteem middelen (zoals diensten, pakketten, en bestanden) worden geconfigureerd. Puppet compileert vervolgens de manifest bestanden in catalogi en pusht elke catalogus naar zijn aangewezen node, zodat de node opnieuw wordt geconfigureerd in de gewenste staat over de gehele infrastructuur.

uppet biedt bovendien een intuïtieve en eenvoudige webgebaseerde UI die wordt gebruikt om een aanzienlijk aantal taken uit te voeren, waaronder real-time node management. Bovendien, omdat Puppet is opgezet in een multi-master architectuur vorm, als de huidige actieve master down gaat, zal een andere master de vorige master vervangen om een verminderde beschikbaarheid te voorkomen. uppet werkt de configuratie van de nodes bij door de clients de master te laten controleren op bijgewerkte manifesten en haalt dan de nieuwe configuraties van de master server naar beneden. Vanwege deze eigenschap is Puppet meer systeembeheerders-georiënteerd dan veel van de andere gereedschappen die hier zijn genoemd. Een nadeel van Puppet is dat er geen directe uitvoering op afstand beschikbaar is voor de nodes. Bovendien heeft Puppet een steilere leercurve, vanwege de vereiste kennis van de Puppet DSL en Ruby programmeertalen. Top

SaltStack

SaltStack (ook wel Salt genoemd) is een van de nieuwere tools in deze lijst. Het is echter nog steeds zeer relevant in de wereld van softwareconfiguratiebeheer. Salt heeft een relatief actieve gemeenschap en effectieve ondersteuning. Salt is ontworpen om low-latency, hoge-snelheid communicatie en gegevensoverdracht tussen de nodes voor uitvoering op afstand mogelijk te maken. Salt is ontworpen om te werken met de Unix/Linux en Windows besturingssystemen, maar de Master Salt server kan alleen werken op Unix/Linux besturingssystemen.

SaltStack bestaat uit een Salt Master, die de centrale Salt server is, en clients, die Salt Minions worden genoemd, die als agents op elk van de node machines draaien. Het beheersen van de taal van Salt is relatief eenvoudig omdat de menselijk leesbare configuraties Python en YAML-bestanden gebruiken, wat een van de meer natuurlijke en eenvoudige datastructuren is. Terwijl Puppet werkt op een manier waarbij de nodes om de updates vragen, werkt Salt hier tegenin. De Salt Master pusht alle configuraties naar alle client machines. Bovendien fungeert Salt als een asynchrone bestandsserver, wat de snelheid van de bestandsoverdrachten verhoogt die de Salt Minions dienen. Deployment-snelheid is een van de belangrijkste doelen van de filosofie van Salt.

Salt kan ook in een multi-master configuratie draaien. Als een Salt master server uitvalt, zullen de agents verbinding maken met een andere master die in de configs staat. Deze functie verhoogt de algehele beschikbaarheid en redundantie van het systeem als geheel. Een bijkomend voordeel van Salt is dat het de parallelle uitvoering van meerdere commando’s tegelijk mogelijk maakt. Deze commando’s worden versleuteld via AES (Advanced Encryption Standard) en naar de client nodes gepushed via het SSH protocol. Een laatste voordeel van Salt is dat het meerdere masters kan beheren. Salt biedt ook een Web UI; deze heeft echter beperkte mogelijkheden en functies.

Boven

Chef

Chef begon als een intern hulpprogramma voor het implementeren van server-naar-server voordat het uiteindelijk in 2009 als open-sourcesoftware werd vrijgegeven. Een belangrijk voordeel van Chef is dat het ook een grote ondersteuningsgemeenschap biedt met uitgebreide documentatie en begeleiding. De Chef master- en node-software werkt op zowel Unix/Linux-systemen, maar alleen de client- en werkstationversies kunnen op Windows-servers worden ingezet.

De configuratie-opties van Chef bestaan uit Cookbooks en Recipes. De recipes zijn de definitie bestanden die kunnen worden gecombineerd met attributen, bestanden, bibliotheken, en andere recepten om Cookbooks te bouwen. Deze cookbooks kunnen dan worden gebruikt voor client deployment.

Chef bestaat uit 3 hoofdcomponenten:

  • Chef Workstation – Het Chef workstation wordt gebruikt door system engineers om de cookbooks te maken, te testen, en te deployen naar de Chef master servers.
  • Chef Master Server – Chef Servers zijn in wezen de hub waar alle Chef configuratiegegevens worden opgeslagen. Deze informatie omvat kookboeken, server gegevens, en andere relevante info.
  • Chef Client – De Chef client is de end-node machines beheerd door Chef master servers. Deze servers halen periodiek kookboekconfiguraties op van de Chef master server en voeren deze uit.

De programmeertaal van Chef is vergelijkbaar met die van Puppet, in die zin dat het een DSL (Domain Specific Language) gebruikt die uniek is voor Chef, maar het ondersteunt ook scripts geschreven in Ruby.

Chef is primair opgezet als een Chef master server, maar ook als een backup server voor het geval de centrale Chef master server uitvalt. Als er een storing optreedt, zal de backup master server de centrale Chef master server vervangen. Dit is hoe redundantie is opgenomen in de Chef-omgeving. Chef biedt ook extra cloud en infrastructuur automatisering, naast geautomatiseerde workflows, die worden gebruikt om continue levering aan de client machines te bieden. Een kanttekening die moet worden geplaatst; De primaire taal is in het voordeel van programmeurs omdat het gebruik van DSL/Ruby georiënteerde scripting in de Cookbooks vereist is. Chef en zijn infrastructuur zijn zeer stabiel en gebouwd voor betrouwbaarheid. Chef biedt ook sequentiële uitvoeringsvolgorde, in tegenstelling tot bijvoorbeeld Salt, dat parallelle uitvoering biedt.

Top

Ansible

Ansible is een van de modernere hulpprogramma’s die worden gebruikt als een oplossing voor configuratiebeheer. Het is aantoonbaar een van de populairste software vanwege zijn eenvoud en eenvoudige configuratie. Net als de vorige tools, ondersteunt Ansible zowel Windows als Unix/Linux client machines, maar de Ansible master server vereist een Unix/Linux-gebaseerde server.

In tegenstelling tot de vorige tools, is alleen een Ansible master nodig om te draaien, omdat Ansible gebruik maakt van de SSH (of RDP voor Windows) protocollen om een verbinding te openen met de client servers om de opeenvolgende commando’s uit te voeren. Ansible is vergelijkbaar met Puppet in die zin dat de Ansible configuratiebestanden Python-gebaseerd zijn en YAML-bestanden gebruiken voor de gestructureerde gegevens. Deze bestanden worden Playbooks genoemd. Ansible ondersteunt ook een Python API, die kan worden gebruikt om te reageren op specifieke gebeurtenissen om controle uit te oefenen op de nodes zelf. Ansible kan ook worden gebruikt via een opdrachtregelinterface. Door op deze manier een CLI-interface te gebruiken, is het gebruik van een configuratiebestand niet nodig voor een eenvoudige taak zoals het herstarten van een server. Voor complexere taken is een playbook nodig omdat de master server de informatie naar de client nodes pusht. Ansible is ook geschikt voor real-time remote uitvoering van commando’s of applicatiebeheer.

In verband met redundantie wordt Ansible meestal geconfigureerd als een enkele actieve master server (aangeduid als een Primary Instance), omdat er geen agents nodig zijn om er verbinding mee te maken. Een secundaire master kan worden geconfigureerd om over te nemen als de master server uitvalt. Omdat Ansible een agent-loze aanpak gebruikt, kunnen wijzigingen of updates relatief snel door een engineer naar alle nodes worden geduwd. Een nadeel van Ansible is dat de client computers niet controleren op periodieke configuratiewijzigingen op de primaire master.

Top

Conclusie

In eenvoudige bewoordingen biedt een configuratiemanager een abstractielaag tussen de bestaande configuratie van een server en de gewenste toestand. Dit doel wordt bereikt door zich meer te richten op een specifiek resultaat in plaats van op de veelomvattende taken die nodig zijn om deze te bereiken.

In onze beoordeling van deze vier producten, als we kijken naar een conclusie uitsluitend gebaseerd op populariteit, is de duidelijke winnaar Ansible. Dit is te danken aan het feit dat een veel grotere groep beheerders Ansible gebruikt als hun primaire configuratie management tool in vergelijking met de andere producten in dit artikel. Ansible heeft zijn voordelen omdat het meer gericht is op een SysOps georiënteerde rol met betrekking tot de structuur en het paradigma. Salt is vergelijkbaar in dit aspect, maar het is anders dan Puppet en Chef omdat zij meer gericht zijn op ontwikkelaars. Bovendien is Ansible een van de eenvoudiger opties in deze lijst om op te zetten, te configureren en direct te gaan gebruiken.

uppet, aan de andere kant, zou degene zijn die het meest benaderbaar en betrouwbaar is vanuit het oogpunt van bruikbaarheid. Hoewel, zoals eerder geschetst, een praktische kennis van Ruby nodig is om het volledige voordeel te halen uit zijn brede scala aan mogelijkheden, structuur en schaalbaarheid. Puppet’s configuratie kan zeer granulair en soms ingewikkeld worden, maar het is de veiligste gok als je op zoek bent naar een niet-heterogene software-omgeving.

Als je op zoek bent naar een configuratietool die is gestroomlijnd naar een meer uniforme infrastructuur, dan zijn Ansible en Salt meer geschikt voor dat doel. Salt is op zichzelf een van de meer betrouwbare en robuuste tools op deze lijst, maar wordt een toontje lager ingeschaald vanwege de moeilijkheid van de Web UI voor beginners om sommige van de diepere configuratieopties te begrijpen. Het maakt dit echter goed door zijn geavanceerde schaalbaarheidsopties en een toegankelijke werkomgeving vanuit het perspectief van de SysOps of beheerder. Er zijn ook meerdere addons beschikbaar die de mogelijkheden van de UI verbeteren en uitbreiden, wat de bruikbaarheid en functionaliteit ten goede komt.

Chef is op zichzelf een zeer rechttoe rechtaan en goed ontworpen tool. Het biedt een verbeterde benadering voor toegangsgemak en een grotere mate van praktische bruikbaarheid dan Puppet. Zoals eerder vermeld, kan Chef een opmerkelijke leercurve vormen voor SysOps of systeembeheerders die geen ontwikkelingsgerichte ervaring hebben, omdat het een breder begrip van programmeertalen en ervaring vereist.

In conclusie, Ansible is een eenvoudige keuze voor instapniveau configuratiebeheer vanwege de beschikbare documentatie, de structuur, en het gemak van toegankelijkheid. Puppet is ook een solide tool, maar een gebruiker of team zal nieuwe coderingsprocedures en -functies moeten leren om de steilere leercurve te overwinnen bij het gebruik van de DSL (Domain Specific Language) programmering. In termen van bruikbaarheid, schaalbaarheid en multi-omgeving opties, zal Salt het meest resoneren met systeembeheerders die willen profiteren van de vele opties en zeer aantrekkelijke schaalbaarheid mogelijkheden. Chef heeft een goed ontworpen lay-out, structuur en biedt een aanzienlijk niveau van stabiliteit. De leercurve kan in het begin wat moeilijk zijn, omdat het meer gericht is op de vaardigheden van een programmeur. Al deze tools spelen een specifieke rol bij het configureren van uw infrastructuur en de gewenste toestanden. Het gebruik ervan hangt volledig af van uw configuratiebehoeften, de persoonlijke ondersteuning en het gemak dat nodig is om ze te implementeren.

Top

We zouden het leuk vinden als je met ons meedoet!

Bel ons op 800.580.4985, of open een chat of ticket met ons om te spreken met een van onze deskundige adviseurs op het gebied van oplossingen of ervaren hosting om te leren hoe u vandaag nog uw voordeel kunt doen met deze technieken!

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.