Δημιουργία Virtual Machine στο Windows Azure με PowerShell

12 Jun

Για να δημιουργήσουμε Virtual Machines στο Windows Azure μπορούμε εκτός του Management Portal, να χρησιμοποιήσουμε το PowerShell.

To PowerShell, αφού κατεβάσουμε και εγκαταστήσουμε το κατάλληλο Windows Azure module, περιλαμβάνει όλες τις εντολές, τα Cmdlets, που θα μας βοηθήσουν τόσο να δημιουργήσουμε Virtual Machines στο Windows Azure όσο και να αλλάξουμε τα χαρακτηριστικά τους, όπως τους δίσκους που έχουν συνδεδεμένους, την υπολογιστική τους ισχύ, την μνήμη τους κ.λ.π.

Αφού αποκτήσουμε την απαραίτητη εξοικείωση και εμπειρία στο πως δημιουργούνται και ρυθμίζονται τα VMs μέσω του PowerShell, μπορούμε να εκτελέσουμε την διαδικασία με επαναλαμβανόμενο τρόπο και αυτόματα να δημιουργήσουμε ένα ολόκληρο δίκτυο με υποδίκτυα και πολλά VMs με ένα script !

Για να ξεκινήσουμε, απαραίτητο είναι να έχουν προηγηθεί τα βήματα που αναφέρονται στο άρθρο :

Διαχείριση του Windows Azure μέσω PowerShell

Οι εντολές που θα χρησιμοποιήσουμε, στην περίπτωση μας είναι οι εξής :

  • Get-AzureVMImage
  • Get-AzureLocation
  • Test-AzureName
  • New-AzureVMConfig
  • Add-AzureProvisioningConfig
  • New-AzureVM

Εκτός των παραπάνω, απαραίτητο είναι ένα Storage Account για τους δίσκους του Virtual Machine, το οποίο μπορούμε να το δημιουργήσουμε με PowerShell, σύμφωνα με το άρθρο:

Διαχειριστείτε το Windows Azure Storage εύκολα και γρήγορα με το PowerShell

Αφού λοιπόν ελέγξουμε την διαθεσιμότητα του ονόματος για το Storage Account, το δημιουργούμε ως εξήςVMs-01

Τώρα που έχουμε το Storage Account, θα πρέπει να επιλέξουμε το image από το οποίο θα δημιουργηθεί το Virtual Machine. Τα διαθέσιμα images τα βλέπουμε με την Get-AzureVMImageVMs-02

Τα Images που περιλαμβάνονται στο library του Windows Azure είναι πάρα πολλά, με επιλογές λειτουργικών συστημάτων από Windows Server 2008R2 και Windows Server 2012 μέχρι και Linux διαφόρων διανομών. Περιέχουν εφαρμογές όπως ο Microsoft SQL Server, SharePoint Server κ.λ.π. ενώ εάν δεν βρούμε το image που θέλουμε, υπάρχει διαθέσιμο και το VM depot με μεγάλη ποικιλία από έτοιμα Images που διατίθενται από το community.

Αποθηκεύουμε το  image που θέλουμε σε μια μεταβλητή για να το χρησιμοποιήσουμε αργότερα

$VMimage = "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201304.01-en.us-127GB.vhd"

Εάν δεν έχουμε δημιουργήσει κάποιο Affinity Group, θα πρέπει να επιλέξουμε ένα Data Center από τα διαθέσιμα του Windows Azure, εντός του οποίου θα δημιουργηθεί το Virtual Machine. Τα διαθέσιμα Data Centers τα βρίσκουμε με την Get-AzureLocationVMs-03

Στην περίπτωση μας, έχουμε φτιάξει ένα Affinity Group και αποθηκεύουμε το όνομα του σε μια μεταβλητή

$AFFGrp = "AutoexecLABS"

Όταν δημιουργήσουμε το virtual Machine, θα πρέπει να φτιάξουμε ένα Cloud Service οπότε ελέγχουμε εάν το επιθυμητό όνομα είναι διαθέσιμο με τηνVMs-04Αφού είναι διαθέσιμο, αποθηκεύουμε το όνομα του Cloud Service σε μια μεταβλητή

$SVCName = "axcvmsvc"

Τέλος φτιάχνουμε μεταβλητές με το όνομα και τον κωδικό του διαχειριστή για το Virtual Machine, αφού ο λογαριασμός του Administrator είναι απενεργοποιημένος.

$AdminUser = "vkappas"
$AdminPass = "MyPass@1234"

Αφού συγκεντρώσουμε όλα τα απαραίτητα στοιχεία, δημιουργούμε ένα αντικείμενο (object) με τις ρυθμίσεις του Virtual Machine, όπως η υπολογιστική του ισχύς και το image του λειτουργικού του συστήματος, με την εντολή New-AzureVMConfigVMs-05

Τροποποιούμε το Virtual Machine object, για να συμπεριλάβουμε και τις υπόλοιπες ρυθμίσεις με την Add-AzureProvisioningConfig και τέλος δημιουργούμε το επιθυμητό Virtual Machine με την New-AzureVM

Το Script που χρησιμοποιήθηκε είναι το εξής :

Select-AzureSubscription "MSDN-Kappas"

$VMimage = "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201304.01-en.us-127GB.vhd"
$VMName = "dmzdc"
$SVCName = "axcvmsvc"
$AFFGrp =  "AutoexecLABS"
$AdminUser = "vkappas"
$AdminPass = "MyPass@1234"

New-AzureVMConfig -Name $VMName -InstanceSize Small -ImageName $VMimage |
    Add-AzureProvisioningConfig -Windows -AdminUsername $AdminUser -Password $AdminPass |
    New-AzureVM -ServiceName $SVCName -AffinityGroup $AFFGrp

Ενώ όταν «έτρεξε» το PowerShell, δημιούργησε στο Windows Azure πρώτα το Cloud ServiceVMs-06

Και μετά το Virtual MachineVMs-07

Μετά την δημιουργία, ξεκινάει η εγκατάσταση του λειτουργικού συστήματος. Με την Get-AzureVM βλέπουμε την εξέλιξη τηςVMs-08

Όταν ολοκληρωθεί η εγκατάσταση αλλάζει το status και έχουμεVMs-09

μπορούμε να κατεβάσουμε το αρχείο για την σύνδεση RDP στο συγκεκριμένο Virtual Machine που δημιουργήθηκε, με την Get-AzureRemoteDesktopFile και εάν θέλουμε να το ανοίξουμε για να συνδεθούμε.

Φυσικά μπορούμε, μέσω του management portal, να δούμε το νέο Virtual Machine και τα χαρακτηριστικά τουVMs-10

Όπως λοιπόν είδαμε, μπορούμε να δημιουργήσουμε ένα Virtual Machine με ένα Script. Είναι προφανές ότι μέσω εντολών του PowerShell μπορούμε την διαδικασία να την επαναλάβουμε και να δημιουργήσουμε περισσότερα Virtual Machines, σύμφωνα με τις ανάγκες μας.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.