Partie 1 : Initiation à la création des éléments Azure.
Auteur: Jérémy Leflon – Jeremy.Leflon@microsoft.com
Microsoft a mis à disposition des exploitants Azure un set de Cmdlet PowerShell permettant la création et la gestion des objets Azure. L’objectif de cet article est de présenter les commandes principales à utiliser par les administrateurs pour la création des machines virtuelles dans les cloud services correspondants.
Cet article se consacre à la gestion des artefacts suivants :
Groupes d’affinités,
Cloud Services,
Comptes de stockage,
Machine Virtuelles et groupes de disponibilité
Disques de données supplémentaires
Prérequis pour l’accès à la souscription Azure
Téléchargez et installez le module Windows Azure PowerShell à travers le Microsoft Web Platform Installer (http://azure.microsoft.com/en-us/documentation/articles/install-configure-powershell/).
Plus d’informations sont disponibles sur : http://azure.microsoft.com/en-us/documentation/articles/install-configure-powershell/
Pour utiliser le module de cmdlets PowerShell pour Azure, il faut ouvrir le raccourci « Windows Azure PowerShell » ou importer le module Azure PowerShell dans votre prompt PowerShell ou ISE par la commande suivante :
Import-Module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\ServiceManagement\Azure\Azure.psd1"
Être administrateur de la souscription Azure
Connexion à la souscription Azure
Source : http://azure.microsoft.com/fr-fr/documentation/articles/install-configure-powershell/
Les opérations de gestion de la souscription nécessite une authentification préalable auprès du service Azure.
Pour cela, il existe deux méthodes d’authentification à la souscription Azure :
Import-AzurePublishSettingsFile « Chemin du file-credentials.publishsettings »
1 Sélection de la souscription d’exécution
Suite à l’authentification de l’utilisation à la plateforme Azure, il est nécessaire de préciser la souscription d’exécution si vous êtes administrateur de plusieurs plateformes.
Pour sélectionner la souscription, exécutez la cmdlet suivante :
Définition Variable prérequis
$mySubscription
Cmdlet :
select-azureSubscription $mySubscription
Pour connaître la liste des souscriptions Azure disponible pour le compte authentifié, utilisez la cmdlet suivante
Get-AzureSubscription
2 Création des artefacts de la souscription
2.1 Création des groupes d’affinités
Les groupes d'affinités permettent de regrouper les services qui doivent fonctionner ensemble afin d'optimiser les performances. Cela permet de réduire la latence et augmente les performances.
Référence : http://msdn.microsoft.com/fr-fr/library/windowsazure/jj156085.aspx
La création d’un groupe d’affinité est un prérequis à la création des Cloud Services.
$affinityGroupName : nom du groupe d’affinité du service
$location : « West Europe » / « North Europe » …
$label : Label du groupe d’affinité – visible en PowerShell
$description : Description du groupe d’affinité – visible en PowerShell
New-AzureAffinityGroup -Name $affinityGroupName -Location $location -Label $label -Description $description
2.2 Création de Cloud Service
Le cloud service Azure est un ensemble regroupant d’autres artefacts azure, joignables par l’intermédiaire du Cloud Service qui porte une adresse publique.
Le nom du service de cloud sera unique et sous la forme {$cloudServiceName}.cloudapp.net
$cloudServiceName : nom du Cloud Service à créer
New-AzureService –ServiceName $cloudServiceName –AffinityGroup $affinityGroupName
2.3 Création des comptes de stockage
Azure fournit 3 types de comptes de stockage, de façon à laisser le choix en termes de performances et sécurité la main mise sur leur infrastructure :
LRS : Locally Redundant Storage : Toutes les données stockées sont répliquées de manière synchrone sur trois nœuds de stockage différents dans la même région
10 Gbps en entrée
15 Gbps en sortie
GRS : Geo-Redundant Storage : En plus de la réplication sur trois nœuds de stockage comme sur le LRS, les transactions sont aussi mises en queues pour une réplication asynchrone sur une seconde région où les données sont aussi stockées sur trois autres nœuds de stockage.
5 Gbps en entrée
10 Gbps en sortie
RA-GRS : Read-Access Redundant Storage
Même capacités de transfert que le GRS.
Un accroissement des vitesses de lecture / disponibilité.
Note : Par défaut, les comptes de stockage sont créés en GRS.
$storageAccountName="nomduStockage"
$storageAccount_Description="Description du Stockage"
$affinityGroupName
Cmdlet
new-azurestorageaccount -storageaccountname $storageAccountName -AffinityGroup $affinityGroup
set-azurestorageaccount -storageaccountname $storageAccountName -description $storageAccount_Description
Pour définir un compte de stockage en LRS :
Set-AzureStorageAccount -StorageAccountName $storageAccountName -GeoReplicationEnabled $false
Informations complémentaires : http://blogs.msdn.com/b/windowsazurestorage/archive/2013/12/04/introducing-read-access-geo-replicated-storage-ra-grs-for-windows-azure-storage.aspx
2.4 Création des machines virtuelles
2.4.1 Description des Availability Set
Pour garantir la disponibilité des ressources, Azure met à disposition une fonctionnalité gérant un couche supplémentaire de redondance appelée “Availability Set”.
Ce mécanisme va forcer l’exécution de 2 machines virtuelles opérant les mêmes fonctions ou services sur au moins deux hyperviseurs différents de façon à garantir le niveau de service.
Dans le schéma suivant, les machines virtuelles tournent sur 2 « Racks » au sens physiques du terme.
2.4.2 Définition de l’image disque source
Les machines virtuelles sont provisionnées avec une image OS. La liste des noms des images sources peuvent être récupérées par l’utilisation de la cmdlet :
Get-AzureVmImage
Pour éviter de parcourir l’ensemble des éléments, il est possible d’utiliser la commande suivante pour variabiliser le nom de la dernière image Windows Server 2012 par exemple :
$imageName=(Get-AzureVMImage -Verbose:$true | Where-Object {$_.label -like “Windows Server 2012 R2 Datacenter*”}| Sort-Object –Descending PublishedDate)[0].ImageName
2.4.3 Création de la configuration de la machine
Avant de provisionner la machine, il est nécessaire de configurer l’élément à l’aide de la cmdlet New-AzureVMConfig sur lequel vous pouvez Piper le cmdlet Add-AzureProvisioningConfig permettant de définir des informations systèmes (nom et mot de passe de l’administrateur), la timezone de la machine.
Il est aussi possible d’y ajouter les informations réseaux tels que le subnet d’appartenance et l’adresse IP fixe de la machine (cas des contrôleurs de domaine).
Note : le currentStorageAccount de la souscription utilisée doit être provisionnée
Définition des variables :
#Information de connexion :
$subscription : Souscription de creation de machine
#information sur la machine à créer
$cloudServiceName : Nom du cloud service pour la machine
$NomVm : nom de la machine virtuelle cible
$storageAccountName : Nom du compte de stockage du disque OS de la machine
$size : taille de la machine : Small / Large / A6/A7/A8
$availSet : nom du groupe de disponibilité de la machine
#information sur le disque OS
$diskName : nom du disque utilisé pour le stockage
$diskLabel = $diskName + "- OS"
$urlMedia = “https://"+$storageAccountName+”.blob.core.windows.net/vhds/”+$diskName+”.vhd”
#Information OS Windows
$admUser : nom du compte administrateur local
$admPwd : mot de passe du compte administrateur local
$timeZone : Nom de la zone time pour la machine ("Romance Standard Time" pour Paris par ex)
#Information Réseau
$vNET : nom du réseau virtuel d’appartenance
$subnetName : nom du subnet d’appartenance de la machine
$staticIP : adresse IP de la machine
Le script ci-dessous créé la machine correspondant aux paramètres définis plus haut :
$VM1 = New-AzureVMConfig -Name $NomVm -InstanceSize $size -ImageName $imageName -DiskLabel $diskLabel –MediaLocation $urlMedia -AvailabilitySetName $availSet `
| Add-AzureProvisioningConfig -adminUserName $admUser -Password $admPwd -Windows -TimeZone $timeZone `
| Set-AzureSubnet -SubnetNames $subnetName `
| Set-AzureStaticVNetIP -IPAddress $staticIP
New-AzureVM -VMs $VM1 -ServiceName $cloudServiceName –VnetName $vNET
Note : si le currentStorageAccount n’est pas défini, il est possible que le script décrit ne s’exécute pas et l’erreur PowerShell suivante se produit :
Pour connaitre la valeur de cet attribut, utilisez la ligne de commande PowerShell suivante :
Pour résoudre cette erreur, tapez la commande suivante :
set-AzureSubscription -SubscriptionName $subscription -CurrentStorageAccount $storageAccountName
3 Ajout d’un disque de données
Chaque machine virtuelle créée possède un disque OS et un disque non persistent. Pour ajouter un disque de données persistant supplémentaire, il est possible d’ajouter des volumes par l’utilisation de cmdlet PowerShell.
En plus des variables définies précédemment, les variables suivantes doivent être provisionnées :
$storageAccountName : Nom du compte de stoickage Cible
$vmName : Nom de la machine virtuelle
$cloudServiceName : Nom du cloud Service
$typeDisk : Type de disque pour information ("DATA"/"LOG"/"BACKUP"...)
$diskSize : Taille de l’espace disque du volume à créer en Go
$lunID : Index de LUN (3/4/5…)
$diskNameDataDisk= $vmName+ « . » + $typeDisk Nom du disque généré automatiquement
$urlMediaDataDisk = « https:// » +$storageAccountName+ «.blob.core.windows.net/vhds/”+$diskName+”.vhd” URI d’accès au fichier VHD généré automatiquement pour le disque supplémentaire
Création du disque supplémentaire et rattachement à la VM :
Get-AzureVM -ServiceName $cloudServiceName -Name $vmName `
| Add-AzureDataDisk -CreateNew -DiskSizeInGB $diskSize -LUN $lunID -MediaLocation $urlMediaDataDisk -DiskLabel $diskNameDataDisk`
| Update-AzureVM
- Commande Get-AzureVM
Le paramètre -ServiceName correspond au nom du Cloud Service
Le paramètre -Name correspond au nom de la VM
- Commande Add-AzureDataDisk
Le paramètre -CreateNew est obligatoire
Le paramètre -DiskSiezInGb indique la taille du disque en GB
Le paramètre -LUN correspond au numéro d'attachement du disque (cf Raw Device mapping), cet index doit être incrémenté à chaque disque ajouté.
Le paramètre -MediaLocation correspond à l'URL du disque virtuel VHD.
Voilà qui clôture le premier billet sur la création des artefacts IaaS sur Azure.
Jérémy Leflon – Jeremy.Leflon@microsoft.com
Merci pour ce post très instructif. Il me sera utile pour tester Azure !
Merci pour ce poste très détaillé !
Très bon article vivement la suite !
Très bon article