Déployer Start/Stop VMs v2 sur un abonnement Azure

Suivez les étapes décrites dans cet article dans l’ordre pour installer la fonctionnalité Start/Stop VMs v2. Une fois le processus d’installation terminé, configurez les planifications pour les adapter à vos besoins.

Considérations relatives aux autorisations et aux stratégies

Gardez à l’esprit les considérations suivantes avant et pendant le déploiement :

  • La solution permet aux utilisateurs disposant d’autorisations de contrôle d’accès en fonction du rôle (RBAC) appropriées sur le déploiement de Start/Stop v2 d’ajouter, de supprimer et de gérer des planifications pour les machines virtuelles dans le cadre de l’étendue de l’instance Start/Stop VMs v2. Ce comportement est normal. Dans la pratique, cela signifie qu’un utilisateur ne disposant pas d’une autorisation explicite sur une machine virtuelle peut toujours créer des opérations de démarrage, d’arrêt et d’arrêt automatique sur cette machine virtuelle s’il dispose de l’autorisation de modifier la solution Start/Stop v2 qui gère celle-ci.

  • Tous les utilisateurs ayant accès à la solution Start/Stop v2 peuvent découvrir les coûts, les économies, l’historique des opérations et les autres données stockées dans l’instance Application Insights utilisée par l’application Start/Stop v2.

  • Lorsque vous gérez une solution Start/Stop v2, vous devez considérer les autorisations des utilisateurs par la solution Start/Stop v2, en particulier lorsqu’il n’y a pas d’autorisation de modifier directement les machines virtuelles cibles.

  • Lorsque vous déployez la solution Start/Stop v2 sur un groupe de ressources nouveau ou existant, une balise nommée SolutionName avec la valeur StartStopV2 est ajoutée au groupe de ressources et à ses ressources déployées par Start/Stop v2. Toutes les autres balises sur ces ressources sont supprimées. Si vous disposez d’une stratégie Azure qui refuse les opérations de gestion basées sur des étiquettes de ressources, vous devez autoriser les opérations de gestion pour les ressources qui contiennent uniquement cette balise.

Déployer la fonctionnalité

Le déploiement est initié à partir de l’organisation GitHub Start/Stop VMs v2. Bien que cette fonctionnalité soit conçue pour gérer toutes les machines virtuelles de votre abonnement dans tous les groupes de ressources à partir d’un seul déploiement dans l’abonnement, vous pouvez en installer une autre instance en fonction du modèle opérationnel ou des besoins de votre entreprise. Elle peut également être configurée pour gérer de manière centralisée les machines virtuelles de plusieurs abonnements.

Pour simplifier la gestion et la suppression, nous vous recommandons de déployer Start/Stop VMs v2 sur un groupe de ressources dédié.

Notes

Actuellement, cette solution ne permet pas de spécifier un compte de stockage ou une ressource Application Insights existants.

Notes

