Loupe

Windows Azure Management Librairies : Introduction et authentification (1/2)

« Windows Azure Management Librairies » est un sdk qui peut être très utile quand il s’agit d’administrer des ressources sur Azure.

Actuellement les services et ressources Azure sont accessibles par l’intermédiaire d’API REST (« Api de management Azure ») mise à disposition par Microsoft. Cependant l’utilisation de ces API nous oblige à rédiger explicitement du code répétitif et fastidieux puisqu’il faut rédiger « à la main » tous les appels au API.  WAML est un « wrapper C# » qui encapsule les appels aux Api de management Azure.

 

Dans sa version actuelle WAML donne accès aux services suivants :

        - Hosted services

        - Virtual Machines

        - Virtual Networks

        - Storage Accounts

        - Subscription information

        - Networks

        - Web Sites

        - SQL Databases

 

L’objectif de cette série d’articles est de créer une machine virtuelle avec WAML depuis une application console et pour cela, un ensemble d’étapes est nécessaire :

1. Authentification pour accéder aux API de management Azure via le Sdk WAML

2. Création du blob Storage qui contiendra les fichiers .vhd de notre machine virtuelle

3. Création d’un cloud service qui hébergera notre instance de machine virtuelle

Création et déploiement de la machine virtuelle (enfin!)

 

Mais comment ça marche une machine virtuelle dans Azure ?

Avant de rentrer dans le vif du sujet, faisons un petit point sur le fonctionnement d’une machine virtuelle dans Azure : une « vm » est créée à partir d’une image de système d’exploitation ou d’une image de machine virtuelle existante. Une fois créée la vm possède plusieurs disques virtuels (.vhd) qui sont stockés dans des blobs Azure. La machine virtuelle quant à elle, va être hébergée au sein d’un « Cloud service Azure », ce dernier procure les ressources processeurs, la RAM et le nom de domaine pour accéder à la machine virtuelle.

 

1. Installation des Packages « Nuget » :

Après avoir créé un projet de type de Console depuis Visual Studio, l’installation du sdk WAML se fait depuis Nuget :

http://www.nuget.org/packages/Microsoft.WindowsAzure.Management.Libraries

Il est également nécessaire d’installer un package nuget qui nous permettra de créer un conteneur dans notre blob storage :

https://www.nuget.org/packages/WindowsAzure.Storage/https://www.nuget.org/packages/WindowsAzure.Storage/

 

2. Authentification :

Si vous ne possédez pas encore de compte Windows Azure, c’est par ici  : https://azure.microsoft.com/en-us/pricing/free-trial/

L’accès aux API de management Azure est sécurisé par SSL, il est donc nécessaire de créer et d’uploader un certificat sur le compte Azure que nous allons utiliser pour créer notre machine virtuelle.

Pour pouvoir utiliser le SDK WAML, nous avons besoin de deux informations :

           1. L’identifiant de la souscription Azure

           2. La signature d’un certificat liée à la souscription Azure

La création du certificat se fait depuis l’invite de commande Visual Studio (lancé en tant qu’administrateur) avec la commande suivante :

 

makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer" 

 

Cette commande génère un certificat .cer qu’il faut ensuite uploader sur son compte Azure.

Une fois ce dernier uploadé sur le compte Azure, nous avons besoin de récupérer le fichier de « PusblishSettings » dans lequel nous retrouvons les deux informations citées ci-dessus.

Pour télécharger ce fichier, il est nécessaire d’ouvrir « Azure PowerShell » en tant qu’administrateur et utiliser la commande suivante :

Get-AzurePusblishSettingsFile

 

En ouvrant le fichier téléchargé, on retrouve l’identifiant de souscription Azure et la signature du certificat encodé en base 64 :

publishsettings

 

 

3. Un peu de code :

 

Maintenant que nous possédons toutes les informations nécessaires à l’utilisation du SDK WAML, il est possible de les récupérer dans notre code C# :

string subscriptionId = ConfigurationManager.AppSettings["AzureSubscriptionId"].ToString();
string certificateData = ConfigurationManager.AppSettings["ManagementCertificate"].ToString();
X509Certificate2 certificate = new X509Certificate2(Convert.FromBase64String(certificateData));

CancellationTokenSource ctStorageTask = new CancellationTokenSource();
CancellationTokenSource ctCloudServiceTask = new CancellationTokenSource();


// Get credentials to have access to the Azure Management API(s)
CertificateCloudCredentials azureCredentials = new CertificateCloudCredentials(subscriptionId, certificate);


Cet objet « azureCredentials » nous donne accès aux API de management Azure, et nous pouvons débuter l’implémentation de notre solution pour créer une machine virtuelle Sourire

(la suite, c’est par ici !)

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus