Systeembeheer met Ansible

Een korte beschrijving van twee manieren waarop Ansible gebruikt kan worden. Naast de gebruikelijke manier voor het beheer van serversystemen, kan Ansible ook gebruikt worden voor het beheer van systemen die beperkt of onregelmatig online zijn.

Systeembeheer met Ansible

Een veelvoorkomende manier van werken met Ansible is dat vanaf een beheersysteem een groot aantal serversystemen wordt beheerd. Op het beheersysteem met Ansible staat de configuratie beschreven van de serversystemen. Via een SSH-verbinding realiseert Ansible de gewenste configuratie op de doelsystemen. Het beheersysteem is hier de spin in het web en moet goed worden beveiligd, gezien de toegang tot de doelsystemen.

# Ansible voert het playbook uit op de ingestelde systemen.
ansible-playbook playbook.yml

Ansible uitgevoerd vanaf een beheerserver.

Voor systemen die niet permanent online zijn, is de bovenstaande methode van configuratiebeheer niet praktisch. In deze situatie wordt Ansible juist geïnstalleerd op de doelsystemen. Deze systemen worden zo ingesteld dat Ansible met regelmaat Ansible wordt gestart om de beoogde configuratie op te halen uit een git-repository en deze vervolgens toe te passen op het eigen systeem. In dit systeem is de git-repository met de configuratie de spin in het web.

# Deze opdracht voert standaard het playbook "local.yml" uit.
ansible-pull https://git.server.tld/user/repo.git

# Deze opdracht voert het gekozen "playbook.yml" uit.
ansible-pull https://git.server.tld/user/repo.git playbook.yml

Ansible uitgevoerd op het doelsysteem zelf, met het commando ansible-pull.

Een voordeel van dit systeem is dat er geen beheerserver met toegang tot alle doelsystemen nodig is. In dit geval is het voldoende dat het doelsysteem leesrechten heeft op een git-repository met de Ansible-configuratie. Dit is een mooie oplossing voor bijvoorbeeld desktops, laptops en kiosksystemen.