Le format d’affectation de noms pour l’application de fonction et le compte de stockage a changé. Pour garantir l’unicité globale, une chaîne aléatoire et unique est maintenant ajoutée aux noms de ces ressources.

  1. Ouvrez votre navigateur et accédez à l’organisation GitHub Start/Stop VMs v2.

  2. Sélectionnez l’option de déploiement en fonction de l’environnement cloud Azure dans lequel vos machines virtuelles Azure sont créées.

  3. Si vous y êtes invité, connectez-vous au portail Azure.

  4. Choisissez le Plan approprié dans la liste déroulante. Lorsque vous choisissez un plan redondant interzone (Start/StopV2-AZ), vous devez créer votre déploiement dans l’une des régions suivantes :

    • Australie Est
    • Brésil Sud
    • Centre du Canada
    • USA Centre
    • USA Est
    • USA Est 2
    • France Centre
    • Allemagne Centre-Ouest
    • Japon Est
    • Europe Nord
    • Asie Sud-Est
    • Sud du Royaume-Uni
    • Europe Ouest
    • USA Ouest 2
    • USA Ouest 3
  5. Sélectionnez Créer, ce qui ouvre la page de déploiement Azure Resource Manager personnalisé dans le portail Azure.

  6. Saisissez les valeurs suivantes :

    Nom Valeur
    Région Sélectionnez une région près de chez vous pour les nouvelles ressources.
    Nom du groupe de ressources Spécifiez le nom du groupe de ressources qui contiendra les ressources individuelles pour Start/Stop VMs.
    Région du groupe de ressources Spécifiez la région pour le groupe de ressources. Par exemple, USA Centre.
    Nom de l’application de fonction Azure Tapez un nom valide dans un chemin d’URL. Le système vérifie que le nom que vous tapez est unique dans Azure Functions.
    Nom Application Insights Spécifiez le nom de votre instance Application Insights qui contiendra l’analyse pour Start/Stop VMs.
    Région Application Insights Spécifiez la région de l’instance Application Insights.
    Nom du compte de stockage Spécifiez le nom du compte de stockage Azure qui servira à stocker la télémétrie d’exécution de Start/Stop VMs.
    Adresse de messagerie Spécifiez une ou plusieurs adresses e-mail pour recevoir des notifications d’état, séparées par une virgule (,).

    Configuration du déploiement du modèle Start/Stop VMs

  7. Sélectionnez Vérifier + créer au bas de la page.

  8. Sélectionnez Créer pour démarrer le déploiement.

  9. Sélectionnez l’icône représentant une cloche (notifications) en haut de l’écran pour afficher l’état du déploiement. Déploiement en cours doit s’afficher. Attendez la fin du déploiement.

  10. Sélectionnez Accédez au groupe de ressources à partir du volet de notification. Vous devriez voir un écran semblable à :

    Liste des ressources de déploiement du modèle Start/Stop VMs

Notes

Nous collectons des données de télémétrie des opérations et des pulsations pour vous aider au mieux si vous contactez l’équipe de support pour tout dépannage. Nous collectons également l’historique des événements des machines virtuelles pour vérifier que le service a agi sur une machine virtuelle et déterminer combien de temps une machine virtuelle a été répétée pour connaître l’efficacité du service.

Activer plusieurs abonnements

Une fois le déploiement de Start/Stop VMs terminé, procédez comme suit pour permettre à Start/Stop VMs v2 d’effectuer des actions sur plusieurs abonnements.

  1. Copiez la valeur du nom de l’application de fonction Azure que vous avez spécifiée pendant le déploiement.

  2. Dans le portail Azure, accédez à votre abonnement secondaire.

  3. Sélectionnez Contrôle d’accès (IAM) .

  4. Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.

  5. Attribuez le rôle suivant. Pour connaître les étapes détaillées, consultez Attribuer des rôles Azure à l’aide du portail Azure.

    Paramètre Valeur
    Role Contributeur
    Attribuer l’accès à Utilisateur, groupe ou principal de service
    Membres <Le nom de votre application Azure Functions>

    Capture d’écran montrant la page Ajouter une attribution de rôle dans le portail Azure.

Vue d’ensemble de la configuration des planifications

Pour gérer la méthode d’automatisation permettant de contrôler le démarrage et l’arrêt de vos machines virtuelles, vous devez configurer une ou plusieurs des applications logiques incluses en fonction de vos besoins.

  • Planification : les actions de démarrage et d’arrêt sont basées sur une planification que vous spécifiez sur les machines virtuelles Azure Resource Manager et classiques. ststv2_vms_Scheduled_start et ststv2_vms_Scheduled_stop configurent le démarrage et l’arrêt planifiés.

  • Séquençage : les actions de démarrage et d’arrêt sont basées sur une planification ciblant les machines virtuelles avec des balises de séquençage prédéfinies. Seules deux balises nommées sont prises en charge : sequencestart et sequencestop. ststv2_vms_Sequenced_start et ststv2_vms_Sequenced_stop configurent le démarrage et l’arrêt séquencés.

    Notes

    Ce scénario ne prend en charge que les machines virtuelles Azure Resource Manager.

  • Autostop : Cette fonctionnalité est utilisée uniquement pour effectuer une action d’arrêt sur les machines virtuelles Azure Resource Manager et classiques en fonction de leur utilisation de l’UC. Il peut également s’agir d’une actionplanifiée, qui crée des alertes sur les machines virtuelles et, en fonction de la condition, l’alerte est déclenchée pour effectuer l’action d’arrêt. ststv2_vms_AutoStop configure la fonctionnalité d’arrêt automatique.

Si vous avez besoin de planifications supplémentaires, vous pouvez dupliquer l’une des applications logiques fournies en utilisant l’option Cloner dans le portail Azure.

Scénario de démarrage et d’arrêt planifiés

Procédez comme suit pour configurer l’action de démarrage et d’arrêt planifiés pour les machines virtuelles Azure Resource Manager et classiques. Par exemple, vous pouvez configurer la planification de ststv2_vms_Scheduled_start pour les démarrer le matin lorsque vous êtes au bureau et arrêter toutes les machines virtuelles d’un abonnement lorsque vous quittez le travail le soir en fonction de la planification de ststv2_vms_Scheduled_stop.

La configuration de l’application logique pour qu’elle démarre uniquement les machines virtuelles est prise en charge.

Pour chaque scénario, vous pouvez cibler l’action sur un ou plusieurs abonnements, un ou plusieurs groupes de ressources, et spécifier une ou plusieurs machines virtuelles dans une liste d’inclusions ou d’exclusions. Vous ne pouvez pas les spécifier ensemble dans la même application logique.

  1. Connectez-vous au portail Azure et accédez à Applications logiques.

  2. Dans la liste des applications logiques, sélectionnez ststv2_vms_Scheduled_start pour configurer le démarrage planifié. Pour configurer l’arrêt planifié, sélectionnez ststv2_vms_Scheduled_stop.

  3. Dans le volet gauche, sélectionnez Concepteur d’applications logiques.

  4. Une fois que le concepteur d’applications logiques s’affiche, dans le volet du concepteur, sélectionnez Périodicité pour configurer la planification de l’application logique. Pour en savoir plus sur les options de périodicité spécifiques, consultez Planifier une tâche périodique.

    Configurer la fréquence de périodicité de l’application logique

    Remarque

    Si vous ne fournissez aucune heure et date de début pour la première périodicité, une périodicité s’exécute immédiatement lorsque vous enregistrez l’application logique, ce qui peut entraîner le démarrage ou l’arrêt des machines virtuelles avant l’exécution planifiée.

  5. Dans le volet du concepteur, sélectionnez Try de fonction pour configurer les paramètres cibles. Si vous souhaitez gérer les machines virtuelles de tous les groupes de ressources de l’abonnement, modifiez le corps de la demande comme indiqué dans l’exemple suivant.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/"
        ]
     }
    }
    

    Spécifiez plusieurs abonnements dans le tableau subscriptions avec chaque valeur séparée par une virgule, comme dans l’exemple suivant.

    "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
        ]
    

    Si vous souhaitez gérer les machines virtuelles de groupes de ressources spécifiques, modifiez le corps de la demande comme indiqué dans l’exemple suivant. Chaque chemin de ressource spécifié doit être séparé par une virgule. Vous pouvez spécifier un ou plusieurs groupes de ressources le cas échéant.

    Cet exemple illustre également l’exclusion d’une machine virtuelle. Vous pouvez exclure la machine virtuelle en spécifiant le chemin de ressource de la machine virtuelle ou un caractère générique.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
         ],
        "ResourceGroups": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      }
    }
    

    Ici, l’action sera effectuée sur toutes les machines virtuelles, à l’exception de celles dont le nom commence par Az et Bz dans les deux abonnements.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [“Az*”,“Bz*”],
       "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
    
        ]
      }
    }
    

    Si vous souhaitez gérer un ensemble spécifique de machines virtuelles dans l’abonnement, modifiez le corps de la demande comme indiqué dans l’exemple suivant. Chaque chemin de ressource spécifié doit être séparé par une virgule. Vous pouvez spécifier une machine virtuelle si nécessaire.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg3/providers/Microsoft.Compute/virtualMachines/vm2",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
    
        ]
      }
    }
    
  6. Dans le volet Vue d’ensemble de l’application logique, sélectionnez Activer.

