Bij Neoria (en Nutanix) geloven we sterk dat automatisatie een essentieel onderdeel moet zijn van je IT Operations strategie. Door te automatiseren verminder je namelijk het aantal manuele repetitieve taken, verminder je zo de kans op menselijke fouten en kan je meer doen met hetzelfde aantal mensen. De keerzijde is echter dat automatisatie ook een nieuwe complexiteit en risico’s met zich meebrengt.
Als we machines zelf actie laten ondernemen is het soms moeilijk om controle te houden en kan het snel heel fout lopen… (Skynet anyone? 😊) Ook is de opstart van automatisatie een grote stap voor vele IT Ops teams: het kost hen meer tijd om te leren coderen dan de taak snel manueel te doen. Leren coderen en een omgeving opzetten om deze code gestructureerd bij te houden en op een gecontroleerde manier te laten uitvoeren is iets waar we met Neoria zeker mee kunnen helpen, maar het vergt dus wel wat denkwerk vooraf. Om de stap naar het denken in processen (playbooks) en acties (actions) te verkleinen is er Nutanix X-Play!
X-Play laat je toe om op een eenvoudige manier, zonder dat je eerst moet leren coderen, geautomatiseerde acties uit te werken. Het is een soort IFTTT (If This, Then That) automatisatie framework waar je geautomatiseerde acties kan definiëren rond alerts of voor gedefinieerde events in een Nutanix-omgeving.
X-Play maakt onderdeel uit van de Prism Pro. Buiten de ‘Codeless Task Automation’ zitten hier nog veel andere nieuwe mogelijkheden in die ik ook in toekomstige blogs zal bespreken.
Met behulp van enkele voorbeelden, leg ik het in dit artikel uit hoe je aan de slag gaat met X-Play. Maar eerst wat terminologie!
Playbook
Een Playbook is het ‘script’ van de verschillende acties die in een bepaalde volgorde worden uitgevoerd. Een playbook is dus de verzameling van stappen die we willen geautomatiseerd zien als er ‘iets’ gebeurt in de omgeving.
Action
Een Action is één functie of taak binnen een Playbook.
Play
Een play is een afgespeeld Playbook.
Trigger
Een Trigger is iets dat als aanleiding geldt om een playbook uit te voeren. Een soort van ‘startknop’.
De X-Play functionaliteit vind je in Nutanix Prism Central, onder ‘Operations’ – ‘Playbooks’
Via Create Playbook kunnen we een ‘trigger’ kiezen voor onze Playbook.
Er zijn verschillende opties:
In het eerste voorbeeld kiezen we ‘Manual’ om een nieuwe functie toe te voegen aan Prism Central voor AHV. We gaan een manuele actie maken om nodes van de cluster in Maintenance Mode te zetten, deze functie is normaal enkel command line beschikbaar.
We creëren dus een playbook met als trigger ‘manual’. We moeten nu aangeven op welk onderdeel onze playbook moet werken, in dit geval is dit host. Nu we weten waarop we ons script gaan laten lopen, is het tijd om het script zelf samen te stellen op basis van een opeenvolging van acties.
Een heel deel acties zitten reeds gebruiksklaar in X-Play en deze set wordt continu uitgebreid. Meevaller! Zo zijn er conditionele acties om IF/THEN/ELSE logica in ons playbook te brengen, data manipulatie acties om bv. te zoeken in een string en op basis daarvan weer verder te gaan, en veel meer.
In ons voorbeeld van de Maintenance Mode gebruik ik de IP Address SSH en de Slack-communicatie-actie
De IP address SSH actie laat ons toe te connecteren via SSH (secure shell) naar het cluster IP-adres van onze Nutanix-cluster; username en wachtwoord worden geëncrypteerd bijgehouden en kunnen niet gelezen worden. Security: check!
We geven ook het CLI (command line interface) commando mee dat we willen uitvoeren. Hier wordt dat: /home/nutanix/bin/acli host.enter_maintenance_mode Dit commando heeft als parameter de UUID van de host nodig die we in Maintenance Mode willen zetten. X-Play laat ons toe op een eenvoudige manier parameters mee te geven op basis van waar we het script triggeren. We geven dus automatisch de juiste UUID mee zodat de gewenste node in Maintenance Mode gaat.
Ik laat het Neoria-team graag weten wat er op de omgeving gebeurt dus ik laat de playbook rapporteren in ons intern Slack-kanaal.
Als we deze playbook nu op ‘Enabled’ zetten kunnen we die gaan gebruiken. Onder ‘Hosts’ in Prism Central kiezen we de host die we in Maintenance Mode willen zetten en in de Action dropdown kiezen we Run Playbook.
Vervolgens kiezen we het gewenste playbook:
En wordt de Play afgespeeld.
Als alles goed gaat, zien we in Slack de output, dat ook de parameters en output van ons CLI commando bevat.
Ook al is X-Play een eenvoudige manier om scripts te creëren, toch kan het voorvallen dat je playbook niet van de eerste keer werkt. Gelukkig kan je via de logging van je Play meestal snel vinden waar het fout loopt. (bv. verkeerd SSH password)
Een extra’tje voor de mensen die vroeger scripting deden: er bestaat ook hier een ‘on error resume next’ mogelijkheid 😉 Dat maakt het gemakkelijk om te debuggen.
Wie, wanneer en waarom welk playbook heeft/is uitgevoerd kan je ook eenvoudig nakijken.
Ook meer complexe playbooks zijn zeker haalbaar zoals onderstaande:
In bovenstaand voorbeeld gaan we op basis van een alert dat aangeeft dat er ‘te veel’ memory aan een VM is toegekend, dit geheugen laten afnemen. Dat doen we pas nadat we de administrator een e-mail sturen. We wachten vervolgens tot zondag, nemen een snapshot, zetten de VM af, verminderen het geheugen en zetten we de VM terug aan. Ook de Alert wordt weer netjes afgezet en de admin krijgt opnieuw een e-mail. Zo zie je maar: toch een vrij complexe actie die we zonder 1 letter code kunnen uitwerken!
Een ander eenvoudig playbook is het rapporteren als er een nieuwe VM wordt aangemaakt. Hier maken we een playbook met als trigger ‘event’.
Het komt erop neer dat we elke keer een bericht in ons Slack-kanaal krijgen als iemand een VM gecreëerd heeft.
Dit waren maar enkele eenvoudige voorbeelden van de kracht van automatisatie met X-Play.
Op YouTube kan je nog extra voorbeelden vinden:
Ik ben benieuwd hoe jullie de wondere wereld van X-Play ervaren! Hulp nodig? Graag aan de slag in je eigen IT-team? Contacteer me zeker!
Bart Van Praet
Infrastructure architect
Nutanix Tech Champion