Red Hat Ansible

Red Hat Ansible: Automatiseer, Configureer, Test

Red Hat Ansible - automatiseer, configureer, test

In elke organisatie moeten gebruikers worden voorzien van software om hun werk uit te kunnen voeren. Voor IT-afdelingen betekent dit extra werk. Als je één keer een installatie moet doen, dan ga je dit niet volledig automatiseren, maar als je regelmatig dezelfde handelingen uitvoert wil je dit juist wel. Drie keer eenzelfde handeling uitgevoerd is er één teveel. De vraag is dus: hoe kan IT het werk efficiënter en effectiever uitvoeren? Een oplossing is het inzetten van automatiseringstools.

Er zijn verschillende automatiseringstools in omloop en allemaal hebben ze voor- en nadelen. Wat ze bijna allemaal gemeen hebben is dat er een client geïnstalleerd moet worden die luistert of er taken uitgevoerd moet worden. In deze blog neem ik als voorbeeld Ansible van Red Hat. Hiervoor heb je geen agent nodig; Ansible maakt gebruik van de standaard mogelijkheden die de SSH-verbinding biedt.

Heb je dan helemaal niets anders nodig anders dan een SSH-verbinding? Nou, er moeten twee zaken vooraf worden ingeregeld, maar dat is het dan ook. Je moet een account hebben op de machine waarmee je de configuratie en installatie kunt uitvoeren en bovendien moet dit account “super user” kunnen worden. Voor Linux beheerders is dat een koud kunstje: eenmalig de SSH-key’s uitwisselen en de user die inlogt ook “sudo-rechten” geven en je bent klaar.

Maar ook voor een Windows admin is dit snel te realiseren. Ja, ook Windows kun je automatiseren met Ansible. Je hebt hier een drietal verbindingsmogelijkheden: WinRM, PowerShell Remote Protocol (psrp) of via een OpenSSH-verbinding. Voor deze opties geldt wel dat de Windows Server of desktop voorzien moet zijn van PowerShell 3.0 en .NET Framework 4.0 (of nieuwer).

Automatisering: het Ansible Playbook

Een Ansible Playbook is eenvoudig te maken en ook voor een buitenstaander die (nog) geen verstand heeft van Ansible goed te lezen.

Voorbeeld:

Ik ga een server voorzien van de laatste versie van Apache webserver en ik maak daar het volgende bestand voor aan: webserver.yml

Red Hat Ansible Playbook figuur 1
Red Hat Ansible Playbook figuur 2

Dit playbook is in YAML-opmaak en bestaat uit een aantal delen:

  1. Ik begin met de naam van het script dan (in het blauw) op welke server(s) Ansible de installatie moet uitvoeren.
  2. Vervolgens staat er welke rechten daarvoor gebruikt (become: true) moeten worden, in dit geval een sudo als root.
  3. Dan zien we de taken (tasks:) die uitgevoerd moeten worden, dit begint met de installatie, omdat het een linux (CentOS in mijn geval) betreft installeer ik via de module yum: httpd en zorg er voor dat er via state: latest de laatste versie van httpd wordt geinstalleerd. Dan gebruik ik de firewalld: module om de http-poort te openen op de server. En dat deze permanent en direct wordt geactiveerd.
  4. Dan kopieer ik de index.html die ik op de locatie heb staan waar vanuit ik het playbook start en zet deze in de daar voor bestemde locatie,
  5. Ik zorg dat de gebruiker en de groep goed komen te staan en als laatste de rechten op dit bestand.

In het laatste deel van de taken die uitgevoerd moeten worden, starten we de service en zorgen dat hij na een reboot ook weer netjes opstart. Zelfs met een geringe kennis van Ansible kun je dit bestand toch goed lezen.

Of dit playbook nu bedoeld is voor het installeren van een Apache webserver op een Linux machine of IIS op een Windows server: het ziet er op de commando’s na ongeveer het zelfde uit. Uiteraard kun je geen yum gebruiken op een Windows server maar moet je win_package of win_chocolatey gebruiken.

Wat kun je nog meer met Ansible?

Naast automatisering kun je met Ansible ook omgevingen beheren. Omdat Ansible met een SSH-verbinding werkt kun je ook nog andere units rechtstreeks beheren, bv. netwerkzaken (switches, routers) en loadbalancers zoals F5.

Waarom deze zaken beheren met een tool die niet van de leverancier afkomt?

Bedenk het volgende: je moet eens in de x-maanden een update van je routers gaan uitvoeren. Het team is hier een aantal dagen per maand mee bezig. Het is allemaal handwerk: je start met het maken van een back-up, doet dan de firmware-update, zet de configuratie weer terug en start het device opnieuw op.

Allemaal handelingen die grotendeels handmatig gedaan moeten worden, en waar makkelijk fouten in sluipen. Je vergeet een back-up te maken van de configuratie, of van de nu draaiende firmware (want die versie heb je toch nog wel ergens staan...je weet wel hoe dat gaat). In de praktijk denk je al snel: ik doe het er wel even tussen door, of ik heb vanavond nog wel even tijd. Of wat dacht je van het volgende: je kunt er maar één tegelijk uitvoeren anders ga je zaken door elkaar halen.

Hoe mooi zou het zijn dat je dit parallel kunt uitvoeren op een aantal routers tegelijk. Met Ansible kun je dit realiseren:

  • je doet een inventarisatie van de routers die je gaat upgraden,
  • je gebruikt een aantal variabelen die bepalen waar de back-ups komen te staan en waar de configuratie en de back-up van de firmware,
  • en geeft vervolgens aan waar de nieuwe firmware voor de router staat,
  • Je start het Ansible playbook en kunt ondertussen iets anders gaan doen. Heeft Ansible de upgrade uitgevoerd en de configuratie weer teruggezet, dan krijg je netjes een melding dat het gelukt is. Mislukte het, dan kun je eenvoudig alles terugdraaien of onderzoeken waar de installatie fout ging.

