Ansible is de meest gebruikte DevOps-tool voor het beheren van wijzigingen in uw cloud- of datacenter-infrastructuur. In dit artikel krijgt u een overzicht van hoe Ansible werkt en hoe u aan de slag kunt.
Wat is Ansible?
Ansible is een automatiseringsplatform gebruikt voor het eenvoudig implementeren van applicaties en systeemconfiguraties op meerdere servers. Het kan worden gebruikt voor het starten van Linux-services, het aanmaken van tientallen Linux-gebruikers, het bijwerken van wachtwoorden en nog veel meer.
Ansible is een agentloze oplossing die machines beheert via het Secure Shell Host (SSH)-protocol. Het vereist een database maar maakt geen gebruik van achtergronddiensten (daemons).
Ansible gebruikt ingebouwde ad-hoc commando’s en Ansible-playbooks voor het implementeren van software of uitvoeren van commando’s. Ook bevat Ansible honderden modules voor het implementeren of configureren van externe nodes.
Hoe Ansible werkt
U heeft nu een basisidee over wat Ansible is. Maar om Ansible te laten werken, heeft u vier componenten nodig:
- De Ansible-besturingsknooppunt, ook bekend als de Ansible Controller host, is de server waar Ansible is geïnstalleerd. Dit knooppunt voert alle Ansible ad hoc commando’s en Ansible-playbooks uit om configuraties of software op de externe knooppunten te implementeren of beheren.
- Externe knooppunten van Ansible, ook bekend als beheerde knooppunten van Ansible, zijn de servers of netwerkapparaten waar u toepassingen implementeert of configuraties gebruikt met behulp van Ansible ad hoc commando’s of een Ansible playbook. Deze worden ook wel Ansible-hosts genoemd.
- De Ansible inventaris is een bestand op de Ansible Controller host of het controleknooppunt dat een lijst bevat van alle externe hosts of beheerde knooppunten.
- Ansible-modules, ook bekend als Ansible-kernmodules, zijn de codeplugins of bibliotheekplugins die kunnen worden gebruikt vanaf de opdrachtregel of een taak in een playbook. Ansible voert elk module uit, meestal op het externe beheerde knooppunt.
Waarom Ansible gebruiken?
Als je in de IT werkt, doe je waarschijnlijk dezelfde taken herhaaldelijk. Wat als je problemen slechts één keer zou kunnen oplossen en vervolgens je oplossingen in de toekomst automatiseren? Ansible is een configuratiebeheertool waarmee je software op externe knooppunten gemakkelijk en efficiënt kunt beheren en implementeren.
Ansible heeft honderden modules die kunnen worden gebruikt bij het beheren van externe servers. De Ansible-modules zijn onderverdeeld in twee delen:
- Ansible-kernmodules (of ansible-core) die we eerder hebben genoemd, zijn de belangrijkste bouwstenen en architectuur voor Ansible. Ze zijn eigendom van en worden beheerd door het kern-Ansible-team en worden altijd meegeleverd met Ansible zelf.
- Een Ansible-collectie is een distributieformaat voor Ansible dat je kunt gebruiken om playbooks, rollen, modules en plug-ins te verpakken en te distribueren. Een typische collectie richt zich op een reeks gerelateerde use-cases. Je kunt een collectie maken en publiceren op Ansible Galaxy.
? Ansible Galaxy verwijst naar de Galaxy-website waar gebruikers rollen kunnen delen, installeren, maken en beheren, en Ansible-modules kunnen beheren.
Gebruiksscenario’s voor Ansible
Als je mij vraagt naar de belangrijkste gebruiksscenario’s voor Ansible, kan ik geen volledige lijst schrijven, aangezien er honderden dingen zijn die Ansible kan doen. Het begint bij eenvoudige taken, zoals het opnieuw starten van services op afstandse nodes, tot het implementeren van Tomcat-toepassingen.
Laten we eens kijken naar enkele van de gebruiksscenario’s waar Ansible nuttig blijkt te zijn:
- Als je taken en spelbooks op verschillende systemen wilt uitvoeren met één opdracht, kan dat met Ansible-variabelen.
- Om gegevens van meerdere systemen op te halen, kun je Ansible-feiten gebruiken. Ansible-feiten zijn gegevens verzameld van doelnodes en teruggegeven aan controller-nodes.
- De Ansible-kluis kan worden gebruikt voor het openen van gevoelige gegevens zoals wachtwoorden, of het implementeren van toepassingen met beveiligde wachtwoorden.
- Ansible heeft een lookups-functionaliteit voor toegang tot databases en API’s om gegevens op te halen uit een externe gegevensopslag.
Installatieopties voor Ansible
Ansible is een eenvoudig te installeren tool die wordt ondersteund op meerdere besturingssystemen. Laten we snel kijken welke besturingssystemen Ansible ondersteunt.
- RHEL, CentOS, Fedora, Ubuntu, Debian, Gentoo (met Portage), FreeBSD, macOS, Solaris, Arch Linux, Slackware Linux en Clear Linux zijn allemaal besturingssystemen waarop je Ansible kunt installeren.
- Je kunt Ansible installeren met behulp van de Pip-pakketinstallatie voor Python.
Kan Ansible worden uitgevoerd op Windows?
Je kunt Ansible niet installeren op Windows. Echter, je kunt het wel gebruiken om Windows-gebaseerde besturingssystemen te beheren. Hier zijn enkele mogelijke toepassingsgevallen:
- Het verzamelen van Ansible-gegevens op Windows hosts.
- MSI’s installeren en verwijderen.
- Windows-functies in- of uitschakelen.
- Windows-services starten, stoppen en beheren.
Ansible configuratiebeheer
Voordat je je eerste Ansible-commando uitvoert, moet je weten hoe je je Ansible Controller host, Ansible inventory, Ansible-playbooks, enzovoort configureert.
Het Ansible inventory-bestand bevat de lijst met alle Ansible remote nodes of gegroepeerde externe nodes, die Ansible gebruikt bij het implementeren of beheren van bronnen.
Er zijn twee verschillende manieren om het Ansible inventory op te slaan:
- Standaard wordt het Ansible inventory opgeslagen in het /etc/ansible/hosts-bestand.
- Je kunt ook een aangepast pad gebruiken door de -I
optie op de commandoregel te specificeren.
Ook zijn er twee manieren om het Ansible inventory te configureren:
- INI-formaat: Een INI-bestand is een configuratiebestand dat bestaat uit groepsnamen tussen haakjes om hosts toe te wijzen aan verschillende groepen. In het onderstaande voorbeeld heeft server1.abc.com geen toegewezen groepen; echter maken server3.abc.com en server4.abc.com deel uit van Groep1.
server1.abc.com [Group1] server3.abc.com server4.abc.com
- YAML-formaat: Een andere manier om de Ansible-inventaris te verklaren is via YAML, dat een superset van JSON is, een andere gegevensserialisatietaal. De syntaxis van het YAML-formaat is hieronder gedefinieerd.
Vergelijkbaar met wat we hierboven hebben uitgelegd voor de INI-formaatcode, zijn hier twee servers (server3.abc.com en server4.abc.com) lid van de groep Groep1.
all: hosts: server1.abc.com children: Group1: hosts: server3.abc.com server4.abc.com
Ansible Ad hoc-commando’s
Als je een snelle taak moet uitvoeren, zoals het opnieuw opstarten of starten van een Linux-service op een Ansible-remote node, dan is het Ansible Ad hoc-commando er voor jou. Ad hoc-commando’s zijn een snelle en efficiënte manier om één commando op externe nodes uit te voeren.
Bijvoorbeeld, om alle Ansible externe knooppunten te pingen met behulp van het Ansible Ad hoc commando, moet je het onderstaande commando uitvoeren. Hier vertegenwoordigt ‘all’ alle hosts geconfigureerd in de Ansible inventaris en -m is de vlag die samen met het ping module wordt gebruikt.
ansible all -m ping

