Ansible Alternatieven

Er zijn ook andere tools die soortgelijke taken uitvoeren, hoewel de meeste hiervan gebruikmaken van agents die op eindpunten moeten worden geïnstalleerd.

Puppet

Puppet is een open-source configuratiebeheertool die de provisioning en het beheer van infrastructuur automatiseert. Puppet is ontwikkeld in Ruby en stelt beheerders in staat om de gewenste status van hun infrastructuur te definiëren met behulp van een declaratieve taal. Zodra deze gewenste status is gedefinieerd, zorgt Puppet ervoor dat de infrastructuur voldoet aan deze status en corrigeert alle afwijkingen die het vindt. Een belangrijke kracht van Puppet ligt in het volwassen ecosysteem, dat kan bogen op een schat aan vooraf gedefinieerde modules die beschikbaar zijn in de Puppet Forge. Organisaties gebruiken Puppet om consistentie te garanderen, beveiligingsbeleid af te dwingen en de provisioning van nieuwe servers en applicaties te versnellen.

Samengevat:

  • Taal & ontwerp: Puppet-configuraties worden geschreven in de declaratieve domeinspecifieke taal. Hierdoor kunnen gebruikers specificeren ‘wat’ ze willen bereiken zonder noodzakelijkerwijs te specificeren ‘hoe’ ze dat moeten doen.
  • Agent-gebaseerd: Puppet vereist doorgaans een agent op elk beheerd knooppunt. Deze agent checkt periodiek in bij de master voor configuratie-updates.
  • Pull-based: Puppet werkt doorgaans in een pull-model waarbij de agents configuraties ophalen van de masterserver.
  • Volwassen ecosysteem: Puppet Forge biedt een enorme repository met vooraf gedefinieerde modules.

Chef

Chef is een andere krachtige open-source automatiseringstool die infrastructuur als code beheert. In tegenstelling tot de declaratieve aanpak van Puppet, gebruikt Chef een procedurele stijl waarbij beheerders “recepten” in Ruby schrijven om aan te geven hoe een bepaald stuk infrastructuur moet worden geconfigureerd. Deze recepten worden vervolgens gecombineerd tot “kookboeken” om de gewenste configuratie gedetailleerd te beschrijven. Chef blinkt uit in zijn flexibiliteit, wat diepe aanpassing en gedetailleerde controle van systemen mogelijk maakt. De ‘knife’-opdrachtregeltool en Chef Supermarket, die kookboeken aanbiedt die door de community zijn bijgedragen, zijn hoogtepunten van het Chef-ecosysteem.

Een kort overzicht:

  • Taal en ontwerp: Chef gebruikt Ruby om zijn configuraties te schrijven, met name in een procedurele stijl. Beheerders beschrijven gedetailleerd ‘hoe’ het systeem een ​​gewenste status moet bereiken met behulp van ‘recepten’.
  • Agent-gebaseerd: Chef vereist een agent, bekend als Chef-client, op elk beheerd knooppunt.
  • Pull-gebaseerd: Net als Puppet werkt Chef ook voornamelijk in een pull-model, waarbij de Chef-client de nieuwste ‘kookboeken’ van de Chef-server ophaalt.
  • Flexibele aanpassing: De procedurele stijl biedt gedetailleerde controle over de systeemconfiguratie, geschikt voor degenen die bekend zijn met coderen.

Salt (of SaltStack)

SaltStack, algemeen bekend als Salt, is een op Python gebaseerde open-source configuratiebeheer- en externe uitvoeringstool. Salt is ontworpen voor snelheid en schaalbaarheid en communiceert met systemen via het ZeroMQ-transportsysteem, waardoor het grote infrastructuren eenvoudig kan beheren. In tegenstelling tot Puppet en Chef, die zich voornamelijk richten op configuratiebeheer, staat Salt bekend om zijn mogelijkheden voor uitvoering op afstand. Beheerders kunnen opdrachten op verschillende servers tegelijk uitvoeren, realtimegegevens verzamelen of configuraties toepassen op hun vloot. Het modulaire ontwerp en de uitbreidbare architectuur maken het een favoriet voor velen die op zoek zijn naar een veelzijdige automatiseringstool.

Een kort overzicht:

  • Taal en ontwerp: Salt-configuraties, “states” genoemd, zijn voornamelijk geschreven in YAML, hoewel het Jinja-templates en Python ondersteunt voor complexere logica.
  • Agent-Based & Agentless: Hoewel Salt agentless kan werken, wordt het vaak gebruikt met agenten die “minions” worden genoemd op beheerde knooppunten voor meer persistente verbindingen.
  • Push & Pull: Salt kan werken in zowel push- (met salt-call) als pull-mechanismen (met minions die de master controleren op updates).
  • Externe uitvoering: Naast configuratiebeheer staat Salt vooral bekend om zijn vermogen om opdrachten tegelijkertijd uit te voeren op een vloot servers.