Scénario de démarrage et d’arrêt séquencés

Dans un environnement comprenant deux composants ou plus sur plusieurs machines virtuelles Azure Resource Manager dans une architecture d’application distribuée, il est important de prendre en charge l’ordre de démarrage et d’arrêt des composants. Assurez-vous d’avoir appliqué les étiquettes sequencestart et sequencestop aux machines virtuelles cibles, comme décrit dans la page Vue d’ensemble avant de configurer ce scénario.

  1. Dans la liste des applications logiques, sélectionnez ststv2_vms_Sequenced_start pour configurer le démarrage séquencé. Pour configurer l’arrêt séquencé, sélectionnez ststv2_vms_Sequenced_stop.

  2. Dans le volet gauche, sélectionnez Concepteur d’applications logiques.

  3. Une fois que le concepteur d’applications logiques s’affiche, dans le volet du concepteur, sélectionnez Périodicité pour configurer la planification de l’application logique. Pour en savoir plus sur les options de périodicité spécifiques, consultez Planifier une tâche périodique.

    Configurer la fréquence de périodicité de l’application logique

    Remarque

    Si vous ne fournissez aucune heure et date de début pour la première périodicité, une périodicité s’exécute immédiatement lorsque vous enregistrez l’application logique, ce qui peut entraîner le démarrage ou l’arrêt des machines virtuelles avant l’exécution planifiée.

  4. Dans le volet concepteur, sélectionnez Function-Try pour configurer les paramètres cibles, puis sélectionnez le bouton </> Mode Code dans le menu supérieur pour modifier le code de l’élément Function-Try. Si vous souhaitez gérer les machines virtuelles de tous les groupes de ressources de l’abonnement, modifiez le corps de la demande comme indiqué dans l’exemple suivant.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/"
        ]
     },
       "Sequenced": true
    }
    

    Spécifiez plusieurs abonnements dans le tableau subscriptions avec chaque valeur séparée par une virgule, comme dans l’exemple suivant.

    "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
        ]
    

    Si vous souhaitez gérer les machines virtuelles de groupes de ressources spécifiques, modifiez le corps de la demande comme indiqué dans l’exemple suivant. Chaque chemin de ressource spécifié doit être séparé par une virgule. Vous pouvez spécifier un groupe de ressources si nécessaire.

    Cet exemple démontre également l’exclusion d’une machine virtuelle par son chemin de ressource, par rapport à l’exemple de démarrage et d’arrêt planifiés, qui utilisait des caractères génériques.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions":[
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
        ],
        "ResourceGroups": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      },
       "Sequenced": true
    }
    

    Si vous souhaitez gérer un ensemble spécifique de machines virtuelles dans un abonnement, modifiez le corps de la demande comme indiqué dans l’exemple suivant. Chaque chemin de ressource spécifié doit être séparé par une virgule. Vous pouvez spécifier une machine virtuelle si nécessaire.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm2",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
        ]
      },
       "Sequenced": true
    }
    

Scénario d’arrêt automatique

Start/Stop VMs v2 peut aider à gérer le coût d’exécution des machines virtuelles Azure Resource Manager et classiques dans votre abonnement en évaluant les ordinateurs qui ne sont pas utilisés pendant les périodes creuses, par exemple après les heures de travail, et les arrêtant automatiquement si l’utilisation du processeur est inférieure à un pourcentage spécifié.

