Για να δημιουργήσουμε 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, το δημιουργούμε ως εξής
Τώρα που έχουμε το Storage Account, θα πρέπει να επιλέξουμε το image από το οποίο θα δημιουργηθεί το Virtual Machine. Τα διαθέσιμα images τα βλέπουμε με την Get-AzureVMImage
Τα 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-AzureLocation
Στην περίπτωση μας, έχουμε φτιάξει ένα Affinity Group και αποθηκεύουμε το όνομα του σε μια μεταβλητή
$AFFGrp = "AutoexecLABS"
Όταν δημιουργήσουμε το virtual Machine, θα πρέπει να φτιάξουμε ένα Cloud Service οπότε ελέγχουμε εάν το επιθυμητό όνομα είναι διαθέσιμο με τηνΑφού είναι διαθέσιμο, αποθηκεύουμε το όνομα του Cloud Service σε μια μεταβλητή
$SVCName = "axcvmsvc"
Τέλος φτιάχνουμε μεταβλητές με το όνομα και τον κωδικό του διαχειριστή για το Virtual Machine, αφού ο λογαριασμός του Administrator είναι απενεργοποιημένος.
$AdminUser = "vkappas" $AdminPass = "MyPass@1234"
Αφού συγκεντρώσουμε όλα τα απαραίτητα στοιχεία, δημιουργούμε ένα αντικείμενο (object) με τις ρυθμίσεις του Virtual Machine, όπως η υπολογιστική του ισχύς και το image του λειτουργικού του συστήματος, με την εντολή New-AzureVMConfig
Τροποποιούμε το 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 Service
Μετά την δημιουργία, ξεκινάει η εγκατάσταση του λειτουργικού συστήματος. Με την Get-AzureVM βλέπουμε την εξέλιξη της
Όταν ολοκληρωθεί η εγκατάσταση αλλάζει το status και έχουμε
μπορούμε να κατεβάσουμε το αρχείο για την σύνδεση RDP στο συγκεκριμένο Virtual Machine που δημιουργήθηκε, με την Get-AzureRemoteDesktopFile και εάν θέλουμε να το ανοίξουμε για να συνδεθούμε.
Φυσικά μπορούμε, μέσω του management portal, να δούμε το νέο Virtual Machine και τα χαρακτηριστικά του
Όπως λοιπόν είδαμε, μπορούμε να δημιουργήσουμε ένα Virtual Machine με ένα Script. Είναι προφανές ότι μέσω εντολών του PowerShell μπορούμε την διαδικασία να την επαναλάβουμε και να δημιουργήσουμε περισσότερα Virtual Machines, σύμφωνα με τις ανάγκες μας.