Archive
Déployer votre propre Machine virtuelle dans Windows Azure (1/2)
Dans ce billet , un peu plus long que d’habitude, je vous propose de faire un point une des nouvelles fonctionnalités Azure annoncé lors de la PDC 2010 : l’hébergement de machine virtuelle directement dans les datacenters d’Azure.
Il y a 4 pré-requis :
- Avoir un abonnement Azure valide AVEC les fonctionnalités Beta (VM Rôle) d’activé
- Avoir une machine virtuelle basée sur Windows 2008 R2 64bits.
- Avoir les licences des logiciels à installer sur la machine virtuelle
Licences logicielles et Ressources Windows Azure :
L’ensemble des licences logicielles utilisée dans le cadre de cette article provienne de mon abonnement MSDN (Windows 2008 R2, Azure, Visual Studio 2010, …) : http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate ) . Les abonnement MSDN (Premium, Ultimate et Bizspark) incluent des ressources Azure pour le développement (http://msdn.microsoft.com/fr-fr/subscriptions/ee461076.aspx).
Pour l’activation des avantages Windows Azure de votre abonnement MSDN, je vous recommande la lecture de ce billet écrit par Marine Tranquard.
Fonctionnalités Bêta de Windows Azure
L’activation des fonctionnalités Béta de la PDC (VM Role, Windows Azure Connect, …) se fait en ligne sur le site d’administration de votre souscription Azure : https://windows.azure.com
- Sélectionner la panneau “Home”
- cliquez sur l’option “Beta Programs”
- Cliquez sur “Participate”
Une fois la demande de participation aux programmes Bêtas effectuée … il peut s’écouler plusieurs jours (voir semaines ) avant que vous n’obteniez l’accord. Tout dépend des ressources disponibles pour ces Betas au sein des datacenters Azure. Donc n’attendez pas, faites la demande dès maintenant !
Au passage, notez l’Id de votre souscription Windows Azure, il vous sera utile par la suite.
Création de l’image Windows
Une image Windows pour Azure doit être basé obligatoirement sur une installation de Windows 2008 R2 64bits. L’image doit être créer au préalable sur une des vos serveurs HyperV (en effet l’hyperviseur de virtualisation utilisé dans les data center Azure dérive d’HyperV).
Je ne rentrerai pas dans le détail de cette phase car il n’y a pas de différence avec la création d’une VM classique dans Hyper-V. Je vous conseillerais néanmoins d’utiliser un disque différentiel qui vous permettra de télécharger une fois pour toute le disque de base et ensuite uniquement des disques différentiés pour vos instances spécifiques.
Un seul point est important : votre disque VHD doit avoir une taille logique maximum de 66559Mo, sinon il sera refusé par Azure.
Dans le cas de ce billet, il aura donc :
- un disque de .VHD de base (2008R2_EN_base.vhd) qui contient une installation fraiche de Windows 2008 R2 avec l’ensemble des mise à jours Windows Update.
- un disque .VHD différentiel (SPECIFIQUE_Azure_DIFF_W2008R2_EN.vhd) qui contient les éléments spécifiques à déployer.
Astuces :
- N’hésitez pas à activer le bureau a distance d’administration (Remote Desktop)
- Activez la fonctionnalité “.Net Framework 3.5.1” dans vos VM de base car ce composant sera nécessaire par la suite :
“Azurification” de la VM
Une fois votre VM prête, il faut la préparer à tourner dans Azure en installant une couche logiciel d’intégration : les “Azure VM Role Integration Components”. Cette couche logicielle permettra à votre VM de remonter des statuts à l’infrastructure Azure, tout en permettant à Azure de gérer correctement les déploiements et mise en production de vos VM dans les datacenters.
Elle est fournit sous la forme d’un fichier .ISO (wavmroleic.iso) installé en même temps que le SDK Windows Azure 1.3 ( ) et se trouve dans le dossier C:\Program Files\Windows Azure SDK\v1.3\iso.
A l’aide d’Hyper-V, il faut connecter cette image iso à un des lecteur de dvd virtuel et installer les composants dans la VM. Si votre image de base est spécifique à Azure, vous pouvez y inclure ces composants.
Lancer l’exécution du “waIntegrationComponents-x64.msi” dans votre VM (la fonctionnalité “.Net 3.5.1” est nécessaire).
Saisissez le mot de passe Administrateur (ou Administrator) de votre VM. Il sera nécessaire pour le processus de préparation de la VM, puis cliquez sur le bouton “Install” pour que les éléments d’intégration s’installent dans votre VM.
Acceptez l’installation des drivers “Microsoft Storage Controllers”, puis laisser l’installation se terminer. Il faudra redémarrer votre VM pour activer les nouveaux services et drivers.
Préparation de la VM au téléchargement
Cette phase est destiné à rendre votre VM générique, c’est à dire à supprimer toutes informations liées à une configuration matérielle précise (nom de machine, configuration hardware, …). L’image ainsi nettoyée pourra être déployée plusieurs fois, la configuration finale s’exécutera lors de son premier démarrage dans son nouvel environnement (qui sera un datacenter Azure).
L’outils utilisé pour ce nettoyage est “sysprep” (SYStem PREParation). Il n’est pas spécifique à Azure et est souvent employé par les administrateurs pour préconfigurer des images type de déploiement (plus de détail sur sysprep voir ici).
- dans votre VM, lancer une ligne de commande en mode administrateur et exécuter c:\windows\system32\sysprep\sysprep.exe
- Sélectionner les valeurs suivantes : “Enter System Out-of-Box Experience (OOBE)”, cochez “Generalize”, “Shutdown”
Cliquez sur le bouton “Ok” pour lancer la préparation de la VM.
Dès que la VM est préparer, sysprep effectue un arrêt de la VM. NE RELANCER SURTOUT PAS LA VM car elle se reconfigurerait.
Les 2 fichiers .VHD sont maintenant paré pour un téléchargement vers Azure, mais … Azure n’est pas encore disposé à vous autoriser à envoyer ces fichiers…
Création d’un certificat personnel (.pfx)
Les envois des fichiers .Vhd sont signés et sécurisés par l’utilisation d’un certificat. Ce certificat permet d’autoriser l’utilisation de l’api de management d’Azure par l’outils d’upload des VHDs.
Si vous ne posséder pas déjà un certificat de management, vous pouvez en générer un avec Visual Studio, ou avec l’outils makecert :
-
Ouvrez une session ligne de commande “Visual Studio command Prompt” en tant qu’administrateur (clic doit, “run as administrator”).
-
Positionnez vous dans le dossier où générer le certificat
-
Entrez la commande suivante :
makecert -sky exchange -r -n "CN=VMRole_Demo" -pe -a sha1 -len 2048 -ss My "VMRole_Demo.cer" (remplacez le CN et le nom du fichier .Cer par vos propre valeur.)
Makecert à enregistrer le nouveau certificat dans le ‘store’ personnel.
Il nous faut maintenant exporter ce certificat dans un format compréhensible par Azure : .pfx. Pour se faire, lancer la console d’administration des certificats (Menu démarrer, “Exécuter” et tapez “certmgr.msc”. Sélectionnez le dossier ‘Personnel\Certificats’ et vous devez y retrouver le certificat nouvellement créé. Faites un clic droit dessus, sélectionner ‘tout les taches’ (‘all tasks’) puis ’exporter’ (‘export’).
Répondez aux question du wizard d’export ( YES, OUI pour exporter la clé privée, et spécifier un mot de passe).
Les outils Azure auront besoin du “thumbprint” (empreinte numérique) du certificat : double clic sur le certificat dans le gestionnaire de certificat, sélectionner l’onglet “details”. L’empreinte numérique se trouve dans la liste : recopier la valeur ( 20 paires hexadécimale) ! (merci le notepad ).
Ce certificat doit maintenant être déclaré dans votre abonnement azure. Connectez vous à la console d’administration Azure (http://windows.azure.com). Dans la zone “certificates management” des “hosted services”, cliquez sur “Add Certificate”, sélectionnez l’abonnement concerné et le fichier .cer qui vient d’être créé, cliquez sur “Done”. Au bout de quelques secondes le certificat est listé par la console d’administration.
L’api de management connait maintenant notre certificat, nous pouvons commencer à télécharger chacun de nos deux fichiers VHD (le VHD de base, et celui de notre vm finale)
Lancer une ligne de commande du Sdk Azure ( Menu démarrer, tous les programmes, Windows Azure SDK v1.3, Windows Azure SDK Command Prompt) puis positionner vous dans le dossier qui contient vos VMs.
Entrez la commande :
csupload Set-Connection "SubscriptionId=VOTREIDSUBSCRIPTIONAZURE; CertificateThumbprint=VOTREEMPREINTE"”
(insérer votre Azure SubscriptionId et l’empreinte de votre certificat au bon endroit) afin de mettre à jour les informations de connexion à votre souscription azure. Cette information est mémorisée sur le poste.
Entrez maintenant la commande de téléchargement :
csupload Add-VMImage –LiteralPath IMAGEDEBASE.vhd –Location "North Central US" –Name IMAGEDEBASE.vhd
Bien entendu, remplacez ‘IMAGEDEBASE’ par le nom de votre fichier VHD. L’utilisation d’un datacenter US est fortement recommandé pendant la période Beta (seul certains datacenter Azure sont équipés pour supporter ces fonctionnalités durant cette période).
csupload va monter le fichier .vhd, l’analyser et le préparer à un téléchargement (réduction de taille, …) puis déclencher le téléchargement vers Azure.
Une fois le premier VHD en cours de téléchargement (“Preparing: 100% complete…”), faites de même pour le 2e fichier VHD correspondant à la VM finale. Un seul téléchargement de chaque vhd est nécessaire, ils peuvent être lancés simultanément.
en vous connectant sur l’interface d’administration d’Azure, vous verrez que la plateforme Azure indique que 2 “VM Role image” sont en cours de création.
La partie préparation des VHD et téléchargement est maintenant terminé.
Je vous donne rendez vous dans quelques jours pour une 2e billet concernant la création et la configuration des Role Azure afin d’instancier une (ou plusieurs) VM dans Azure.