Les propriétés d’alerte de métrique suivantes dans le corps de la demande prennent en charge la personnalisation :

  • AutoStop_MetricName
  • AutoStop_Condition
  • AutoStop_Threshold
  • AutoStop_Description
  • AutoStop_Frequency
  • AutoStop_Severity
  • AutoStop_Threshold
  • AutoStop_TimeAggregationOperator
  • AutoStop_TimeWindow

Pour en savoir plus sur le fonctionnement des alertes de métrique d’Azure Monitor et sur la façon de les configurer, consultez Alertes de métrique dans Azure Monitor.

  1. Dans la liste des applications logiques, sélectionnez ststv2_vms_AutoStop pour configurer l’arrêt automatique.

  2. Dans le volet gauche, sélectionnez Concepteur d’applications logiques.

  3. Une fois que le concepteur d’applications logiques s’affiche, dans le volet du concepteur, sélectionnez Périodicité pour configurer la planification de l’application logique. Pour en savoir plus sur les options de périodicité spécifiques, consultez Planifier une tâche périodique.

    Configurer la fréquence de périodicité de l’application logique

  4. Dans le volet du concepteur, sélectionnez Try de fonction pour configurer les paramètres cibles. Si vous souhaitez gérer les machines virtuelles de tous les groupes de ressources de l’abonnement, modifiez le corps de la demande comme indiqué dans l’exemple suivant.

    {
      "Action": "stop",
      "EnableClassic": false,    
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "RequestScopes":{        
        "Subscriptions":[
            "/subscriptions/12345678-1111-2222-3333-1234567891234/",
            "/subscriptions/12345678-2222-4444-5555-1234567891234/"
        ],
        "ExcludedVMLists":[]
      }        
    }
    

    Si vous souhaitez gérer les machines virtuelles de groupes de ressources spécifiques, modifiez le corps de la demande comme indiqué dans l’exemple suivant. Chaque chemin de ressource spécifié doit être séparé par une virgule. Vous pouvez spécifier un groupe de ressources si nécessaire.

    {
      "Action": "stop",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "ResourceGroups": [
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/",
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroupsvmrg2/",
          "/subscriptions/12345678-2222-4444-5555-1234567891234/resourceGroups/VMHostingRG/"
          ]
      }
    }
    

    Si vous souhaitez gérer un ensemble spécifique de machines virtuelles dans l’abonnement, modifiez le corps de la demande comme indiqué dans l’exemple suivant. Chaque chemin de ressource spécifié doit être séparé par une virgule. Vous pouvez spécifier une machine virtuelle si nécessaire.

    {
      "Action": "stop",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/rg3/providers/Microsoft.ClassicCompute/virtualMachines/Clasyvm11",
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      }
    }
    

Balises de machine virtuelle

Vous pouvez également inclure ou exclure des machines virtuelles spécifiques d’actions de démarrage et d’arrêt en définissant des étiquettes sur les machines virtuelles. Pour ajouter une étiquette, accédez à la machine virtuelle concernée, sélectionnez Étiquettes dans le menu de gauche, puis ajoutez une étiquette nommée ssv2excludevm. Pour exclure cette machine virtuelle de l’action de démarrage ou d’arrêt, définissez la valeur de cette nouvelle étiquette sur true. Pour inclure la machine virtuelle dans l’action, définissez la valeur sur false. Cela vous permet d’exclure des machines virtuelles spécifiques sans devoir mettre à jour ExcludedVMLists dans la configuration de la charge utile.

Étapes suivantes

Pour savoir comment surveiller l’état de vos machines virtuelles Azure gérées par la fonctionnalité Start/Stop VMs v2 et effectuer d’autres tâches de gestion, consultez l’article Gérer Start/Stop VMs.