Servers beheren automatiseren: altijd up-to-date met Ansible!

Als systeembeheerder zit je niet te wachten op een hoop handmatige taken. Toch gaat tientallen webhostingservers onderhouden niet vanzelf. Gelukkig kun je met de juiste tooling het jezelf flink makkelijker maken. Ansible is zo’n hulpmiddel. Daarmee rol je automatisch taken uit op IT-systemen. Graag vertel ik je wat meer over hoe wij het inzetten om jou de best mogelijke dienstverlening te leveren!

Automatisch servers updaten met Ansible!

Strak update-beleid

Op onze servers draaien we software die nodig is om je website te serveren. Om dit altijd snel, veilig en stabiel te kunnen doen, is het belangrijk dat deze software up-to-date blijft. Alweer flink wat jaren geleden hebben we daarom een tweewekelijkse routine ingevoerd. In elke week met een oneven nummer voeren we op donderdag server-updates uit. Intern noemen we deze routine daarom ook wel ‘update-donderdag’.

Het hebben van zo’n routine heeft een aantal waardevolle voordelen. Zo is iedereen op de hoogte wanneer er welke updates gaan plaatsvinden. Er zijn hierdoor geen verrassingen voor medewerkers, omdat het updaten op een vast moment gebeurt. Daarnaast weet je door het vaste moment ook of een mogelijke verstoring wel of niet gerelateerd is aan de update. Vooral voor Support is dat bijzonder handig om een gemeld probleem in kaart te brengen.

Meer systeem- en netwerkbeheer…

Wil je meer weten over wat Systeembeheer zoal doet? Lees hoe we ons platform continu in de gaten houden met Zabbix.

Monitoring met Zabbix →

Waarom je tooling wilt gebruiken

Bij Antagonist hebben we een groot aantal webhostingservers. Belangrijk is dat die stuk voor stuk dezelfde versie draaien van de systeemsoftware. Zou daarin verschil zitten, dan wordt de monitoring te onoverzichtelijk. Als er iets opspeelt binnen het platform, dan wil je niet rekening hoeven houden met allerlei randvoorwaardes. Situaties als “Mogelijk gebeurt dit alleen op server X, want daar draait nog softwareversie Y” wil je dus graag voorkomen.

Nu kun je natuurlijk op iedere server apart inloggen en de software updaten. Dat vereist alleen veel handwerk en dat voorkomen we liever. We gebruiken daarom Ansible. Met deze tool kun je handmatige taken automatiseren, zoals het updaten van systeemsoftware. Dat heeft als voordeel dat je gemakkelijk centraal nieuwe softwareversies uitrolt. Ook wanneer er haast bij is. Denk aan bijvoorbeeld updates die kritieke beveiligingsproblemen oplossen.

Servers plaatsen in het datacenter.

Servers updaten met Ansible

We hebben nu besproken waarom we een strak update-beleid belangrijk vinden en waarom we dat geautomiseerd doen. Laten we nu eens kijken naar hoe het updaten zelf in zijn werk gaat. Dat proces begint met het schrijven van een script. Daarin staat beschreven welke software wordt geüpdatet en op welke webhostingservers dat gebeurt. Om te bepalen wat moet worden geüpdatet, pakken we een willekeurige server. Daar vragen we op welke updates er beschikbaar zijn. Zo ontstaat er een lijst met software die we toevoegen aan een Ansible-script. Hieronder zie je daar een voorbeeld van.

- hosts: webhosting
  strategy: free
  tasks:
    - name: update packages
      dnf: name={{ packages }} state=installed
      vars:
        packages:
          - ImageMagick6-libs-1:6.9.12.39-1.el8.remi
          - alt-ImageMagick-0:7.1.0-20.1.el8
          - alt-ImageMagick-libs-0:7.1.0-20.1.el8
          - alt-libwebp-0:1.2.2-1.el8
          - alt-php56-0:5.6.40-64.el8
          - alt-php73-pecl-ext-0:1-46.el8
          - alt-php74-pecl-ext-0:1-32.el8
          - alt-php80-pecl-ext-0:1-21.el8
          - alt-python27-0:2.7.18-5.el8
          - composer-0:2.2.6-1.el8.remi
          - cryptsetup-libs-0:2.3.3-4.el8_5.1
          - directadmin-0:1.63.6-1.el8
          - directadmin-skin-antagonist-0:1.63.6-1.el8
          - directadmin-skin-evolution-0:1.63.6-1.el8

Ansible-script testen op ontwikkelservers

Nu het Ansible-script klaar is, kan het worden uitgevoerd. We doen dat niet gelijk op servers die in productie zijn en waar je hostingpakket op draait. In plaats daarvan testen we het op ontwikkelservers (ook staging genoemd). Zo’n server is identiek ingericht als een server in productie, maar wordt dus niet gebruikt door klanten. Dat geeft ons de mogelijkheid om het update-script te testen en te kijken of alles vlekkeloos verloopt. Waar nodig, stellen we het bij.

Productieservers updaten

Als we ervan zijn verzekerd dat het script feilloos is, kunnen we door naar het einddoel: software updaten op productieservers. Gezien daar ook jouw hosting op draait, gebeurt dit met veel zorgvuldigheid. Na op onze statuspagina het onderhoud te hebben aangekondigd, voeren we het script eerst uit op zes servers. Vervolgens controleren we in de dagen erna of alles naar verwachting draait. Pas als dat is vastgesteld, gebruiken we het Ansible script om ook de rest van de servers te updaten.

Nuttig voor meer dan alleen updates
Naast grootschalig onderhoud, is Ansible ook handig voor andere taken die je op veel servers tegelijk liever niet met de hand doet. Zo kun je er ook processen mee stoppen of bestanden mee aanmaken.

Veilig en up-to-date dankzij Ansible

Hopelijk heb je zo een beetje een beeld gekregen waarom Ansible handig is en hoe wij het gebruiken. Zo’n tool bespaart je niet alleen tijd en geld, maar geeft je ook grip op versiebeheer. Deze update-routine herhaalt zich iedere twee weken, zodat jij verzekerd bent van een veilig hostingplatform. Keer op keer hebben we daarom baat bij de automatisering die Ansible mogelijk maakt.

P.S. Blijf op de hoogte en volg ons via Facebook, Twitter, Instagram, e-mail en RSS. Heb je vragen, tips of opmerkingen? Laat het achter als reactie. Vond je het artikel nuttig? Deel het dan met anderen!

Deel App Tweet Mail Deel

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.