Ansible Roles: vereenvoudig het schrijven van complexe playbooks met herbruikbare rollen

Home / Blog & Nieuws / Managed hosting / Ansible Roles: vereenvoudig het schrijven van complexe playbooks met herbruikbare rollen
Ansible is een handige tool voor het provisioneren van software en het beheren van configuraties van deze software. Ansible Roles spelen hierbij een belangrijke rol en maken het hergebruiken van code een stuk eenvoudiger. In dit artikel lees je meer over Ansible Roles, de taak die zij vervullen, wanneer je Ansible Roles wilt inzetten en wat de voordelen zijn.

Ansible is een suite van softwaretools die Infrastructure as Code ondersteunt. Het is een opensource-project van Red Hat, en omvat functionaliteiten voor het provisioneren van software, beheren van configuraties en implementeren van applicaties. Playbooks spelen een belangrijke rol in Ansible. Playbooks bieden herhaalbare en herbruikbare configuraties. Het vormt een kerncomponent van Ansible en vertelt Ansible wat het precies moet doen bij de uitrol van een applicatie. Je kunt een playbook dan ook vergelijken met een to-do-lijst, die alle taken die Ansible moet uitvoeren, omvat.

Wat zijn Ansible Roles?

Ansible Roles maken het mogelijk herbruikbare componenten te creëren met het oog op automatisering. Dit doe je door het groeperen van gerelateerde automaterisings-artefacten zoals configuratiebestanden, templates, taken en handlers. Je kunt Ansible Roles ook configureerbaar maken. Dit betekent in de praktijk dat gebruikers die de rol oproepen, hun systeem kunnen configureren aan de hand van specifieke vereisten.

In Ansible zijn rollen de belangrijkste manier om een playbook in meerdere bestanden op te breken. Dit vereenvoudigt het schrijven van complexe playbooks. Met Ansible Roles kan je meerdere taken in één container samenvoegen tot een groep. Nadat je content in rollen hebt gegroepeerd, kun je deze eenvoudig hergebruiken en delen met andere gebruikers. Net als playbooks schrijf je de rollen in YAML, wat het opstellen aanzienlijk vereenvoudigd.

Waarvoor en wanneer gebruik je Ansible Roles?

Belangrijk om op te merken is dat Ansible Roles geen playbooks zijn. Een rol is een kleine functionaliteit, die als losstaand element gebruikt kunnen worden. Zij zijn alleen bruikbaar in combinatie met playbooks; het is niet mogelijk een rol zonder playbook uit te voeren.

Wie met Ansible aan de slag gaat, start over het algemeen met het schrijven van playbooks voor het automatiseren van terugkerende taken. Naarmate je op deze wijze echter meer en meer taken automatiseert, loop je in veel gevallen echter tegen de grenzen van de mogelijkheden van playbooks aan. Onder meer doordat de complexiteit van je projecten snel toeneemt.

Ansible Roles bieden in dat geval uitkomst en bieden je een duidelijk gedefinieerde structuur voor het opstellen van je taken, variabelen, handlers, metadata, templates en andere bestanden. Dit maakt het onder meer mogelijk met slechts enkele regels code naar deze bestanden te refereren en hen op te roepen in playbooks. Ook kan je dezelfde rollen in meerdere projecten hergebruiken, zonder de code te hoeven dupliceren.

Een Ansible Role omvat doorgaans een specifieke functionaliteit of gewenste output. Alle stappen die hiervoor noodzakelijk zijn leg je vast in de rol zelf, of breng je onder in rollen die je als afhankelijkheid opgeeft.

Wat zijn voordelen?

Het werken met Ansible Roles biedt diverse voordelen. Zo benoemden we al de mogelijkheid tot het hergebruiken van code in meerdere playbooks. Dit kan je uiteraard veel tijd besparen, onder meer door het niet handmatig hoeven repliceren van code en niet meermaals code te hoeven schrijven voor dezelfde functionaliteit.

Denk echter ook aan voordelen op het gebied van samenwerking. Zo kan je dankzij Ansible Roles met meerdere teams of ontwikkelaars gelijktijdig aan verschillende rollen werken, zonder dat hiervoor meerdere personen gelijktijdig een playbook hoeven te bewerken. Zo houd je werk gescheiden, voorkom je complexiteit en vermijd je daarnaast dat werk door fouten verloren gaat.

Aan de slag met Ansible Roles

Jeffrey Regan, voormalig Senior Software Engineer bij Google, legt in een video de basis uit van Kustomize. In een half uur praat Regan je bij over alle mogelijkheden en voordelen.

Kustomize, tool voor configuraties in Kubernetes
Ansible Best Practices Roles and Modules
Anouk Raap
Marketingcoördinator bij True
Category: Managed hosting