Telling stories for a living

Tag: Powershell

De laatste dagen amuseer ik mezelf meer en meer met het creëren van Powershell scripts voor VMWare. Powershell op zich is al een erg interessante scripting taal die al zijn voorgangers op serieuze achterstand zet en naar mijn mening zeer toegankelijk is, ook voor niet-programmeurs zoals mezelf.
Om Powershell los te laten op VMWare omgevingen, heb je een extra tooltje van VMWare zelf nodig: vSphere PowerCLI (werkt perfect met VI3 hoor) dat te downloaden is op de VMWare website. Samen met de standaard Powershell installatie geeft die plugin je een waaier van opties die serieus de moeite zijn voor alle VMWare admins out there.
Persoonlijk heb ik een aparte virtuele machine in mijn omgeving waarop ik allerhande management / monitoring tools installeer voor de VMWare omgeving. Dit zorgt er niet alleen voor dat elke admin toegang heeft tot de logs en de mogelijkheden van de eerder genoemde tools, maar ook dat je computer niet moet blijven opstaan (lees: niet gereboot mag worden) omdat er één of ander script aan het lopen is.
Eenmaal alles deftig geïnstalleerd is, is the sky the limit. Virtuele machines aanmaken, deleten, starten, stoppen, snapshotten, herconfigureren, clonen, migreren,… you name it. Vaneigens mag je de scripts van “scratch” opbouwen, maar zelf vind ik het nogal dom om telkens opnieuw het warme water te gaan uitvinden, dus is Google mijn beste vriend ;-). Zoek met enkele keywords naar een goed basisscript en pas dit dan aan naar gelang wat je nodig hebt.
Does the trick over here! Mijn recentste “creatie” is een scriptje dat alle virtuele machines in de resource pool “Production” afloopt en alle snapshots verwijdert die ouder zijn dan 15 dagen. Aangezien ik voor backup redenen van de productie-VM’s wekelijks een snapshot maak, zorgt dit script ervoor dat de er nooit meer dan twee snapshots beschikbaar zijn. Dit houdt de machine snel en neemt de manuele arbeid om de snapshots te deleten uit de vergelijking. Plus je kan die scripts in een schedule draaien zodat die zaken gewoon ‘s nachts kunnen lopen.
De code:

$a = get-vm -Location Production;Get-Snapshot $a | Where { $_.Created -lt (Get-Date).AddDays(-15)} | remove-snapshot -Confirm:$false

Het script zoekt alle virtuele machines in de resource pool “Production” en plaats die lijst in de variabele “a”. Die informatie wordt “gepiped” naar het volgende commando waar de virtuele machines die in lijst “a” zitten gescand worden op snapshots die ouder zijn dan 15 dagen. Alle snapshots die ouder zijn dan de vooropgestelde periode worden verwijderd zonder dat er een confirmatie van de admin moet zijn.
That’s it.

Vorige week was er een van opleiding en events. De opleiding heeft drie dagen geduurd en behandelde Microsoft Powershell (voordien onder de codenaam “Monad” gekend), de nieuwe scripttaal (veel meer dan dat in feite, hence the name “shell”) van Microsoft waarmee ze willen tegenmoet komen aan de kritiek die vooral uit de UNIX wereld (waar ze o.a. Bash hebben als degelijke shell).
Microsoft heeft Powershell dan ook serieus verwoven in hun nieuwste producten – ik denk aan Windows 2008 Server & Exchange 2007 – waardoor de intrede van Powershell in de meeste bedrijven niet lang meer op zich zal laten wachten. Veel zaken zijn trouwens enkel via Powershell uit te voeren en niet meer via de GUI (bijvoorbeeld een hoop nieuwe mailboxen aanmaken in Exchange of bijvoorbeeld het management van Windows 2008 Server Core). Powershell zal dus een serieuze prerequisite worden voor iedereen die in de infrastructuurwereld van Windows zit…
En dat is een goede zaak vind ik zelf. Powershell werkt goed en is veel simpeler dan bijvoorbeeld Visual Basic Scripting. Nu moet ik wel toegeven dat ik nooit een boon gehad heb voor programeerwerk (incl. scripting) dus dat zal er ook wel mee te maken hebben, maar op zich spreekt dat ook in het voordeel van Powershell, want zelfs met mijn beperkte kennis & interesse in het platform, was ik er snel mee aan de slag en vond ik het nog leuk ook.
Vooral het modulair gegeven is leuk. Powershell bevat namelijk al een hoop voorgemaakte “mini-scriptjes” onder de vorm van commando’s. Zo is het erg simpel om bijvoorbeeld bepaalde systeem informatie op te vragen via een “get-xxx” commando, iets waar je vroeger toch eerst een hoop procedures moest voor aanroepen alvorens je resultaat had.
Over de cursus zelf kan ik kort zijn: niets waard. Ik heb zelf de opleiding gevolgd bij Guidance te Brussel en eerlijk gezegd, als ik het boek gewoon had meegekregen dan had ik dezelfde kennis kunnen opdoen zonder de opleiding zelf. Het boek kost 40€, de opleiding in totaal iets van een 1400€ dacht ik…
Veel is natuurlijk te wijten aan de docent zelf (in dit geval een externe consultant waarvan ik de indruk kreeg dat hij het er maar bij deed voor de €€€) die naar eigen zeggen geen “guru” was, maar eerder een all-round Windows consultant. Sorry, maar ik kan de slides ook lezen en de oefeningen uit het boek samen maken. Daar zit geen meerwaarde in, want dat kan je zelf via internet of een goed boek. De meerwaarde moet volgens mij liggen bij het feit dat de docent u tips & tricks kan meegeven die je niet direct in een boek kan vinden… best-pratices, te vermijden en aan te raden acties,… noem maar op.
Enfin, kort gezegd, allemaal zaken die ik niet gezien en gehoord heb. Misschien is het ook wel gelegen aan Guidance, want vroeger, toen ze nog een paar verdiepen hoger zaten in de Buro & Design toren aan de Heizel, was het toch allemaal wat groter en praktischer (en toen vond ik hun lokalen al serieus klein). Nu zitten ze op het eerste verdiep en is het nog meer benepen en komt het toch een beetje amateuristisch over vind ik zelf.
Ik weet terug waarom ik zelf altijd mijn opleidingen bij Global Knowledge te Mechelen regel. Grotere lokalen, grotere gebouwen, betere infrastructuur en naar mijn bescheiden mening ook beter gekwalificeerde lesgevers. En niet onbelangrijk, betere catering ;-). En je moet niet door Brussel rijden, wat ook een voordeel is en een aangename afwisseling ten opzichte van de gewone werkweek.

Vergeet VBScripting, vergeet WMI, er is een nieuwe koning in het land: Powershell. Kwa uiterlijk lijkt het goed op een DOS-venster dat iedereen wel kent. Kwa kracht is het onbegrensd. Scripting is nooit makkelijker geweest en meer krachtig dan nu. Gisteren heb ik een doorgedreven introductie gekregen in Powershell en naar goede gewoonte ermee kunnen spelen tijdens de labo’s en ik ben zeker en vast overtuigd! Zo gemakkelijk en logisch dat dat ding in elkaar zit. Waar je in VBS bij manier van spreken 2 A4-bladen moest volschrijven om iets gedaan te krijgen, kan dit in Powershell met een paar regeltjes.
Het komt er eigenlijk op neer dat je CMDLets oproept (spreek uit Commandlets) wat simpel gezegd scripts op zich zijn. En daar kan je dan variabelen aan meegeven of de uitkomst daarvan gewoon “pipen” naar een andere CMDlet. Kortom, the sky is the limit.
Ik het het ondertussen geinstalleerd op mijn Vista en ga er op het werk ook al mee experimenteren. Windows 2003, XP en Vista bieden out of the box ondersteuning (Powershell is in feite een .Net component) en Windows 2008 zal er veelvuldig gebruik van maken. Exchange 2007 trouwens ook.
Powershell, the future is upon us. In de loop van de komende dagen post ik wel enkele interessante links over PS, maar ondertussen kunnen jullie al eens Google’en nietwaar?

© 2024 Unexpected.be

Theme by Anders NorenUp ↑