Grundlagen: Virtuelle Netzwerke in Azure per PowerShell verwalten
Virtuelle Netzwerke in Microsoft Azure lassen sich derzeit noch recht schwierig in PowerShell bearbeiten. Die Definition von virtuellen Netzwerken kann derzeit nur entweder über das Verwaltungsportal oder aber in PowerShell per XML bearbeitet werden.
Zumindest lässt sich die Konfiguration der virtuellen Netzwerke PowerShell-typisch komfortabel anzeigen. Hierzu ist der PowerShell-Befehl Get-AzureVNetSite zu verwenden.
Per PowerShell kann man die Definition der virtuellen Netzwerke in einem Abonnement als XML-Datei herunterladen und auch hochladen. Möchte man virtuelle Netzwerke automatisiert verändern, bedeutet dies, die XML-Datei automatisiert zu verändern und schließlich wieder hochzuladen.
Mit dem PowerShell-Befehl Get-AzureVNetConfig lädt man die XML-Definition des virtuellen Netzwerks herunter und mit Set-AzureVNetConfig lädt man sie wieder hoch. Wenn man zusätzlich beim Befehl Get-AzureVNetConfig den Parameter ExportToFile hinzufügt, kann man die XML-Konfiguration auch direkt in eine Datei speichern.
Das folgende Beispiel zeigt die XML-Konfiguration für dasselbe virtuelle Netzwerk, das bereits im Beispiel weiter oben ausgegeben wurde. Für die Ausgabe der XML-Konfiguration wurde die folgende PowerShell-Anweisung verwendet:
Get-AzureVNetConfig | Select-Object -ExpandProperty XMLConfiguration
Bei der Konfiguration von VMs ist die Verwendung von virtuellen Netzwerken wieder einfacher. Die PowerShell-Befehle New-AzureVM und New-AzureQuickVM haben einen Parameter namens VNetName, um anzugeben, in welchem virtuellen Netzwerk die VM erstellt werden soll.
Eine DNS-Konfiguration für VMs kann man über den PowerShell-Befehl New-AzureDns erstellen. Bei der Erstellung einer neuen VM kann man dann diese DNS-Konfiguration über den Parameter DNSSettings mitgeben.
$dns = New-AzureDns –Name $DnsSettingName –Address $IPAddress
New-AzureVM […] -DNSSettings $dns
Weiterführende Informationen
PowerShell: Azure-Automatisierung für Einsteiger (Microsoft Virtual Academy)
Skripte
Für den Fall, dass die Skripte auf GitHub Gist nicht aufrufbar sind, sind diese hier noch einmal unformatiert aufgeführt.
Get-AzureVNetSite
<# Output
AddressSpacePrefixes : {10.0.0.0/8}
Location : West Europe
AffinityGroup :
DnsServers : {DC1}
GatewayProfile :
GatewaySites :
Id : f4fc826b-b846-470e-9d9a-d481ecb3e360
InUse : False
Label :
Name : pkbackup
State : Created
Subnets : {Subnet-0, Subnet-1, Subnet-2, Subnet-3}
OperationDescription : Get-AzureVNetSite
OperationId : 43123a8f-303d-7ea2-8f5e-3107fe91543f
OperationStatus : Succeeded
#>
Get-AzureVNetSite | select -ExpandProperty Subnets
<# Output
Name AddressPrefix ExtensionData
---- ------------- -------------
Subnet-0 10.0.0.0/16
Subnet-1 10.1.0.0/16
Subnet-2 10.2.0.0/16
Subnet-3 10.3.0.0/16
#>
Get-AzureVNetSite | select -ExpandProperty DnsServers
<# Output
Name Address ExtensionData
---- ------- -------------
DC1 10.0.0.4
#>
Comments
Anonymous
April 10, 2015
Hallo Peter, Super Übersicht. Vielen Dank dafür. Bei der Ausgabe der DNS Server sowie der lokalen Netzwerke werden jeweils nur ein Konfiguriertes Objekt angezeigt. Wie schaffe ich es, alle Objekte eines Azure Netzwerkes anzeigen zu lassen.Anonymous
April 12, 2015
Hallo Tony, hast du mal ein Beispiel, wie du es derzeit abfragst? Die beiden Einstellungen habe ich mir noch nicht näher angesehen. Könnte die Woche aber auch noch einmal schauen. Get-AzureVNetSite ist noch relativ neu. Die kompletten Einstellungen erhält man immer durch den XML-Export (Get-AzureVNetConfig). Ist aber mühsamer auszuwerten. ;-)