Décrire les options permettant de créer et de gérer les machines virtuelles Azure

Effectué

Quand vous débutez avec la création de ressources comme des machines virtuelles, le plus simple est d’utiliser le portail Azure. Toutefois, cette méthode n’est ni la plus efficace, ni la plus rapide, en particulier si vous devez créer plusieurs ressources à la fois. Ici, nous allons créer plusieurs dizaines de machines virtuelles pour gérer différentes tâches. Il serait fastidieux de les créer manuellement dans le portail Azure.

Voyons quelles sont les autres méthodes disponibles pour créer et gérer des ressources dans Azure :

  • Modèles Microsoft Azure Resource Manager
  • Azure PowerShell
  • Azure CLI
  • API REST Azure
  • SDK du client Azure
  • Extensions de machine virtuelle Azure
  • Services Azure Automation

Modèles Resource Manager

Supposons que vous souhaitiez créer une copie d’une machine virtuelle avec les mêmes paramètres que celle-ci. Vous pourriez créer une image de machine virtuelle, la charger dans Azure et la référencer comme base de votre nouvelle machine virtuelle. Ce processus est inefficace et fastidieux. Azure vous permet de créer un modèle à partir duquel créer une copie exacte d’une machine virtuelle.

Les modèles Resource Manager sont des fichiers JSON qui définissent les ressources nécessaires au déploiement de votre solution.

Vous pouvez créer un modèle de ressource pour votre machine virtuelle. Dans le menu Machine virtuelle, sous Automatisation, sélectionnez Exporter le modèle.

Screenshot showing Export template option for a VM.

Remarque

Les stratégies pour les ressources incluses dans le bac à sable (sandbox) de ce module Learn vous empêchent de pouvoir exporter la machine virtuelle que vous venez de créer. Cela dit, un modèle exporté est un fichier JSON facile à modifier. Vous pouvez télécharger ou enregistrer un modèle de ressource pour l’utiliser ultérieurement ou déployer tout de suite une nouvelle machine virtuelle basée sur le modèle. Par exemple, vous pourriez créer une machine virtuelle à partir d’un modèle dans un environnement de test et vous rendre compte qu’elle ne suffit pas à remplacer votre machine locale. Vous pouvez alors supprimer le groupe de ressources (ce qui supprime toutes les ressources), ajuster le modèle selon vos besoins, puis réessayer. Si vous souhaitez uniquement apporter des modifications aux ressources déjà déployées, vous pouvez modifier le modèle qui a servi à la créer, puis la redéployer. Resource Manager va alors modifier les ressources pour s’aligner sur le nouveau modèle.

Dès lors qu’il fonctionne comme vous le souhaitez, vous pouvez vous servir de ce modèle pour répliquer facilement plusieurs versions de votre infrastructure, comme une version de préproduction et une version de production. Vous pouvez paramétriser des champs, tels que le nom de la machine virtuelle, le nom du réseau, le nom du compte de stockage, etc. et charger le modèle à plusieurs reprises, en utilisant des paramètres différents pour personnaliser chaque environnement.

Pour plus d’informations sur l’utilisation de modèles, consultez Démarrage rapide : Créer une machine virtuelle Ubuntu Linux à l’aide d’un modèle ARM.

Azure CLI

Azure CLI peut être utilisé pour la création de scripts et l’interaction avec Azure par le biais de la ligne de commande.

Azure CLI est l’outil en ligne de commande multiplateforme de Microsoft qui permet de gérer les ressources Azure, telles que les machines virtuelles et les disques, à partir de la ligne de commande. Il est disponible pour Linux, macOS et Windows, ou dans un navigateur en utilisant Cloud Shell.

Par exemple, depuis l’interface de ligne de commande, vous pouvez créer une machine virtuelle Azure avec la commande az vm create.

az vm create \
    --resource-group TestResourceGroup \
    --name test-wp1-eus-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

Azure CLI peut être utilisé avec d’autres langages de script, tels que Ruby et Python.

En savoir plus sur la création et la gestion des machines virtuelles dans le module Gérer des machines virtuelles avec l’outil Azure CLI.

Pour plus d’informations sur l’utilisation d’Azure CLI pour créer des machines virtuelles, consultez Démarrage rapide : Créer une machine virtuelle Linux à l’aide de l’interface CLI.

Azure PowerShell

Azure PowerShell constitue la solution idéale pour les tâches uniques interactives ou pour l’automatisation des tâches répétitives.

Notes

PowerShell est un interpréteur de commandes multiplateforme qui fournit des services comme la fenêtre shell et l’analyse des commandes. Azure PowerShell est un package de composants additionnels facultatif qui ajoute les commandes Azure (appelées applets de commande). L’installation et l’utilisation d’Azure PowerShell sont abordées plus en détail dans un autre module de formation.

Par exemple, vous pouvez utiliser la cmdlet New-AzVM pour créer une machine virtuelle Azure basée sur Debian.

New-AzVm `
    -ResourceGroupName "TestResourceGroup" `
    -Name "test-wp1-eus-vm" `
    -Location "East US" `
    -Image Debian11 `
    -VirtualNetworkName "test-wp1-eus-network" `
    -SubnetName "default" `
    -SecurityGroupName "test-wp1-eus-nsg" `
    -PublicIpAddressName "test-wp1-eus-pubip" `
    -GenerateSshKey `
    -SshKeyName myPSKey
    -OpenPorts 22

Comme indiqué ici, vous fournissez divers paramètres pour gérer le grand nombre d’options de configuration de machine virtuelle disponibles. La plupart des paramètres ont des valeurs raisonnables. Vous n’avez donc qu’à spécifier les paramètres nécessaires. En savoir plus sur la création et la gestion des machines virtuelles avec Azure PowerShell dans le module Automatiser des tâches Azure à l’aide de scripts avec PowerShell

Pour plus d’informations sur l’utilisation de PowerShell pour créer des machines virtuelles, consultez Démarrage rapide : Créer une machine virtuelle Linux à l’aide de PowerShell.

Terraform

Azure dispose également d’un fournisseur Terraform. Vous pouvez donc facilement utiliser Terraform pour créer et gérer vos machines virtuelles. Terraform permet la définition, l’aperçu et le déploiement d’une infrastructure cloud. Terraform vous permet de créer des fichiers de configuration à l’aide de la syntaxe HCL. La syntaxe HCL vous permet de spécifier un fournisseur de services cloud, tel qu’Azure, et les éléments qui composent votre infrastructure cloud. Après avoir créé vos fichiers de configuration, vous créez un plan d’exécution qui vous permet d’afficher un aperçu de vos modifications d’infrastructure avant leur déploiement. Une fois que vous avez vérifié les modifications, vous appliquez le plan d’exécution pour déployer l’infrastructure.

Pour plus d’informations, consultez Fournisseur Azure Terraform et Démarrage rapide : Utiliser Terraform pour créer une machine virtuelle.

Par programmation (API)

En général, Azure PowerShell et Azure CLI constituent de bonnes solutions si vos scripts sont simples et si vous souhaitez vous en tenir aux outils en ligne de commande. Toutefois, pour les scénarios plus complexes où la création et la gestion des machines virtuelles sont intégrées à une application volumineuse dotée d’une logique complexe, vous devez choisir une autre méthode.

Dans Azure, vous pouvez interagir par programmation avec chaque type de ressource.

API REST Azure

Avec l’API REST Azure, les développeurs ont accès à des opérations classées par ressource, et ils peuvent créer et gérer des machines virtuelles. Les opérations sont exposées en tant qu’URI avec les méthodes HTTP correspondantes (GET, PUT, POST, DELETE et PATCH) et une réponse associée.

Les API Calcul Azure vous donnent un accès par programmation aux machines virtuelles et à leurs ressources de prise en charge.

Pour plus d’informations, consultez les informations de référence sur l’API REST Machines Virtuelles.

SDK du client Azure

Même si l’API REST ne dépend d’aucune plateforme et d’aucun langage, les développeurs recherchent souvent un niveau d’abstraction plus élevé. Le Kit de développement logiciel (SDK) du client Azure encapsule l’API REST Azure, ce qui facilite considérablement les interactions entre les développeurs et Azure.

Les Kits de développement logiciel (SDK) du client Azure sont disponibles pour différents langages et frameworks, notamment les langages .NET tels que C#, Java, Node.js, PHP, Python, Ruby et Go.

Voici un exemple d’extrait de code C# permettant de créer une machine virtuelle Azure à l’aide du package NuGet Microsoft.Azure.Management.Fluent.

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

Voici le même extrait de code en Java en utilisant le SDK Azure Java.

String vmName = "test-wp1-eus-vm";
// ...
VirtualMachine virtualMachine = azure.virtualMachines()
    .define(vmName)
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup("TestResourceGroup")
    .withExistingPrimaryNetworkInterface(networkInterface)
    .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .withAdminUsername("jonc")
    .withAdminPassword("aReallyGoodPasswordHere")
    .withComputerName(vmName)
    .withSize("Standard_DS1")
    .create();

Extensions de machine virtuelle Azure

Supposez que vous souhaitez configurer et installer des logiciels supplémentaires sur votre machine virtuelle après le déploiement initial. Vous voulez que cette tâche utilise une configuration spécifique, qui soit surveillée et exécutée automatiquement.

Les extensions de machine virtuelle Azure sont de petites applications qui permettent de configurer et d’automatiser des tâches sur les machines virtuelles Azure après le déploiement initial.

Pour plus d’informations, consultez Extensions et fonctionnalités de la machine virtuelle Azure.

Services Azure Automation

Lorsqu’une entreprise doit gérer une infrastructure distante, les défis qu’elle doit relever le plus souvent sont le gain de temps, la réduction du nombre d’erreurs et l’amélioration de l’efficacité. Si vous disposez de nombreux services d’infrastructure, nous vous conseillons d’utiliser les services Azure de niveau supérieur, qui vous permettront d’effectuer des opérations plus avancées.

Avec Azure Automation, vous pouvez intégrer des services qui vous permettent d’automatiser facilement les tâches de gestion fréquentes, chronophages et susceptibles d’engendrer des erreurs. Ces services incluent l’automatisation des processus, la gestion des configurations et la gestion des mises à jour.

  • Automatisation des processus Supposons que vous ayez une machine virtuelle qui est surveillée dans l’éventualité d’un événement d’erreur spécifique. Vous devez prendre des mesures pour résoudre le problème dès que l’erreur vous est signalée. L’automatisation des processus vous permet de configurer des tâches d’observateur capables de répondre aux événements qui peuvent se produire dans votre centre de données.

  • Gestion des configurations. Vous pouvez avoir besoin d’être informé de la publication des nouvelles mises à jour logicielles pour le système d’exploitation de votre machine virtuelle. Vous pouvez choisir les mises à jour à inclure ou à exclure. La gestion des configurations vous permet d’effectuer le suivi de ces mises à jour et de prendre les mesures nécessaires. Microsoft Endpoint Configuration Manager permet de gérer les PC, les serveurs et les appareils mobiles de votre entreprise. Vous pouvez étendre cette prise en charge aux machines virtuelles avec Configuration Manager.

  • Update Management. Utilisez ce service pour gérer les mises à jour et les correctifs de vos machines virtuelles. Il permet d’évaluer l’état des mises à jour disponibles, de planifier l’installation, et d’examiner les résultats des déploiements pour vérifier que les mises à jour ont été appliquées. La gestion des mises à jour comprend des services qui permettent de gérer les processus et les configurations. Vous pouvez activer la gestion des mises à jour pour une machine virtuelle directement dans votre compte Azure Automation. Vous pouvez aussi activer la gestion des mises à jour pour une seule machine virtuelle à partir du volet de cette dernière sur le portail Azure.

Arrêt automatique

Arrêt automatique est une fonctionnalité Azure qui vous permet d’arrêter automatiquement vos machines virtuelles selon une planification. Utilisez l’arrêt automatique pour réduire les coûts en vous assurant que vos machines virtuelles ne sont pas exécutées quand vous n’en avez pas besoin. Vous pouvez définir la planification de l’arrêt automatique sur une fréquence quotidienne ou hebdomadaire, et vous pouvez également spécifier le fuseau horaire de la planification.

Pour accéder à la fonctionnalité Arrêt automatique sur une machine virtuelle dans le portail Azure, accédez au panneau de la machine virtuelle dans le portail, cliquez sur « Arrêt automatique » sous la section « Opérations », puis configurez les paramètres d’arrêt automatique en fonction de vos préférences.

Screenshot showing Auto-shutdown option for a VM.

Pour plus d’informations, consultez Arrêt automatique.

Comme vous pouvez le voir, Azure fournit différents outils permettant de créer et d’administrer les ressources. Vous pouvez ainsi intégrer les opérations de gestion à un processus qui vous convient. Examinons certains autres services Azure pour vérifier le fonctionnement correct des ressources de votre infrastructure.