Beheren van Linux infrastructuur met behulp van Ansible
Na jarenlang handmatig commando’s en Bash scriptjes te schrijven en uit te voeren op de Linux servers werd het voor mij tijd om de overstap te maken naar een robuuste automatiseringstool.
Ik heb hiervoor al langere tijd meerdere configuratiebeheer tools bekeken en tevens gekeken welke het meest geschikt is voor mijn omgeving.
Verschillende automatisering tools
Er zijn verschillende automatiseringstools waaronder Puppet en Ansible. Voor Puppet heb je naast een Management server op elk device een client software nodig.
Voor Ansible is alleen een Management omgeving nodig waar je de configuratie (inventory, roles enz) neerzet. De verbinding tussen de clients gebeurd met het standaard SSH protocol.
Geschiedenis van Ansible
Ansible is een open-source configuratie management tool geschreven in Python die ontwikkeld is door Michael DeHaan (een Nederlander). De eerste release kwam vorig jaar (in 2012) uit. Met deze tool kun je applicaties en verschillende taken na eigen hand maken en met één druk op de knop laten installeren op zoveel devices als je wil.
De devices hebben natuurlijk van te voren wel een SSH user + keygen nodig die je voor Ansible gebruikt.
Voordelen van Ansible
Nadelen van Ansible
- Aangezien Ansible gebruik maakt van de standaard SSH (voor Linux) en WINRM (voor Windows) protocol gaat het verwerken van data langzamer dan als je gebruik zou maken van o.a. Puppet aangezien die gebruik maken van een stukje client software die de verwerking van data sneller kan doorvoeren
- Continue rapportage: Op het moment dat je Ansible playbook(s) uitvoert krijg je rapportage terug van servers en onderdelen die zijn doorgevoerd of mislukt zijn met daarbij de betreffende error melding. Dit is een eenmalige actie. Je hebt geen monitoring die de hele dag door kijkt of de configuratie nog steeds zo is als je zelf had bedacht. Als je gebruik zou maken van Puppet dan zou je wel een live monitoring rapportage kunnen zien van al je servers.