Ansible Tower

Tot nu toe heb ik het steeds over Ansible (Engine) gehad, een stand-alone oplossing die iedere beheerder heel eenvoudig kan gebruiken. Er is echter ook een beperking: je kunt namelijk niet zien wie, wat, wanneer heeft uitgevoerd op het systeem. Uiteraard kun je daar wel iets omheen bouwen, maar in principe worden logfiles (bij het commando wat ik in het voorbeeld gebruikt is dit Ansible Playbook) niet centraal opgeslagen. De logging staat op je scherm en niet in een logfile.

Red Hat Ansible Tower kan dit wel: je komt dan binnen op een webpagina waar je in een oogwenk kunt zien wat de laatste playbooks zijn die opgestart zijn (figuur 1).

In figuur 2 zie je een voorbeeld van de logging. Je ziet wie, wanneer, wat heeft uitgevoerd en kunt hier op ook doorklikken. Zo krijg je een goed inzicht in het gebruik in - en van de omgeving.

Red Hat Ansible Tower figuur 1
Figuur 1
Red Hat Ansible Tower figuur 2
Figuur 2

Ansible Tower Workflow

Een bijkomend voordeel van de Tower-omgeving is de optie om een workflow te maken. Met zo’n workflow bepaal je wat er moet gebeuren nadat een playbook goed is afgerond. Maar ook als dit niet het geval is.

Stel, je wilt een omgeving van een webserver met een databaseserver installeren en configureren. Daarvoor moet je een aantal standaard stappen uitvoeren. Je begin met het installeren van de databaseserver. Deze moet je vullen maar dit kan pas als het vorige Playbook is gelukt. Dus nadat je groen licht heb gekregen, vul je de database. Is dit gelukt dan pas kun je verder met het opvouwen van de webserver-omgeving.

Gaat ergens in deze keten iets niet goed, dan kun je automatisch een rollback laten starten. Bijvoorbeeld: wordt om een of andere reden de database niet gevuld, dan heb je ook niets aan de webserver. Je start een de-installatie-playbook op die de database stopt, de datadirectory weggooit en de database de-installeert, waarna het Playbook stopt. 

Red Hat Ansible Workflow
Figuur 3

Het bovenstaande voorbeeld laat een workflow zien: wat moet het systeem doen als de condities zijn behaald (de groene lijn) en wat moet het doen als het niet goed is gegaan (de rode lijn)?

Start je nu deze workflow op, dan laat hij je precies zien waar je in het proces zit en kun je, door te klikken in de module, direct live zien wat er wordt uitgevoerd.

Schrijf je in voor ons webinar!

Ben je nieuwsgierig geworden naar de mogelijkheden en voordelen van Red Hat Ansible? Op 26 november organiseren we van 10:00 uur tot 11:00 uur een webinar over dit onderwerp. Solution Specialists Jan van Bruggen, Ruud Baas en Eelco Audiffred vertellen je alle over deze tool en beantwoorden alle vragen die je hebt.

Schrijf je nu in!

Meer weten over Ansible of advies nodig?

Automatiseringstools zijn voor veel organisaties nog redelijk onbekend, terwijl er veel tijdwinst en daarmee besparingen te realiseren zijn. IT-afdelingen kunnen efficiënter, effectiever en met minder fouten meer doen. Wie wil dat niet?

Heb je interesse in Red Hat Ansible maar wil je graag meer weten of heb je advies nodig? Neem dan met ons Red Hat team contact op.

Jan van Bruggen

Jan van Bruggen

Solution Specialist Red Hat

 jan.vanbruggen@softwareone.com

 +31 6 2446 3315

 LinkedIn

Ruud Baas

Ruud Baas

Solution Specialist Red Hat

 ruud.baas@softwareone.com

 +31 6 5361 2817

 LinkedIn

Eelco Audiffred

Eelco Audiffred

Internal Solution Specialist Red Hat

 eelco.audiffred@softwareone.com

 +31 6 1040 9337

 LinkedIn

  • Automation, Management

Reageer op dit artikel

Laat een reactie achter om ons te laten weten wat je van dit onderwerp vindt!

Laat een bericht achter

Auteur

Jan van Bruggen

Jan van Bruggen

Solution Specialist Red Hat

 

 jan.vanbruggen@softwareone.com

 +31 6 2446 3315

 LinkedIn

Gerelateerde blogs

Publisher Advisory Services VMware Cloud Foundation
  • 13 oktober 2020
  • Ferdinand Stijn
  • VMware, Hybrid Cloud

VMware en de public cloud - hoe creëer je een hybride omgeving?

De public cloud levert nieuwe uitdagingen op terwijl een hybrid cloud wellicht beter aansluit. VMware Cloud Foundation levert een complete set van cloud services voor compute, storage, netwerk, security, container management en Cloud management.

De nieuwe veranderingen binnen Autodesk

“De afgelopen drie jaar heeft men afscheid genomen van de perpetuele licenties met maintenance contracten” zegt Leon Wauters, Inside Solution Advisor bij SoftwareONE.

patchen-van-servers
  • 07 oktober 2020
  • Wouter Poppenk
  • Cybersecurity
  • Security, Vulnerability Management

Tenable Nessus Pro versus Tenable.IO / Tenable.SC

“Als je bijvoorbeeld niet weet dat een niet-gepatchte server überhaupt in je omgeving staat kan je hem ook niet patchen” zegt Wouter Poppenk, Security Specialist bij SoftwareONE. Lees meer