Wat is een Ansible playbook?
Wanneer je meerdere Ansible-taken tegelijkertijd moet uitvoeren, moet je Ansible playbooks gebruiken.
Ansible playbooks stellen je in staat om complexe toepassingen te implementeren, en ze bieden herbruikbaar en eenvoudig configuratiebeheer. Ze ondersteunen ook implementaties op meerdere machines en kunnen worden gebruikt om meerdere taken meerdere keren uit te voeren.
Ansible playbooks zijn geschreven in YAML-indeling en bevatten meerdere taken die in opeenvolgende volgorde worden uitgevoerd. Een voorbeeld van een Ansible playbook wordt hieronder getoond.
In dit voorbeeld bevat het Ansible playbook twee Ansible-taken (1 en 2), die Apache en Java installeren op externe knooppunten.
# Playbook apache.yml --- - name: Ansible Playbook Examples hosts: servers # Define all the hosts remote_user: ubuntu # Remote_user is ubuntu # Defining the Ansible tasks tasks: - name: Ansible Task 1 apt: name: httpd state: latest tasks: - name: Ansible Task 2 apt: name: open-jdk state: latest
Ansible Tower: Een op het web gebaseerde oplossing
Hoewel je nu een goed idee hebt over hoe Ansible werkt, wat als je het wilt gebruiken zonder het te hoeven beheren of installeren?
Ansible wordt gehost op een Linux-machine. Maar als je de cloudversie wilt gebruiken, zonder de hoofdpijn van het lokaal beheren van Ansible, gebruik dan Ansible Tower, dat een oplossing is die via het web werkt. Met de cloudversie gebruik je nog steeds modules om externe machines te configureren of beheren en Ansible-commando’s of Ansible Playbooks uit te voeren.
Ansible Tower stelt je ook in staat om toegang te beheren voor alle gebruikers, zorgt voor SSH-credentials en Ansible-inventaris. Het houdt ook alle taken bij, integreert goed met Lightweight Directory Access Protocol (LDAP) en heeft een geweldige doorzoekbare REST API. Ansible Tower heeft de mogelijkheid om servers en instances op te schalen als je meerdere taken op de externe knooppunten moet uitvoeren.
Conclusie
Ansible is een gratis tool met een heleboel functies. Met deze gids zou je nu moeten begrijpen wat er mogelijk is met deze functierijke tool! Van het beheren van configuraties, het gebruiken van verschillende Ansible-modules tot het uitvoeren van Ad hoc-commando’s, Ansible-playbooks en het implementeren van tientallen softwaretools, is Ansible een van de meest gebruikte automatiseringstools.
Nu je een goed idee hebt hoe Ansible werkt, wat ben je van plan ermee te implementeren?
Gerelateerde artikelen: