Tipp: VM-Vorlagen in Azure per PowerShell auflisten und filtern

Der einfachste und schnellste Weg in Microsoft Azure neue VMs zu erstellen, liegt in der Verwendung von Vorlagen. In Azure werden diese Images genannt. Über das Verwaltungsportal kann man eine sehr umfangreiche Liste über einen komfortablen Katalog auswählen.

clip_image001

clip_image002

Über PowerShell lassen sich die Vorlagen ebenfalls durchsuchen und mit allen Mitteln, die PowerShell zu bieten hat, gruppieren, filtern und durchsuchen. Das macht sicherlich mehr Aufwand, als den Katalog vom Verwaltungsportal zu nutzen, allerdings kann man auf diese Weise automatisiert Vorlagen für die Erstellung von VMs verwenden.

Das wichtigste Szenario dürfte hierbei sein, von einer bestimmten Vorlage immer die aktuellste Version zu verwenden. Im Verwaltungsportal ist die aktuellste Version bereits ausgewählt. In PowerShell verwenden wir dagegen eine ID einer Vorlage. Wenn wir eine solche ID im Skript fest kodieren, dann kann die gewünschte Vorlage durchaus schon durch eine neuere Vorlage überholt sein kann.

clip_image003

Mit dem PowerShell-Befehl Get-AzureVMImage erhält man alle Images, die derzeit im Azure-Abonnement zur Verfügung stehen. Es ist sinnvoll, das Ergebnis direkt in eine Variable zu speichern, da man dadurch das umfangreiche Ergebnis nicht ständig neu von der Azure Service Management API abrufen muss. Wie man im folgenden Beispiel sehen kann, erhalten wir 409 Vorlagen zurück. (Da ständig neue Vorlagen hinzugefügt werden, kann die Zahl schon größer sein, wenn Sie den Befehl ausführen.)

 $images = Get-AzureVMImage
$images.Count

409

Welche Daten erhalten wir zurück? Schauen wir im folgenden Beispiel einen Datensatz an.

In Skripten ist für uns der Wert von ImageName von Bedeutung. Zusätzlich erfahren wir, in welchen Regionen das Image zur Verfügung steht. Über die Eigenschaften OS, ImageFamily und PublisherName können wir gruppieren.

Fangen wir zum Beispiel mit dem Gruppieren nach dem Betriebssystem an. Hier sehen wir, dass wir 237 Images mit einem Windows-Betriebssystem haben und 172 mit Linux.

 $images | Group-Object -Property OS

Count Name Group
----- ---- -----
237 Windows {Microsoft.WindowsAzure.Commands.ServiceManagement.Model.OSImageContext, Microsoft.WindowsAzure.Commands.Service...
172 Linux {Microsoft.WindowsAzure.Commands.ServiceManagement.Model.OSImageContext, Microsoft.WindowsAzure.Commands.Service...

Als nächstes gruppieren wir nach dem PublisherName.

Schließlich gruppieren wir noch einmal nach ImageFamily.

Hier finden wir unsere Vorlagen mit bestimmten Betriebssystemen und bestimmten Produkten wieder. Die Anzahl in einer ImageFamily steht für die Anzahl der Veröffentlichungen von Images zu unterschiedlichen Zeitpunkten für die gewählte Vorlage, die ein bestimmtes Betriebssystem und Produkt enthält.

Schauen wir uns als Beispiel mal die verschiedenen Images für die Image Family "Windows Server 2012 R2 Datacenter" an.

Wenn wir nun also automatisiert immer das neuste Image von einer ImageFamily haben möchten, erhalten wir den dafür notwendigen ImageName mit der folgenden PowerShell-Zeile, die folgendes tut:

  1. Abrufen aller Images.
  2. Filtern nach der gewünschten ImageFamily (= Windows Server 2012 R2 Datacenter).
  3. Absteigend sortieren nach dem Veröffentlichungsdatum.
  4. Nehme nur das erste Element und davon nur die Eigenschaft ImageName.
  5. ImageName enthält den Bezeichner, den wir später für New-AzureVMConfig benötigen.

$imageName = Get-AzureVMImage | Where-Object -Property ImageFamily -eq "Windows Server 2012 R2 Datacenter" | Sort-Object -Property PublishedDate -Descending | Select-Object -ExpandProperty ImageName -First 1

$imageName

a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd

Vorlagen mit Produkten

Für Vorlagen mit vorinstallierten Produkten wie SQL Server und BizTalk Server fallen höhere Verbrauchsgebühren an, weil die Lizenzkosten für die vorinstallierten Produkte bereits im Verbrauchstarif enthalten sind. Nähere Informationen dazu gibt es auch auf der Preisübersicht für Virtuelle Maschinen.

Eine Ausnahme finden VMs, die über ein Azure-Abonnement ausgeführt werden, das aus MSDN-Leistungen stammt. Hier werden alle VMs, inklusive derer mit vorinstallierten Produkten, zum Linux-Preis abgerechnet.

 

Weitere Informationen

PowerShell: Azure-Automatisierung für Einsteiger (Microsoft Virtual Academy)

Azure-Vorteile für MSDN-Abonnenten

Preisübersicht Virtuelle Maschinen

Skripte

Für den Fall, dass die Skripte auf GitHub Gist nicht aufrufbar sind, sind diese hier noch einmal unformatiert aufgeführt.

Beispielausgabe einer einzelnen Vorlage (Get-AzureVMImage)

 $images[0]

<# Output

ImageName            : 03f55de797f546a1b29d1b8d66be687a__Team-Foundation-Server-2013-Update4-WS2012R2
OS                   : Windows
MediaLink            : 
LogicalSizeInGB      : 128
AffinityGroup        : 
Category             : Public
Location             : East Asia;Southeast Asia;Australia East;Australia Southeast;Brazil South;North Europe;West Europe;Japan East;Japan 
                       West;Central US;East US;East US 2;North Central US;South Central US;West US
Label                : Team Foundation Server 2013 Update 4 on Windows Server 2012 R2
Description          : Microsoft Team Foundation Server 2013 Trial on Windows Server 2012 R2 Update. Virtual Machines created with this trial 
                       image will require a product key for Team Foundation Server (such as from an MSDN Subscription). This image includes a 
                       complete installation of Team Foundation Server 2013 Update 4. Some components require additional setup and configuration. 
                       You can configure SQL Server using SQL Server Express included in this image, by downloading and installing SQL Server 
                       Standard edition (from an MSDN Subscription), or by connect to a pre-existing SQL Server. Minimum virtual machine size for 
                       this image is Medium. For more details on TFS server setup please see the [Team Foundation Server install 
                       guide|https://msdn.microsoft.com/en-us/library/dd631902.aspx].
Eula                 : https://www.microsoft.com/en-us/download/details.aspx?id=13350
ImageFamily          : Team Foundation Server 2013 Update 4 on Windows Server 2012 R2
PublishedDate        : 12.11.2014 09:00:00
IsPremium            : False
IconUri              : VisualStudio2013_45.png
SmallIconUri         : VisualStudio2013_45.png
PrivacyUri           : https://go.microsoft.com/fwlink/?LinkID=286720
RecommendedVMSize    : Medium
PublisherName        : Microsoft Visual Studio Group
IOType               : Standard_LRS
ShowInGui            : 
OperationDescription : Get-AzureVMImage
OperationId          : 2aef8eae-5f87-5066-91d8-2cb290e84f23
OperationStatus      : Succeeded

#>

Vorlagen gruppiert nach PublisherName

 $images | Group-Object -Property PublisherName | Sort-Object -Property Name | Format-Table -Property Count, Name -AutoSize

<# Output

Count Name                                         
----- ----                                         
    5 Barracuda Networks, Inc.                     
    4 Bitnami                                      
   72 Canonical                                    
    1 Cloudera                                     
   25 CoreOS                                       
    2 DataStax                                     
    2 Hortonworks                                  
    6 Microsoft BizTalk Server Group               
    2 Microsoft Dynamics GP Group                  
    2 Microsoft Dynamics NAV Group                 
    5 Microsoft Hybrid Cloud Storage Group         
   65 Microsoft Open Technologies, Inc.            
    1 Microsoft SharePoint Group                   
   59 Microsoft SQL Server Group                   
   23 Microsoft Visual Studio Group                
    8 Microsoft Windows Server Essentials Group    
   10 Microsoft Windows Server Group               
    3 Microsoft Windows Server HPC Pack team       
   17 Microsoft Windows Server Remote Desktop Group
    3 OpenLogic                                    
    5 Oracle                                       
    1 Puppet Labs                                  
   32 RightScale with Linux                        
   36 RightScale with Windows Server               
    4 Riverbed Technology                          
   16 SUSE                                         

#>

Vorlagen gruppiert nach ImageFamily

 $images | Group-Object -Property ImageFamily | Sort-Object -Property Name | Format-Table -Property Count, Name -AutoSize

<# Output

Count Name                                                                                                        
----- ----                                                                                                        
    7                                                                                                             
    2                                                                                                             
    2 Barracuda NG Firewall 5.4                                                                                   
    3 Barracuda Web Application Firewall (WAF) 7.8                                                                
    1 CDH 5.1 Evaluation                                                                                          
   16 CoreOS Alpha                                                                                                
    6 CoreOS Beta                                                                                                 
    3 CoreOS Stable                                                                                               
    2 DataStax Enterprise                                                                                         
    1 DreamFactory 1.6                                                                                            
    1 DreamFactory 1.7                                                                                            
    2 eXo Platform Express 4                                                                                      
    3 HPC Pack 2012 R2 on Windows Server 2012 R2                                                                  
    4 JDK 6 on Windows Server 2012                                                                                
    4 JDK 7 on Windows Server 2012                                                                                
    4 JDK 8 on Windows Server 2012 R2                                                                             
    1 Microsoft Dynamics GP 2013 Developer on Windows Server 2012 R2                                              
    1 Microsoft Dynamics GP 2013 R2 on Windows Server 2012 R2                                                     
    2 Microsoft Dynamics NAV 2013 R2 on Windows Server 2012                                                       
    1 Microsoft-BizTalk-Server-2013-Developer                                                                     
    1 Microsoft-BizTalk-Server-2013-R2-Developer                                                                  
    1 Microsoft-BizTalk-Server-2013-R2-Enterprise                                                                 
    1 Microsoft-BizTalk-Server-2013-R2-Standard                                                                   
    1 openSUSE 13.1                                                                                               
    4 Oracle Database 11g R2 and WebLogic Server 11g Enterprise Edition on Windows Server 2008 R2                 
    4 Oracle Database 11g R2 and WebLogic Server 11g Standard Edition on Windows Server 2008 R2                   
    4 Oracle Database 11g R2 Enterprise Edition on Windows Server 2008 R2                                         
    4 Oracle Database 11g R2 Standard Edition on Windows Server 2008 R2                                           
    1 Oracle Database 12.1.0.1 Enterprise Edition                                                                 
    1 Oracle Database 12.1.0.1 Standard Edition                                                                   
    4 Oracle Database 12c and WebLogic Server 12c Enterprise Edition on Windows Server 2012                       
    4 Oracle Database 12c and WebLogic Server 12c Standard Edition on Windows Server 2012                         
    4 Oracle Database 12c Enterprise Edition on Windows Server 2012                                               
    4 Oracle Database 12c Standard Edition on Windows Server 2012                                                 
    1 Oracle Linux 6.4.0.0.0                                                                                      
    1 Oracle Linux 7.0.0.0.0                                                                                      
    1 Oracle Weblogic                                                                                             
    4 Oracle WebLogic Server 11g Enterprise Edition on Windows Server 2008 R2                                     
    4 Oracle WebLogic Server 11g Standard Edition on Windows Server 2008 R2                                       
    4 Oracle WebLogic Server 12c Enterprise Edition on Windows Server 2012                                        
    4 Oracle WebLogic Server 12c Standard Edition on Windows Server 2012                                          
    1 Puppet Enterprise 3.2                                                                                       
   20 RightScale Linux v13                                                                                        
   10 RightScale Linux v14                                                                                        
   26 RightScale Windows v13                                                                                      
   10 RightScale Windows v14                                                                                      
    3 Riverbed SteelHead CX 8.6                                                                                   
    1 Riverbed SteelHead CX 9.0                                                                                   
    1 SharePoint Server 2013 Trial                                                                                
    5 SQL Server 2008 R2 SP2 Enterprise on Windows Server 2008 R2                                                 
    5 SQL Server 2008 R2 SP2 Standard on Windows Server 2008 R2                                                   
    5 SQL Server 2008 R2 SP2 Web on Windows Server 2008 R2                                                        
    1 SQL Server 2008 R2 SP3 Enterprise on Windows Server 2008 R2                                                 
    1 SQL Server 2008 R2 SP3 Standard on Windows Server 2008 R2                                                   
    1 SQL Server 2008 R2 SP3 Web on Windows Server 2008 R2                                                        
    6 SQL Server 2012 SP1 Enterprise on Windows Server 2012                                                       
    4 SQL Server 2012 SP1 for Data Warehousing on Windows Server 2012                                             
    5 SQL Server 2012 SP1 Standard on Windows Server 2012                                                         
    1 SQL Server 2012 SP1 Web on Windows Server 2012                                                              
    1 SQL Server 2012 SP2 Enterprise on Windows Server 2012                                                       
    1 SQL Server 2012 SP2 Enterprise on Windows Server 2012 R2                                                    
    1 SQL Server 2012 SP2 Enterprise Optimized for DataWarehousing Workloads on Windows Server 2012               
    1 SQL Server 2012 SP2 Enterprise Optimized for DataWarehousing Workloads on Windows Server 2012 R2            
    1 SQL Server 2012 SP2 Enterprise Optimized for Transactional Workloads on Windows Server 2012                 
    1 SQL Server 2012 SP2 Enterprise Optimized for Transactional Workloads on Windows Server 2012 R2              
    1 SQL Server 2012 SP2 Standard on Windows Server 2012                                                         
    1 SQL Server 2012 SP2 Standard on Windows Server 2012 R2                                                      
    1 SQL Server 2012 SP2 Web on Windows Server 2012                                                              
    1 SQL Server 2012 SP2 Web on Windows Server 2012 R2                                                           
    2 SQL Server 2014 Enterprise Optimized for DataWarehousing Workloads on Windows Server 2012 R2                
    2 SQL Server 2014 Enterprise Optimized for Transactional Workloads on Windows Server 2012 R2                  
    2 SQL Server 2014 RTM DataWarehousing on Windows Server 2012 R2                                               
    3 SQL Server 2014 RTM Enterprise on Windows Server 2012 R2                                                    
    3 SQL Server 2014 RTM Standard on Windows Server 2012 R2                                                      
    3 SQL Server 2014 RTM Web on Windows Server 2012 R2                                                           
    5 StorSimple Virtual Appliance 1100                                                                           
    4 SUSE Linux Enterprise Server 11 SP3                                                                         
    4 SUSE Linux Enterprise Server 11 SP3 (Premium Image)                                                         
    5 SUSE Linux Enterprise Server 11 SP3 for SAP Cloud Appliance Library                                         
    1 SUSE Linux Enterprise Server 12                                                                             
    1 SUSE Linux Enterprise Server 12 (Premium Image)                                                             
    1 Team Foundation Server 2013 Update 4 on Windows Server 2012 R2                                              
    2 Ubuntu Core 90 ALPHA                                                                                        
   17 Ubuntu Server 12.04 LTS                                                                                     
    8 Ubuntu Server 12.04 LTS DAILY                                                                               
    1 Ubuntu Server 12.10                                                                                         
   12 Ubuntu Server 14.04 LTS                                                                                     
    8 Ubuntu Server 14.04 LTS DAILY                                                                               
    6 Ubuntu Server 14.10                                                                                         
    7 Ubuntu Server 14.10 DAILY                                                                                   
    1 Ubuntu Server 15.04                                                                                         
   10 Ubuntu Server 15.04 DAILY                                                                                   
    1 Visual Studio Community 2013 on Windows Server 2012 R2                                                      
    1 Visual Studio Premium 2013 Update 3 with Tools for Apache Cordova CTP 2.0 on Windows 8.1 Enterprise (x64)   
    1 Visual Studio Premium 2013 Update 3 with Tools for Apache Cordova CTP 2.0 on Windows 8.1 Enterprise N (x64) 
    1 Visual Studio Premium 2013 Update 4 on Windows 8.1 Enterprise (x64)                                         
    1 Visual Studio Premium 2013 Update 4 on Windows 8.1 Enterprise N (x64)                                       
    1 Visual Studio Premium 2013 Update 4 on Windows Server 2012                                                  
    1 Visual Studio Professional Update 4 2013 on Windows Server 2012                                             
    1 Visual Studio Ultimate 2013 Update 3 with Tools for Apache Cordova CTP 2.0 on Windows 8.1 Enterprise (x64)  
    1 Visual Studio Ultimate 2013 Update 3 with Tools for Apache Cordova CTP 2.0 on Windows 8.1 Enterprise N (x64)
    1 Visual Studio Ultimate 2013 Update 4 on Windows 8.1 Enterprise (x64)                                        
    1 Visual Studio Ultimate 2013 Update 4 on Windows 8.1 Enterprise N (x64)                                      
    1 Visual Studio Ultimate 2013 Update 4 on Windows Server 2012                                                 
    1 Visual Studio Ultimate 2015 Preview on Windows Server 2012 R2                                               
    1 Windows 10 Technical Preview for Enterprise (x64)                                                           
    2 Windows 7 Enterprise N SP1 (x64)                                                                            
    2 Windows 7 Enterprise SP1 (x64)                                                                              
    2 Windows 8.1 Enterprise (x64)                                                                                
    2 Windows 8.1 Enterprise N (x64)                                                                              
    3 Windows Server 2008 R2 SP1                                                                                  
    3 Windows Server 2012 Datacenter                                                                              
    3 Windows Server 2012 R2 Datacenter                                                                           
    8 Windows Server Essentials Experience on Windows Server 2012 R2                                              
   10 Windows Server RDSHwO13P on Windows Server 2012 R2                                                          
    2 Windows Server RDSHwO365P on Windows Server 2012 R2                                                         
    5 Windows Server Remote Desktop Session Host on Windows Server 2012 R2                                        
    1 Windows Server Technical Preview                                                                            
    3 Zulu OpenJDK package v1.7 on Windows Server 2012 R2                                                         
    2 Zulu OpenJDK package v1.8 on Windows Server 2012 R2                                                         

#>

Aktuellste Vorlage für eine “Windows Server 2012 R2 Datacenter”

 $images | Where-Object -Property ImageFamily -eq "Windows Server 2012 R2 Datacenter" | Format-List -Property ImageName, Label, PublishedDate

<# Output

ImageName     : a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201410.01-en.us-127GB.vhd
Label         : Windows Server 2012 R2 Datacenter, October 2014
PublishedDate : 28.10.2014 08:00:00

ImageName     : a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201411.01-en.us-127GB.vhd
Label         : Windows Server 2012 R2 Datacenter, November 2014
PublishedDate : 14.11.2014 09:00:00

ImageName     : a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201412.01-en.us-127GB.vhd
Label         : Windows Server 2012 R2 Datacenter, December 2014
PublishedDate : 11.12.2014 09:00:00

#>