Tutoriel : Installer des applications dans des groupes de machines virtuelles identiques avec Azure CLI
Pour exécuter des applications sur des instances de machine virtuelle d’un groupe identique, vous devez d’abord installer les composants d’application et les fichiers requis. Dans un didacticiel précédent, vous avez appris à créer et utiliser une image personnalisée de machine virtuelle pour déployer vos instances de machine virtuelle. Cette image personnalisée comprenait l’installation et la configuration manuelles d’applications. Vous pouvez également automatiser l’installation des applications pour un groupe identique après le déploiement de chaque instance de machine virtuelle, ou mettre à jour une application déjà exécutée dans un groupe identique. Ce didacticiel vous montre comment effectuer les opérations suivantes :
- Installer automatiquement des applications dans votre groupe identique
- Utiliser l’extension de script personnalisé Azure
- Mettre à jour une application en cours d’exécution dans un groupe identique
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Cet article nécessite la version 2.0.29 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.
Qu’est-ce que l’extension de script personnalisé Azure ?
L’extension de script personnalisé télécharge et exécute des scripts sur des machines virtuelles Azure. Cette extension est utile pour la configuration post-déploiement, l’installation de logiciels ou toute autre tâche de configuration ou de gestion. Des scripts peuvent être téléchargés à partir de Stockage Azure ou de GitHub, ou fournis dans le portail Azure lors de l’exécution de l’extension.
L’extension de script personnalisé s’intègre aux modèles Azure Resource Manager et peut être utilisée avec Azure CLI, Azure PowerShell, le Portail Azure ou l’API REST. Pour plus d’informations, consultez Vue d’ensemble de l’extension de script personnalisé.
Pour utiliser l’extension de script personnalisé avec l’interface CLI Azure, vous créez un fichier JSON qui définit les fichiers à obtenir et les commandes à exécuter. Ces définitions JSON peuvent être réutilisées sur plusieurs déploiements de groupe identique pour garantir des installations d’applications cohérentes.
Créer une définition d’extension de script personnalisé
Pour voir l’extension de script personnalisé en action, il faut créer un groupe identique qui installe le serveur web NGINX et affiche le nom d’hôte de l’instance de machine virtuelle du groupe identique. La définition d’extension de script personnalisé suivante télécharge un exemple de script à partir de GitHub, installe les packages requis, puis écrit le nom d’hôte de l’instance de machine virtuelle sur une page HTML de base.
Dans l’interpréteur de commandes actuel, créez un fichier nommé customConfig.json et collez la configuration suivante. Par exemple, créez le fichier dans l’interpréteur de commandes Cloud et non sur votre ordinateur local. Vous pouvez utiliser l’éditeur de votre choix. Dans ce tutoriel, vous utilisez Vi. Entrez vi
dans Cloud Shell. Collez le code JSON ci-dessous dans l’éditeur et tapez :w customConfig.json
.
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],
"commandToExecute": './automate_nginx.sh'
}
Notes
Il peut être nécessaire d’inverser l’utilisation des guillemets simples (') et des guillemets doubles (") au sein du bloc JSON si vous décidez de référencer le JSON directement (au lieu de référencer le fichier customConfig.json) dans le paramètre --settings ci-dessous.
Créer un groupe identique
Important
À compter de novembre 2023, les groupes de machines virtuelles identiques créés à l'aide de PowerShell et d'Azure CLI utilisent par défaut le mode d'orchestration flexible si aucun mode d'orchestration n'est spécifié. Pour plus d’informations sur ce changement et les actions que vous devez entreprendre, consultez l’article Changement cassant pour les clients VMSS PowerShell/CLI – Hub Communauté Microsoft
Créez un groupe de ressources avec la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus :
az group create --name myResourceGroup --location eastus
Créez à présent un groupe de machines virtuelles identiques avec az vmss create. L’exemple suivant crée un groupe identique nommé myScaleSet, et génère des clés SSH si elles n’existent pas :
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys
La création et la configuration des l’ensemble des ressources et des machines virtuelles du groupe identique prennent quelques minutes.
Appliquer l’extension de script personnalisé
Appliquez la configuration de l’extension de script personnalisé aux instances de machine virtuelle dans votre groupe identique avec az vmss extension set. L’exemple suivant applique la configuration customConfig.json aux instances de machine virtuelle myScaleSet dans le groupe de ressources nommé myResourceGroup :
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings customConfig.json
Attention
Les noms de fichier respectent la casse. Utilisez le nom de fichier exact indiqué dans ces instructions pour éviter un échec.
Appliquer l’extension aux instances de groupe identique existantes
Mettez à niveau toutes les instances pour appliquer le script personnalisé. La mise à niveau peut prendre quelques minutes.
az vmss update-instances --resource-group myResourceGroup --name myScaleSet --instance-ids "*"
Autoriser le trafic vers le port 80
Pour autoriser le flux de trafic via l’équilibreur de charge vers les machines virtuelles, le groupe de sécurité réseau par défaut doit être mis à jour.
az network nsg rule create --name AllowHTTP --resource-group myResourceGroup --nsg-name myScaleSetNSG --access Allow --priority 1010 --destination-port-ranges 80
Tester votre groupe identique
Pour voir votre serveur web en action, obtenez l’adresse IP publique de votre équilibreur de charge avec az network public-ip show. L’exemple suivant obtient l’adresse IP pour myScaleSetLBPublicIP qui a été créée dans le cadre du groupe identique :
az network public-ip show \
--resource-group myResourceGroup \
--name myScaleSetLBPublicIP \
--query [ipAddress] \
--output tsv
Saisissez l’adresse IP publique de l’équilibreur de charge dans un navigateur web. L’équilibreur de charge répartit le trafic vers l’une de vos instances de machine virtuelle, comme illustré dans l’exemple suivant :
Laissez le navigateur web ouvert afin que vous puissiez voir une version mise à jour à l’étape suivante.
Modifier la stratégie de mise à niveau
Dans la section précédente, une mise à niveau manuelle a été nécessaire pour pouvoir appliquer l’application mise à jour à toutes les instances de groupe identique. Pour que les mises à jour soient appliquées automatiquement à toutes les instances existantes de groupe identique existantes, modifiez la stratégie de mise à niveau en la faisant passer de manuelle à automatique. Pour en savoir plus sur les stratégies de mise à niveau, consultez Stratégies de mise à niveau des groupes de machines virtuelles identiques.
az vmss update \
--name myScaleSet \
--resource-group myResourceGroup \
--set upgradePolicy.mode=automatic
Déployer une mise à jour d’application
Dans l’interpréteur de commandes actuel, créez un fichier nommé customConfigv2.json et collez la configuration suivante. Cette définition exécute une version v2 mise à jour du script d’installation de l’application :
{
"fileUris": ["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx_v2.sh"],
"commandToExecute": "./automate_nginx_v2.sh"
}
Appliquez à nouveau la configuration de l’extension de script personnalisé à votre groupe identique avec az vmss extension set. Le fichier customConfigv2.json sert à appliquer la version mise à jour de l’application :
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings @customConfigv2.json
Étant donné que le groupe identique utilise désormais une stratégie de mise à niveau automatique, l’application mise à jour est automatiquement appliquée aux instances de groupe identique existantes. Actualisez votre navigateur web pour voir l’application mise à jour.
Nettoyer les ressources
Pour supprimer votre groupe identique et les ressources supplémentaires, supprimez le groupe de ressources et toutes ses ressources avec az group delete. Le paramètre --no-wait
retourne le contrôle à l’invite de commandes sans attendre que l’opération se termine. Le paramètre --yes
confirme que vous souhaitez supprimer les ressources sans passer par une invite supplémentaire à cette fin.
az group delete --name myResourceGroup --no-wait --yes
Étapes suivantes
Dans ce tutoriel, vous avez appris à installer et mettre à jour automatiquement des applications dans votre groupe identique avec Azure CLI :
- Installer automatiquement des applications dans votre groupe identique
- Utiliser l’extension de script personnalisé Azure
- Mettre à jour une application en cours d’exécution dans un groupe identique
Passez au didacticiel suivant pour apprendre à mettre automatiquement à l’échelle votre groupe identique.