Envoyer une machine virtuelle Debian sur Microsoft Azure

Dans Microsoft Azure nous avons accès à certaines distributions Linux (Ubuntu, RedHat, etc.) afin de créer des machines virtuelles.

Personnellement j'utilise surtout Debian, mais celle-ci n'est pas disponible de base, j'ai donc dû créer cette VM à la main (en utilisant Hyper-V), la préparer et l'envoyer sur Azure afin de pouvoir la ré-utiliser par la suite.

Afin de faire tout ceci nous passerons par quatre grandes étapes :

  • Installation d'une VM Debian en local avec Hyper-V
  • Configuration de cette VM et de l'Azure Linux Agent (pas traité dans cet article)
  • Upload du fichier disque dans Azure et conversion en image ré-utilisable
  • Création et utilisation d'une VM Azure

Les pré-requis sont :

  • Avoir un compte Azure (Si vous n'avez jamais utilisé le Cloud de Microsoft et que vous êtes intéressé une version d'essai d'Azure est disponible avec 150€ de credit valide pour un mois )
  • Savoir configurer une distribution Linux (il est tout à fait possible de le faire avec une distribution vierge)
  • Avoir des connaissances de base avec Hyper-V
  • Etre patient (ou avoir une bonne connexion pour l'upload de l'image disque de la VM)

Installation de Debian avec Hyper-V

Tout d'abord il va falloir installer Debian (ou n'importe quel autre OS, mais je ne traiterai que de Debian ici) grâce à Hyper-V en local sur votre machine.

Debian dans Hyper-V

Vous pouvez la configurer comme vous le voulez, essayez juste de rester assez basique afin de pouvoir la ré-utiliser dans un maximum de cas :).

Configuration de la VM avec Azure Linux Agent

En théorie, il faut installer l'Azure Linux Agent qui permet à Azure de paramétrer automatiquement la VM (création d'un nouvel utilisateur, modification du hostname, etc.) lors de sa création.

Ne maitrisant pas encore totalement le sujet je n'en parlerai pas ici, je ferai un second article qui décrira les différentes étapes en détail (et je mettrai celui-ci à jour une fois que ce sera chose faite).

Il faut savoir que la VM peut très bien fonctionner sans ca, on perd simplement quelques fonctionnalités sympa, comme la configuration automatique de la VM par Azure (ajout d'une clé SSH, d'un utilisateur, etc.)

Upload du fichier disque dans Azure

Nous allons d'abord créer un nouveau storage dans notre compte Azure afin d'y stocker l'image de la VM.

Pour cela vous devez vous rendre dans la catégorie "Stockage" cliquer sur "Nouveau" en bas à gauche (j'utilise ici "l'ancienne" interface d'Azure).

Création d'un stockage dans Azure

Une fois ce stockage créé nous allons créer un container dedans (c'est dans celui-ci que l'image sera stockée).

Il faut d'abord cliquer sur notre stockage afin de rentrer dans ses paramètres, et ensuite dans l'onglet "Conteneurs" cliquer sur "Créer un conteneur".

Création d'un container dans Azure

Une fois ces deux étapes terminées, nous allons pouvoir convertir le vhdx de notre VM Hyper-V en vhd, pour ensuite l'uploader sur Azure.

Pour connaitre le chemin vers le fichier VHDX vous pouvez regarder dans la configuration de votre VM dans le manager d'Hyper-V (dans la catégorie disque dur).

(Les commandes qui suivent se feront en PowerShell)

Afin d'effectuer la conversion d'un VHDX en VHD la commande suivante suffit (n'oubliez pas de remplacer les chemins des deux fichiers)

Convert-VHD -path "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Debian_Stable_64.vhdx" -DestinationPath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Debian_Stable_64.vhd"

Une fois l'image disque convertie nous allons pouvoir l'envoyer sur le container créé précédemment (encore en PowerShell)

# Recupération du fichier de publication afin
# de se connecter à Azure
Get-AzurePublishSettingsFile
# A cette étape une page web devrait s'ouvrir et
# vous demander de vous connecter à votre
# compte Azure.
# Une fois fait, un fichier devrait se télécharger,
# c'est son chemin que vous devrez spécifier dans la
# prochaine commande
Import-AzurePublishSettingsFile "C:\Users\MonUtilisateur\Downloads\BizSpark-11-14-2014-credentials.publishsettings"

# Envoi du fichier VHD dans notre container
Add-AzureVhd -Destination "https://monstockageperso.blob.core.windows.net/moncontainerperso/debian_7_64.vhd" -LocalFilePath "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Debian_Stable_64.vhd"

En fonction de votre connexion et de la puissance de votre machine, cette étape peut prendre assez bien de temps, en effet, l'image va d'abord etre analysée afin de créer une CheckSum (et ainsi pouvoir s'assurer que le transfert s'est bien effectué) et sera ensuite uploadée sur Azure.

Calcul du hash et upload de l'image dans notre container Azure

Nous allons maintenant transformer ce VHD en image afin de pouvoir la réutiliser dans Azure.

Pour cela il faut aller dans la catégorie "Machines virtuelles" et ensuite dans l'onglet "Images", il reste alors à cliquer sur "Créer", à remplir les différents champs et à bien spécifier le chemin vers l'image disque (il est possible de naviguer à travers vos containers afin de la sélectionner).

Transformation de notre VHD en image réutilisable par Azure

Création et utilisation de la VM Azure

Nous pouvons maintenant créer une VM dans Azure avec cette nouvelle image.

Les étapes sont les mêmes que pour la création d'une VM classique, il faudra juste aller séléctionner notre image qui sera située dans la catégorie "Mes images" dans la galerie d'image.

Création d'une VM dans Azure grâce à une image uploadée par nos soins

Attention ! Comme nous avons passé l'étape concernant l'installation de l'Azure Linux Agent le provisionning de la VM va échouer (il se peut que ca prenne du temps avant l'affichage d'un message d'erreur).
Ce n'est pas très grave en soit, il faudra simplement se connecter avec l'utilisateur créé au moment de l'installation dans Hyper-V et modifier quelques petites infos comme le Hostname par exemple.

Une VM créée avec une image perso

Vous savez maintenant uploader vos propres VM sur Azure, à savoir que ca devrait être faisable avec une VM Windows ou n'importe quel autre OS qui tourne dans Hyper-V.

A savoir qu'il existe aussi un "Store" d'images uploadées par d'autres utilisateurs qui est disponible, il suffit de cliquer sur "Parcourir le dépot de machines" en bas au centre de l'écran dans la catégorie "Machines Virtuelles" sous l'onglet "Images".

Dépot de machines virtuelles Linux

Quelques liens utiles