Installer et mettre à jour des applications dans des groupes de machines virtuelles identiques

Effectué

Quand vous déployez une application sur un groupe identique, il vous faut un mécanisme qui met à jour votre application de manière cohérente sur toutes les instances du groupe. Pour y parvenir, utilisez une extension de script personnalisé.

Dans le scénario de l’entreprise de transport, vous avez besoin d’un moyen rapide de déployer les mises à jour de l’application tout en minimisant les interruptions pour les utilisateurs finaux. Une extension de script personnalisé est une solution idéale.

Dans cette unité, vous allez découvrir comment utiliser une extension de script personnalisé pour mettre à jour une application qui s’exécute sur un groupe identique.

Qu’est-ce qu’une extension de script personnalisé Azure ?

Une extension de script personnalisé Azure télécharge et exécute un script sur une machine virtuelle Azure. Elle peut automatiser les mêmes tâches sur toutes les machines virtuelles d’un groupe identique.

Stockez vos scripts personnalisés dans Stockage Azure ou dans GitHub. Pour ajouter un script à une machine virtuelle, vous pouvez utiliser le portail Azure. Pour exécuter des scripts personnalisés dans le cadre d’un déploiement basé sur un modèle, combinez une extension de script personnalisé avec des modèles Azure Resource Manager.

Installer une application sur un groupe identique avec une extension de script personnalisé

Pour utiliser une extension de script personnalisé avec Azure CLI, vous créez un fichier de configuration qui définit les fichiers à obtenir et les commandes à exécuter. Ce fichier est au format JSON.

L’exemple suivant montre une configuration de script personnalisé qui télécharge une application à partir d’un dépôt GitHub et l’installe sur une instance d’hôte en exécutant un script nommé custom_application_v1.sh :

# yourConfigV1.json 
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v1.sh"],
  "commandToExecute": "./custom_application_v1.sh"
}

Pour déployer cette configuration sur le groupe identique, vous utilisez une extension de script personnalisé. Le code suivant montre comment créer une extension de script personnalisé pour un groupe de machines virtuelles identiques en utilisant Azure CLI. Cette commande installe la nouvelle application sur les machines virtuelles du groupe identique :

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name yourScaleSet \
  --settings @yourConfigV1.json

Mettre à jour une application sur un groupe identique avec une extension de script personnalisé

Vous pouvez utiliser une extension de script personnalisé pour mettre à jour une application existante sur un groupe de machines virtuelles identiques. Vous référencez un script de déploiement mis à jour, puis vous réappliquez l’extension à votre groupe identique. Par exemple, le code JSON suivant montre un exemple de configuration qui récupère une nouvelle version d’une application et l’installe :

# yourConfigV2.json
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v2.sh"],
  "commandToExecute": "./custom_application_v2.sh"
}

Vous pouvez utiliser la même commande az vmss extension set que celle indiquée précédemment pour déployer l’application mise à jour, mais en référençant cette fois-ci le nouveau fichier de configuration :

az vmss extension set \
    --publisher Microsoft.Azure.Extensions \
    --version 2.0 \
    --name CustomScript \
    --resource-group yourResourceGroup \
    --vmss-name yourScaleSet \
    --settings @yourConfigV2.json

Les machines virtuelles sont mises à jour conformément à la stratégie de mise à niveau du groupe identique. Indiquez cette stratégie quand vous créez le groupe identique. La stratégie de mise à niveau peut avoir un des trois modes suivants :

  • Automatique : Le groupe identique ne définit pas le moment où les machines virtuelles sont mises à niveau. Elles peuvent toutes être mises à jour en même temps, provoquant une interruption du service.
  • Propagation : Le groupe identique déploie la mise à jour par lots sur les machines virtuelles du groupe identique. Une pause facultative permet de réduire ou d’éliminer une interruption de service. Dans ce mode, les machines du groupe identique peuvent exécuter des versions différentes de l’application pendant une courte période de temps. Ce mode nécessite l’ajout d’une sonde d’intégrité au groupe identique ou l’application de l’extension d’intégrité des applications au groupe identique.
  • Manuel : Les machines virtuelles existantes dans le groupe identique ne sont pas mises à jour. Tous les changements doivent être effectués manuellement. Il s’agit du mode par défaut.

Pour spécifier le mode de stratégie de mise à niveau quand vous provisionnez un groupe de machines virtuelles identiques, vous pouvez utiliser l’option upgrade-policy-mode. L’exemple de code suivant utilise Azure CLI :

az vmss create \
  --resource-group MyResourceGroup \
  --name MyScaleSet \
  --image Ubuntu2204 \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys