VMUG Meeting 8 april 2010 The Virtualization Ecoshell Initiative Alan Renouf Arne Fokkema Arnim van Lieshout Marcel van Os Viktor van den Berg
Welkom & Agenda Welkom bij deze VMUG Meeting! Agenda 16:00-16:20 Welkom bij deze VMUG Meeting Wat is de bedoeling A word from our sponsors 16:20-17:30 Introductie tot het beheer van vsphere 4 met Powershell en VMware PowerCLI + Labs 17:30-18:00 Introductie tot The VESI 18:00-18:45 Pizza! 18:45-19:15 Vervolg The VESI 19:15-20:30 The VESI Powerpacks& Powershell Toepassingen
Welkom & Agenda Dank gaat uit naar Vizioncore& XTG voor het supporten van deze meeting XTG voor de faciliteiten Vizioncore voor de pizza s & drank! Diegenen die achter de schermen hebben meegewerkt: Alan Renouf Arne Fokkema Arnim van Lieshout Marcel van Os
De sponsoren XTG Vizioncore
IntroductiePowershell/ PowerCLI Arnim van Lieshout Viktor van den Berg
Wat is Powershell? Powershellis eenkrachtigecommand prompt / shell die eenreeks commandlets beschikbaar maakt Is enigszinste vergelijkenmet watde BASH shell is op Linux Powershell zit standaard in Windows 7 Kan geïnstalleerd op Windows OS-en die het standaard niet hebben (XP, W2K3)
It s all about objects PowerShell is object georiënteerd Dus alles is een object ook al is dit niet altijd zichtbaar Een object heeft eigenschappen (properties) PS> VMUG Meeting.length 12 en functies (methods) PS> VMUG Meeting.toupper() VMUG MEETING
Gestructureerde commando s (Cmdlets) Naast de ondersteuning voor traditionele Windows executables, introduceert PowerShell een nieuw type commando met de naam command-let. Get-Command geeft een overzicht van de beschikbare cmdlets Get-Member (gm) geefteenoverzichtvan de beschikbaremethods en properties PS> VMUG Meeting gm Get-Help geeft hulp bij het gebruik van cmdlets PS>Help Get-Member PS>Help Get-Member detailed PS>Help Get-Member examples
Variabelen & Arrays Variabelen beginnen altijd met $ Een variabele kan 1 of meerdere objecten(collection) bevatten PS>$var = 1 PS>$var.gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Int32 System.ValueType Meest voorkomende collection is het array PS>$var = 1,2,3 PS>$var.gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array Een element in een array wordt geadresseerd door zijn index nummer PS>$var[1] 2
Pipeline Met het pipe ( ) commando kunnencommando s doorgesluisdworden, net zoalsmet BASH en de oudecommand prompt Inpricipe dus niks nieuws PS>Dir More Maar.de PowerShell pipeline is object georiënteerd Er wordt geen tekst geconverteerd maar objecten worden doorgegeven Waarom zien we dan wel tekst? PS>Dir Out-Default Op de pipeline worden arrays uit elkaar gehaald en als losse objecten doorgegeven De speciale variabele $_ bevat het actuele pipeline object PS>Dir c:\ where { $_.length -gt 2048 }
Condities en Loops Veel voorkomende operators: -eq, -ne -gt, -lt, -contains, -match Structuren: Where-Object (?) Where { $_.Name -eq server01 } If-Else If ($var lt 4) { Write-Host Kleiner dan 4 } Else { Write-Host 4 of meer } ForEach-Object(%) evalueerd elk object afzonderlijk PS>Dir c:\ ForEach-Object { $_.Name.ToUpper() } PS>Dir c:\ % {$_.FullName} PS>ForEach ($item in Dir c:\) { $item.fullname }
PowerShell Cheat Sheet
Meer PowerShell? http://powershell.com/cs/blogs/ebook/
Wat is PowerCLI? Is eensnapinin PowerShellmet 229 cmdlets(sinds4.0 U1) voorhet beheren van een VMware infrastructuur Gebruik Get-VICommand voor een overzicht van de beschikbare cmdlets Met PowerCLIis allesmogelijk, datmet de VI Client mogelijkis, en meer PowerCLI kan gebruikt worden voor zowel het opvragen van gegevens (get) als het wijzigen van gegevens(set) Get-VM Set-VM Maar ook voor het aanmaken en verwijderen van objecten New-VM Remove-VM
VMware vsphere PowerCLI
Hoe VMware PowerCLI installeren? Installeer.NET framwork 3.5 SP 1 (is nodig voor de out-gridview cmdlet) InstalleerPowerShell(onderdeelvan Windows 7 / w2k8 R2 of gratis te downloaden vanaf de Microsoft website voor XP, Vista, w2k3, wk28) Installeer VMware PowerCLI 4.0 U 1 Set-ExecutionPolicy RemoteSigned
PowerShell en PowerCLI command-lets Het is net de vsphere Client! Acties in de GUI hebben een equivalent in PowerCLI Hoe werkt het? GUI buttons en menu s vsphere API PowerCLI command-lets vsphere API Net zoals in de vsphere Client moet je: Aanmelden op ESX of vcenter Server Objecten selecteren waar je iets mee wilt doen Acties selecteren die je wilt uitvoeren
vsphere Client (GUI) versus PowerCLI Voorbeeld in de GUI: Aanmelden op vcenter Server Een VM selecteren Op Edit settings klikken PowerCLI script: Connect-VIServer -Server esx1.xtg.local User root -Password vmware Get-VM Where {$_.name eq Server1 }
Uitvoer van Get-VM Voorbeeld van de uitvoer van Get-VM: Verbinding maken met vcenter Server (port 443) Uitvoer van Get-VM Name Port User vcenterteam1.xtg.local 443 admin11 PowerState : PoweredOn Description : VMUG PowerShell Workshop Dummy VM Notes : Dit is een dummy VM Guest : VMware.VimAutomation.Client20.VMGuestImpl NumCpu : 1 MemoryMB : 512 HardDisks : {Hard disk 1} NetworkAdapters : {Network adapter 1} CDDrives : {CD/DVD Drive 1} FloppyDrives : {Floppy drive 1} Host : esx1.xtg.local HostId : HostSystem-host-8 VMHostId : HostSystem-host-8 FolderId : Folder-group-v349 ResourcePoolId : ResourcePool-resgroup-24 DatastoreIdList : {Datastore-datastore-1201} Id : VirtualMachine-vm-120 Name : dummyvm
De pijplijn in actie Alleen maar Get-VMis beperkt; ik wil juist de apparaten in een VM zien (CD, Virtual Disk)! Oplossing: Gebruik de pijplijn om binnen een Get-VMstatement de gewenste apparaten weer te geven. Voorbeeld: Connect-VIServer -Server esx1.xtg.local User root -Password vmware Get-VM Get-HardDisk
Uitvoer voor apparaat binnen VM Voorbeeld van de uitvoer van Get-VM: Verbinding maken met vcenter Server (port 443) Uitvoer van Get-HardDisk binnen Get-VM Name Port User vcenterteam1.xtg.local 443 admin11 StorageFormat : Thick Persistence : Persistent DiskType : Flat Filename : [VMFS_4_ALL] dummy-vm/dummy-vm.vmdk CapacityKB : 6291456 ParentId : VirtualMachine-vm-120 ConnectionState : Id : VirtualMachine-vm-120/2000 Name : Hard disk 1
Connectie maken met vsphere Connect-VIServer Sinds U1 de mogelijkheid om met meerdere servers verbonden te zijn Cmdlets worden dan op alle verbonden servers uitgevoerd(indien er geen specifieke server wordt opgegeven) Connectie naar zowel vcenter Server als ESX server mogelijk $global:defaultviservers variabelegeefteenoverzichtvan de connecties
Toepassingen van VMware PowerCLI Overzicht van VMs PS>Get-VM PS>Get-VM server01 Overzicht van ESX Hosts PS>Get-VMHost PS>Get-VMHost esx01 Overzicht van Clusters PS>Get-Cluster PS>Get-Cluster cluster01 Overzicht van PortGroups PS>Get-VirtualPortGroup
Toepassingen van VMware PowerCLI Overzicht van alle snapshots PS>Get-VM Get-Snapshot Overzicht van snapshots ouder dan 14 dagen PS>Get-VM Get-Snaphot Where {$_.Created -lt ((Get-Date).AddDays(-14))} Verwijderen van alle snapshots PS>Get-VM Get-Snapshot Remove-Snapshot
Vesi Script Editor Een script kun je natuurlijk in Notepad maken, maar VESI Script Editor biedt een grafische tool voor het ontwikkelen van PowerShell scripts Onderdeelvan The VESI en dusgratis
Get-VMDiskUsage
LAB1 Werken met de PowerCLI VESI Script Editor Set-ExecutionPolicy Connect-VIServer / Disconnect-VIServer Get-VM Pipeline ( ) Variabelen Loops
Introductie The Virtualization Ecoshell Iniative Arnim van Lieshout Viktor van den Berg
The Virtualization Ecoshell Het doel van The Virtualization Ecoshell is om een freeware desktop applicatie te bieden die voor zowel beginners als ervaren beheerders een raamwerk biedt om Powershell scripts te gebruiken in de IT infrastructuur.
The Virtualization Ecoshell Met The VESI kun je: Verzamel informatie uit verschillende bronnen Filter zodat je alleen krijgt te zien wat je wilt Verander jou omgeving om alles te krijgen zoals het hoort Maak een verslag van de verkregen gegevens Integreer en breid de mogelijkheden uit
The VESI -Console
The VESI Wat kun je ermee? Task Automation Door taken die vaak voorkomen te automatiseren in een script, kun je de hoeveelheid beheerdersfouten reduceren. Bijvoorbeeld: Rescan HBA Aanmaken portgroup op meerdere vswitches VM Configuratie aanpassen
The VESI Wat kun je ermee? Administrative Reports Voorziet in aanpasbare reports in HTML, XML en CSV formaat.
The VESI Wat kun je ermee? Powershell Script Assistance Sneller zelf PS scripts schrijven door gebruik te maken van de beschikbare tools binnen The VESI voor script ontwikkeling.
The VESI Wat kun je ermee? Charts Je kunt grafieken op maat maken m.b.v. de chart functionaliteit.
The VESI Wat kun je ermee? Filters / Best Practice Filters Met behulp van filters op zoek gaan naar bepaalde objecten binnen de vsphere 4 infrastructuur
Custom Scripts Een PowerShell script kan gewoon gekopieerd worden in een script node New Script Node
Best Practice Queries
LAB 2: Werken met de Virtualization Ecoshell Servers toevoegen aan de VESI Commando s uitvoeren binnen VESI Report maken Node / Script Node
Extend the functionality of The Vesi: Powerpacks Alan Renouf Arne Fokkema
Agenda Short Introduction Create your own Powerpack Demo 1: Create Script Nodes and Actions VMware Community Powerpack Demo 2: More advanced scripts and Ideas Software we use Websites for more PowerCLI info Twitter Labs
Introduction Alan / Arne
Home Lab
Create your first PowerPack Create a Script Node Check if you re connected to a vcenterserver or not How to use the $input ForEach-object loop:
Demo 1: Create Script Nodes and Actions List VMs where WakeOnLan is disabled Script action to enable WakeOnLan List ESXiHosts Script action: Backup the systemconfig
VMware Community Powerpack Eric Superstar Sloof Arnim Rainbow Shirt van Lieshout Arne ICTFreak Fokkema Luc T2 Dekens Alan "Not French" Renouf You! Goodbye Virtu-Al Hello Community Import the VMware Communities Powerpack Demo
More advanced scripts and Ideas Restricted Application: PowerGUI LockDown mode Specific tasks Demo: Host NTP Settings Host Over Commit DRS rules script + Export to XML Move Template Script
Software Virtualization EcoShell PowerGUI PrimalForms PowerWF Studio PowerShell Plus Professional Edition
Websites about PowerCLI http://thevesi.org/ http://blogs.vmware.com/vipowershell http://lucd.info/ http://virtu-al.net/ http://get-admin.com/blog/ http://www.peetersonline.nl/ http://halr9000.com/ http://www.van-lieshout.com/ http://ict-freak.nl
Twitter aliasses@thevesi Carter Shanklin Alan Renouf Hal Rottenberg Luc Dekens Dmitry Sotnikov Hugo Peeters Arne Fokkema Eric Sloof Scott Herold Arnim van Lieshout @cshanklin @alanrenouf @halr9000 @LucD22 @Dsotnikov @hugopeeters @afokkema @esloof @vmguru @avlieshout
VESI Custom Scripts and Powerpacks Download and install the Virtu-Al Powerpack Test the powerpack Have FuN! Dont forget to share your scripts!