Provisionner une machine virtuelle Linux en utilisant Azure CLI

Effectué

Vous pouvez installer Azure CLI localement sur les systèmes d’exploitation Linux, macOS et Windows. Les détails de l’installation dépendent du système d’exploitation et, dans le cas de Linux, également de la distribution.

Remarque

Pour plus d’informations sur les options d’installation Linux, consultez Installer Azure CLI sur Linux.

Pour utiliser Azure CLI de façon interactive, lancez un shell disponible dans votre système d’exploitation, par exemple cmd.exe dans Windows ou Bash sous Linux ou macOS, puis lancez une commande à l’invite de commandes. Pour automatiser des tâches répétitives, réunissez les commandes CLI dans un script de shell en respectant la syntaxe du shell choisi, puis exécutez le script.

Si vous voulez éviter d’installer Azure CLI, vous pouvez utiliser Azure Cloud Shell. Azure Cloud Shell est un shell interactif et authentifié, que vous pouvez utiliser pour gérer les ressources Azure à partir d’un navigateur web. Azure Cloud Shell peut exécuter Bash et Azure PowerShell, et la version actuelle d’Azure CLI est déjà préinstallée. Pour accéder à Azure Cloud Shell, ouvrez le lien Azure Cloud Shell dans un navigateur web ou lancez-le à partir du portail Azure en sélectionnant l’icône Azure Cloud Shell en regard de la zone de texte de recherche globale.

Screenshot showing the Azure Cloud Shell icon in the Azure portal.

Azure Cloud Shell offre l’avantage de l’authentification intégrée, qui utilise les informations d’identification que vous fournissez lors de l’accès à votre abonnement Azure à partir de votre navigateur web. Ceci élimine la nécessité d’exécuter la commande az login au début de chaque session, ce qui est nécessaire quand vous exécutez Azure CLI localement.

Déployer une machine virtuelle Linux en utilisant Azure CLI

Le processus de provisionnement d’une machine virtuelle Azure exécutant Linux en utilisant Azure CLI implique généralement la séquence des grandes étapes suivantes :

  • Identifier une image de machine virtuelle appropriée.
  • Identifier la taille de machine virtuelle appropriée.
  • Créez un groupe de ressources.
  • Créer et configurer un réseau virtuel.
  • Créez une machine virtuelle Azure.

Selon votre environnement existant et vos exigences, il peut ne pas être nécessaire d’effectuer chacune des étapes précédentes. Par exemple, vous pouvez utiliser un groupe de ressources existant ou un sous-réseau de réseau virtuel pour votre déploiement. En outre, Azure CLI prend en charge un large éventail de paramètres par défaut, qui s’appliquent automatiquement si vous décidez de ne pas affecter explicitement de valeurs à certains paramètres de ressource. Par exemple, comme avec le déploiement basé sur le portail Azure, si vous ne spécifiez pas de réseau virtuel existant, Azure CLI en approvisionne automatiquement un pour vous. Dans ce module, vous allez vous appuyer sur les paramètres par défaut d’Azure CLI et passer le processus de création d’un réseau virtuel.

Remarque

Pour plus d’informations sur l’implémentation de réseaux virtuels à l’aide d’Azure CLI, consultez Démarrage rapide : Créer un réseau virtuel à l’aide d’Azure CLI.

Identifier une image de machine virtuelle appropriée

Avant de commencer votre processus de provisionnement, vous devez d’abord déterminer l’image de machine virtuelle que vous voulez utiliser. Vous devez aussi vérifier la disponibilité de cette image dans la région Azure qui va héberger votre déploiement.

Pour lister les régions Azure disponibles dans votre abonnement, exécutez la commande suivante à partir d’une session Bash dans le volet Azure Cloud Shell :

az account list-locations --output table

Passez en revue la sortie et identifiez la valeur dans la colonne Nom pour la région que vous envisagez d’utiliser. Supposons que vous avez choisi la région USA Est comme cible : le nom est donc usaest.

Pour identifier l’image appropriée, vous devez déterminer son éditeur, son offre et sa référence SKU. Pour affiner la liste des options disponibles, listez les éditeurs non-Microsoft pour la région que vous avez identifiée précédemment en exécutant la commande suivante :

az vm image list-publishers --location eastus --query [].name --output tsv | grep -v "Microsoft" | more

Notes

La liste étant assez longue, veillez à limiter la sortie à la mémoire tampon de session disponible.

Supposons que vous avez choisi Canonical. Ensuite, identifiez les offres disponibles auprès de cet éditeur en exécutant la commande suivante :

az vm image list-offers --location eastus --publisher Canonical --query [].name --output tsv

Supposons que vous avez choisi 0001-com-ubuntu-server-jammy. Ensuite, exécutez la commande suivante pour identifier les références SKU disponibles avec cette offre en exécutant la commande suivante :

az vm image list-skus --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-focal --query [].name --output tsv

Notes

Canonical a récemment changé les noms des offres. Avant Ubuntu 20.04, le nom de l’offre était UbuntuServer. Pour Ubuntu 20.04, le nom de l’offre est 0001-com-ubuntu-server-focal, et pour Ubuntu 22.04, c’est 0001-com-ubuntu-server-jammy.

Pour déployer une machine virtuelle Azure en utilisant une image spécifique, vous devez déterminer la valeur de sa propriété Urn. Cette valeur se compose de l’éditeur, de l’offre, de la référence SKU et éventuellement d’un numéro de version qui identifie l’image de façon univoque. Vous pouvez aussi définir le numéro de version sur latest, qui désigne la version la plus récente de la distribution. Pour afficher la valeur de la propriété Urn pour toutes les images 22_04-lts d’Ubuntu dans la région USA Est, exécutez la commande suivante :

az vm image list --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts --all --output table

Remarque

Vous pouvez utiliser la propriété UrnAlias pour une approche plus simple (bien que beaucoup moins flexible) pour désigner une image à utiliser pendant le déploiement. Cette propriété est facilement disponible pour les images les plus courantes, et vous pouvez récupérer ses valeurs en exécutant la commande Azure CLI az vm image list --output table. Par exemple, UrnAliasUbuntu2204 correspond à l’image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest.

Identifier la taille de machine virtuelle appropriée

En plus de la disponibilité des images, vous devez aussi vérifier que la taille de machine virtuelle que vous envisagez d’utiliser est disponible dans la région Azure qui va héberger votre déploiement. Pour le vérifier, exécutez la commande suivante :

az vm list-sizes --location eastus --output table

Identifiez dans la liste la taille de machine virtuelle appropriée pour votre exemple de déploiement et notez la valeur dans la colonne Nom. Vous devrez entrer le nom dans le même format lors de l’exécution de la commande Azure CLI qui lance le provisionnement de la machine virtuelle Azure. Supposons que vous avez choisi Standard_F4s.

Important

Avant de continuer, vérifiez que cette taille de machine virtuelle est disponible dans la région Azure que vous ciblez et si nécessaire, ajustez les valeurs des paramètres en conséquence dans les commandes suivantes.

Créer un groupe de ressources

Après avoir identifié l’image et la taille de la machine virtuelle Azure, vous pouvez maintenant commencer le processus de provisionnement. Commencez par créer un groupe de ressources pour héberger la machine virtuelle Azure et ses ressources dépendantes. Pour créer un groupe de ressources, utilisez la commande az group create. Cette commande nécessite de spécifier à la fois la valeur des paramètres name et location, qui désignent respectivement le nom du groupe de ressources et la région Azure cible.

az group create --name rg_lnx-cli --location eastus

La sortie de la commande doit ressembler à l’exemple suivant :

{
  "id": "/subscriptions/fd7edadd-187f-41dd-a5df-f80bad63c167/resourceGroups/sample-RG",
  "location": "eastus",
  "managedBy": null,
  "name": "rg_lnx-cli",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Création d’une machine virtuelle Azure

Pour créer une machine virtuelle, utilisez la commande az vm create. Cette commande prend en charge un large éventail de paramètres, y compris l’image du système d’exploitation, la taille du disque et les informations d’identification d’administration. Dans l’exemple suivant, la commande az vm create déclenche le déploiement d’une machine virtuelle Azure nommée sample-cli-vm0, qui héberge la version la plus récente de la référence SKU Ubuntu 22_04-lts-gen2. Le processus de provisionnement configure un compte d’utilisateur d’administration nommé azureuser avec une authentification basée sur une paire de clés SSH. Les clés privées et publiques sont générées et stockées localement à leur emplacement par défaut (~/.ssh) pour autoriser l’accès SSH à la machine virtuelle Azure. Utilisez l’exemple de code suivant pour créer une machine virtuelle Azure :

az vm create \
    --resource-group rg_lnx-cli \
    --name lnx-cli-vm \
    --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
    --size Standard_F4s \
    --admin-username azureuser \
    --generate-ssh-keys

Notes

Le paramètre --size est facultatif. Si vous décidez de l’exclure, la taille résultante va dépendre de l’image que vous avez choisie.

La machine virtuelle Azure commencera à s’exécuter peu de temps après, généralement après quelques minutes. La sortie de la commande Azure CLI inclut des informations au format JSON sur la machine virtuelle Azure nouvellement déployée :

{
  "fqdns": "",
  "id": "/subscriptions/fd7edadd-187f-0000-0000-000000000000/resourceGroups/rg_lnx-cli/providers/Microsoft.Compute/virtualMachines/lnx-cli-vm",
  "location": "eastus",
  "macAddress": "00-0D-3A-8C-C6-AE",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "20.51.149.212",
  "resourceGroup": "rg_lnx-cli",
  "zones": ""
}

À ce stade, vous pouvez vous connecter à la machine virtuelle Azure en exécutant la commande suivante (après avoir remplacé l’espace réservé <public_ip_address> par l’adresse IP que vous avez identifiée dans la sortie générée par Azure CLI) à partir de l’ordinateur où la clé privée est stockée :

ssh azureuser@<public_ip_address>