Azure VM Scale Sets : 1 Copie de la VM modèle

Dans cette série d’article nous allons explorer les groupes de machines virtuelles identiques (scaleset) Azure à l’aide de powershell et des template ARM.

Dans ce premier article nous allons :

  • Créer une copie d’une machine virtuelle azure à l’aide de script powershell et de template arm
  • Configurer cette copie pour qu’un script de généralisation se lance automatiquement au démarrage

Rapide rappel sur les Scale Sets azure à partir de la documentation microsoft :

Les groupes identiques de machines virtuelles Azure vous permettent de créer et de gérer un groupe de machines virtuelles identiques et disposant d’une charge équilibrée. Le nombre d’instances de machine virtuelle peut augmenter ou diminuer automatiquement en fonction d’une demande ou d’un calendrier défini.

Nous allons nous baser sur un cas d’utilisation de cette technologie :

  • Le client dispose d’une vm sur azure et souhaite, à partir de celle-ci, créer une collection de machine afin de pouvoir simplement créer ou supprimer des machines de sa collection en fonction de la charge actuelle
  • Le client à deux options :
    • A partir de sa machine créer une image fixe et déployer celle-ci sur son scaleset :
      Pros : l’utilisateur aura une copie conforme de sa machine
      Cons : si l’utilisateur met à jour sa machine modèle il devra écraser chaque machine le scaleset pars sa nouvelle image
    • Créer un scaleset à partir d’une image par défaut. Lors de la création d’une image lancer un script qui installera les composants nécessaires
      Pros : les machines auront toujours la dernière version de Windows, en cas de mis à jour d’un service/application il suffit de propager uniquement cette mise à jour
      Cons : lors de la création d’une machine il est nécessaire de configurer et d’installer les composants nécessaires

Nous allons explorer la première option.

1ère  étape : créer une copie temporaire de la machine modèle

1. Installer le module azure de powershell (si nécessaire)

2. Initialiser les variables

3. Initialiser les accès

4. Récupérer la machine modèle et l’éteindre si nécessaire

5. Copier le vhd de la machine modèle

Le processus de généralisation d’une machine est définitif, une fois celle ci généralisée il n’est plus possible d’utiliser celle-ci. Nous allons donc d’abord créer une copie temporaire de notre modèle que nous utiliserons pour la généralisation, laissant ainsi notre machine modèle intacte. Pour cela nous allons d’abord copier le vhd de la machine modèle dans notre storage.

6. Créer un script de généralisation

Afin qu’une VM puisse être généralisée l’outil sysprep.exe doit être lancé. Pour éviter d’avoir à manuellement se connecter sur la VM pour lancer sysprep.exe nous allons copier le script powershell suivant dans notre storage. Ce script sera lancé automatiquement au démarrage de la VM.

7. Créer une VM temporaire

Remarquez que nous utilisons ici un template ARM json pour instancier notre nouvelle vm, vous pouvez récupérer celui ci directement depuis le portail azure, azure resource explorer, ou le créer vous même à partir de la documentation microsoft.

Deux parties sont importantes dans notre cas :

  • « storage profile » précise que la VM crée se base sur un vhd existant pointant vers l’url de notre copie temporaire
  • « CustomScriptExtension » ajoute une extension qui lancera le script de généralisation au démarrage de notre vm temporaire, notez qu’il est possible de passer des arguments à ce script pour, par exemple, s’assurer de la configuration de votre vm temporaire

Le fichier suivant contient les paramètres par défaut de votre template ARM, il doit être sur la machine lançant le script powershell :

Dans le prochain article nous verrons comment utiliser cette VM pour créer le vhd qui sera utilisé pour le scaleset.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.