Olivia's Blog

All on Big Data and Windows Azure

Azure PowerShell Serie (5): Create Virtual Machine

Azure PowerShell Serie (5): Create Virtual Machine

  • Comments 4
  • Likes

In diesem Beitrag unserer Azure PowerShell Serie erstellen wir per PowerShell eine Virtuelle Maschine auf Windows Azure. Konkreter: wir erstellen eine Windows Server 2012 R2 Datacenter VM.

Im Windows Azure Management Portal sieht das folgendermaßen aus:

CreateVM1

CreateVM2

Hierbei wird zuerst eine Affinitätsgruppe und ein Speicherkonto erstellt, mit dem die Virtuelle Maschine assoziiert ist. Die Namen muss man selber in Abschnitt 1 einstellen. Der interessante Teil ist dann Abschnitt 3, wo das Image für die VM spezifiziert wird; in diesem Fall: Windows Server 2012 R2. In der Grafik oben sehen wir aber noch eine weit größere Auswahl an Images, die man hernehmen kann.

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095

###################################################
# Create virtual machine

# ISE is just awesome

ise

###################################################
# 0. Azure Account Details


Add-AzureAccount
$subName = "<AzureSbscriptionName>"
Select-AzureSubscription $subName

# Azure account details automatically set
$subID = Get-AzureSubscription -Current | %{ $_.SubscriptionId } 


###################################################
# 1. Input information

# variables to storage accounts

$location = "<DatacenterLocation>" #e.g. North Europe, West Europe, etc.
$storageAccount = "<StorageAccountName>"
$defaultContainer = "<StorageContainerName>"
$affinityGrp = "<AffinityGroup>"
$instanceSize = "Large" 
#Small, Large, etc.

# variables to VM

$vmName = "<vmName>"
$adminLogin = "<vmLogin>"
$adminPasswd = "<vmPasswd>"


###################################################
# 2. Provision storage

# a. Create affinity group

New-AzureAffinityGroup -Name $affinityGrp -Location $location

# b. Provision storage account
#New-AzureStorageAccount -StorageAccountName $storageAccount -AffinityGroup $affinityGrp

New-AzureStorageAccount -StorageAccountName $storageAccount -Location $location
Set-AzureStorageAccount -StorageAccountName $storageAccount -GeoReplicationEnabled $false

# c. Set storage account as default one, otherwise you will not be able to build your VM
Set-AzureSubscription -SubscriptionName $subName -CurrentStorageAccount $storageAccount

# d. Check if the storage account is set as the default one
Get-AzureSubscription -Current


###################################################
# 3. Build VM

# a. Pick VM image

$vmImage = Get-AzureVMImage
 `
   
| Where-Object -Property ImageFamily -ilike "Windows Server 2012 R2*"
 `
   
| Sort-Object -Descending -Property PublishedDate
 `
   
| Select-Object -First(1)

# automatically set for you: credentials to VM
$vmCreds = New-Object System.Management.Automation.PSCredential($adminLogin,($adminPasswd
 `
   
| ConvertTo-SecureString -AsPlainText -Force))

# b. Build VM
#New-AzureQuickVM -ImageName $VMImage.ImageName -Windows -Name $VMName -ServiceName $VMName `
# -AdminUsername $adminLogin -Password $adminPasswd -AffinityGroup $affinityGrp

New-AzureQuickVM -ImageName $vmImage.ImageName -Windows -Name $vmName -ServiceName $vmName
 `
   
-AdminUsername $adminLogin -Password $adminPasswd -Location $location -InstanceSize $instanceSize


###############################################
# 4. Get status, properties, etc.

# a. Check status

Get-AzureVM -Name $vmName -ServiceName $vmName

# b. Stop, start or restart the VM
Stop-AzureVM -Name $vmName -ServiceName $vmName
Start-AzureVM -Name $vmName -ServiceName $vmName
Restart-AzureVM -Name $vmName -ServiceName $vmName

# c. Clean up
Remove-AzureVM -ServiceName $vmName -Name $vmName -DeleteVHD


###############################################
# 5. clean up

# a. Remove VM & cloud service

Remove-AzureVM -Name $vmName -ServiceName $vmName
Remove-AzureVM -ServiceName $vmName

# b. Remove storage account
Remove-AzureStorageAccount -StorageAccountName $storageAccount
Comments
  • who says we need to know different languages to understand code!

  • :) My thinking exactly!

  • Thanks...excellent starting point for me :)

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment