Развертывание виртуальных машин запуска и остановки версии 2 в подписке Azure

Выполните действия, описанные в этой статье, в последовательной последовательности, чтобы установить функцию запуска и остановки виртуальных машин версии 2. После завершения процесса установки настройте расписания в соответствии с вашими требованиями.

Рекомендации по разрешениям и политикам

Помните о следующих рекомендациях до и во время развертывания:

  • Решение позволяет пользователям с соответствующими разрешениями на управление доступом на основе ролей (RBAC) в развертывании Start/Stop версии 2 добавлять, удалять и управлять расписаниями для виртуальных машин в область экземпляра начальной и остановки виртуальных машин версии 2. Такое поведение предусмотрено программой. На практике это означает, что пользователь, у которого нет явных разрешений на виртуальной машине, по-прежнему может создавать операции запуска, остановки и автостопирования на этой виртуальной машине, если у них есть разрешение на изменение решения Start/Stop версии 2, управляющего виртуальной машиной.

  • Все пользователи, имеющие доступ к решению запуска и остановки версии 2, могут изучить затраты, экономию, историю операций и другие данные, которые хранятся в экземпляре Application Insights, используемом приложением запуска и остановки версии 2.

  • При управлении решением запуска и остановки версии 2 следует учитывать разрешения пользователей на решение запуска и остановки версии 2, особенно если у них нет разрешения на непосредственное изменение целевых виртуальных машин.

  • При развертывании решения Start/Stop версии 2 в новой или существующей группе ресурсов тег с именем SolutionName со значением StartStopV2 добавляется в группу ресурсов и к ее ресурсам, развернутым с помощью Start/Stop версии 2. Все другие теги этих ресурсов удаляются. Если у вас есть политика Azure, которая запрещает операции управления на основе тегов ресурсов, необходимо разрешить операции управления для ресурсов, содержащих только этот тег.

Развертывание компонента

Развертывание инициируется организацией GitHub для запуска и остановки виртуальных машин версии 2. Хотя эта функция предназначена для управления всеми виртуальными машинами в вашей подписке, во всех группах ресурсов из одного развертывания в подписке можно установить еще один экземпляр функции, если это необходимо для соответствия принятой в вашей организации модели операций или другим требованиям. Ее также можно настроить на централизованное управление виртуальными машинами сразу в нескольких подписках.

Чтобы упростить управление и удаление, рекомендуем развертывать функцию запуска и останова виртуальных машин версии 2 в выделенной группе ресурсов.

Примечание.

В настоящее время это решение не поддерживает выбор существующей учетной записи хранения или ресурса Application Insights.

Примечание.

Изменился формат именования для приложения-функции и учетной записи хранения. Чтобы гарантировать глобальную однозначность, теперь к именам этих ресурсов добавляется произвольная и уникальная строка.

  1. Откройте браузер и перейдите к организации GitHub запуска и останова виртуальных машин версии 2.

  2. Выберите вариант развертывания на основе облачной среды Azure, в которой созданы ваши виртуальные машины Azure.

  3. Если отобразится соответствующий запрос, выполните вход на портал Azure.

  4. Выберите соответствующий План из раскрывающегося списка. При выборе плана избыточности между зонами (Start/StopV2-AZ) необходимо создать развертывание в одном из следующих регионов:

    • Восточная Австралия
    • Южная Бразилия
    • Центральная Канада
    • Центральная часть США
    • Восточная часть США
    • Восточная часть США 2
    • Центральная Франция
    • Центрально-Западная Германия
    • Восточная Япония
    • Северная Европа
    • Юго-Восточная Азия
    • южная часть Соединенного Королевства
    • Западная Европа
    • западная часть США 2
    • Западная часть США — 3
  5. Нажмите кнопку Создать. После этого откроется страница пользовательского развертывания Azure Resource Manager на портале Azure.

  6. Введите следующие значения:

    Имя. Значение
    Область/регион Выберите регион рядом с вами для размещения новых ресурсов.
    Имя группы ресурсов Укажите имя группы ресурсов, которая будет содержать отдельные ресурсы для запуска и останова виртуальных машин.
    Регион группы ресурсов Укажите регион для группы ресурсов. Например, центральная часть США.
    Имя приложения-функции Azure Введите имя, допустимое в пути URL-адреса. Имя, которое вы вводите, проверяется, чтобы убедиться, что оно уникально в функциях Azure.
    Имя Application Insights Укажите имя экземпляра Application Insights, в котором будет храниться аналитика для запуска и останова виртуальных машин.
    Регион Application Insights Укажите регион для экземпляра Application Insights.
    Имя учетной записи хранения Укажите имя учетной записи службы хранилища Microsoft Azure для хранения данных телеметрии выполнения запуска и останова виртуальных машин.
    Электронная почта Укажите один или несколько адресов электронной почты для получения уведомлений о состоянии, разделяя их запятыми (,).

    Start/Stop VMs template deployment configuration

  7. Нажмите Просмотреть и создать в нижней части страницы.

  8. Нажмите кнопку Создать, чтобы начать развертывание.

  9. Чтобы просмотреть состояние развертывания, щелкните значок колокольчика (уведомления) в верхней части экрана. Появится уведомление Выполняется развертывание. Подождите, пока развертывание завершится.

  10. Выберите Перейти к группе ресурсов в области уведомлений. Появится приблизительно такой экран:

    Start/Stop VMs template deployment resource list

Примечание.

Мы собираем данные телеметрии для операций и пульса, чтобы помочь вам, если вы обратитесь в службу поддержки для устранения неполадок. Мы также собираем данные журнала событий виртуальной машины, чтобы узнать, когда служба выполняла действия с виртуальной машиной и как долго виртуальная машина была отложена, чтобы определить эффективность службы.

Включение нескольких подписок

После завершения развертывания запуска и останова выполните следующие действия, чтобы запуск и останов виртуальных машин версии 2 вступил в силу более чем в одной подписке.

  1. Скопируйте значение имени приложения-функции Azure, указанное во время развертывания.

  2. На портале Azure перейдите к вашей вторичной подписке.

  3. Выберите Управление доступом (IAM) .

  4. Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.

  5. Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.

    Параметр Значение
    Роль Участник
    Назначить доступ для Пользователь, группа или субъект-служба
    Участники <Расположение имени приложения-функция Azure>

    Screenshot showing Add role assignment page in Azure portal.

Обзор настройки расписаний

Чтобы управлять методом автоматизации для управления запуском и остановкой виртуальных машин, необходимо настроить одно или несколько предоставляемых приложений логики в соответствии с вашими требованиями.

  • Запланировано: действия запуска и отмены основаны на заданном вами расписании для Azure Resource Manager и классических виртуальных машин. ststv2_vms_Scheduled_start и ststv2_vms_Scheduled_stop настраивают запланированное время запуска и остановки.

  • Последовательно — действия запуска и останова основываются на расписании целевых виртуальных машин с предварительно определенными тегами последовательностей. Поддерживаются только два именованных тега: sequencestart и sequencestop. ststv2_vms_Sequenced_start и ststv2_vms_Sequenced_stop настраивают запуск и останов в последовательности.

    Примечание.

    Этот сценарий поддерживает только виртуальные машины Azure Resource Manager.

  • AutoStop — эта функция используется только для выполнения действия останова для виртуальных машин Azure Resource Manager и классических виртуальных машин в зависимости от использования ЦП. Она также может быть выполняемым по расписанию активным действием, которое создает оповещения на виртуальных машинах и, в зависимости от условия, оповещение может инициироваться для выполнения действия останова.ststv2_vms_AutoStop настраивает функциональность автоматического останова.

Если требуются дополнительные расписания, можно продублировать одно из предоставленных приложений логики с помощью функции Клонировать на портале Microsoft Azure.

Select the Clone option to duplicate a logic app

Сценарий запуска и останова по расписанию

Выполните следующие действия, чтобы настроить действие запуска и останова по расписанию для Azure Resource Manager и классических виртуальных машин. Например, можно настроить расписание ststv2_vms_Scheduled_start, чтобы они запускались утром, когда вы приходите на работу, а останавливать все виртуальные машины в подписке вечером, когда вы уходите с работы, с помощью расписания ststv2_vms_Scheduled_stop.

Также поддерживается настройка приложения логики только для запуска виртуальных машин.

Для каждого сценария можно выбрать целью действия одну или несколько подписок, одну или несколько групп ресурсов, а также указать одну или более виртуальных машин в списках включения или исключения. Указывать их одновременно в одном приложении логики не разрешается.

  1. Войдите на портал Azure и перейдите к разделу Приложения логики.

  2. В списке приложений логики выберите ststv2_vms_Scheduled_start, чтобы настроить запуск по расписанию. Чтобы настроить останов по расписанию, выберите ststv2_vms_Scheduled_stop.

  3. Выберите Конструктор приложений логики в области слева.

  4. Когда отобразится конструктор приложений логики, на панели конструктора выберите Периодичность, чтобы настроить расписание приложения логики. Дополнительные сведения о конкретных параметрах периодичности см. в разделе Планирование повторяющихся задач.

    Configure the recurrence frequency for logic app

  5. На панели конструктора В области конструктора выберите Function-Try, чтобы настроить параметры целевых объектов. Если необходимо управлять виртуальными машинами во всех группах ресурсов в подписке, внесите в текст запроса изменения, показанные в следующем примере.

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

    Укажите несколько подписок в массиве subscriptions, отделяя каждое из значений запятыми, как показано в следующем примере.

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

    Если необходимо управлять виртуальными машинами лишь в определенных группах ресурсов, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. Можно указать одну группу ресурсов или несколько, если это требуется.

    В этом примере также показано исключение виртуальной машины. Виртуальную машину можно исключить, указав для этого путь к ресурсу виртуальной машины или подстановочный знак.

    {
      "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"
        ]
      }
    }
    

    В нашем случае действие будет выполнено надо всеми виртуальными машинами, кроме тех, имя которых начинается на "Az" или "Bz", в обеих подписках.

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

    Если необходимо управлять конкретным набором виртуальных машин в составе подписки, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. При необходимости можно указать одну виртуальную машину.

    {
      "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. В области обзора приложения логики выберите Включить.

Сценарий запуска и останова по последовательности

В среде, которая включает в себя два или более компонента на нескольких виртуальных машинах Azure Resource Manager, работающих в архитектуре распределенных приложений, становится важным соблюдение последовательности, в которой запускаются и останавливаются компоненты. Перед настройкой этого сценария убедитесь, что вы применили теги sequencestart и sequencestop к целевым виртуальным машинам, как описано на странице обзора .

  1. В списке приложений логики выберите ststv2_vms_Sequenced_start, чтобы настроить запуск по последовательности. Чтобы настроить останов по последовательности, выберите ststv2_vms_Sequenced_stop.

  2. Выберите Конструктор приложений логики в области слева.

  3. Когда отобразится конструктор приложений логики, на панели конструктора выберите Периодичность, чтобы настроить расписание приложения логики. Дополнительные сведения о конкретных параметрах периодичности см. в разделе Планирование повторяющихся задач.

    Configure the recurrence frequency for logic app

  4. В области конструктора выберите "Функция-Попробовать", чтобы настроить целевые параметры, а затем нажмите><кнопку /Представление кода в верхнем меню, чтобы изменить код для элемента Function-Try. Если необходимо управлять виртуальными машинами во всех группах ресурсов в подписке, внесите в текст запроса изменения, показанные в следующем примере.

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

    Укажите несколько подписок в массиве subscriptions, отделяя каждое из значений запятыми, как показано в следующем примере.

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

    Если необходимо управлять виртуальными машинами лишь в определенных группах ресурсов, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. Можно указать одну группу ресурсов, если это требуется.

    В этом примере также показано, как исключить виртуальную машину по ее пути ресурса, в отличие от примера запуска/остановки по расписанию, в котором использовались подстановочные знаки.

    {
      "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
    }
    

    Если необходимо управлять конкретным набором виртуальных машин в составе подписки, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. При необходимости можно указать одну виртуальную машину.

    {
      "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
    }
    

Сценарий автоматического останова

Функция запуска и останов виртуальных машин версии 2 поможет снизить затраты на использование Azure Resource Manager и классических виртуальных машин в подписке, выявляя виртуальные машины Azure, которые не используются в периоды малой нагрузки, например в нерабочее время, и автоматически завершая их работу в случае, если процент использования процессора меньше указанного.

Следующие свойства оповещений о метриках в тексте запроса поддерживают настройку:

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

Дополнительные сведения о работе оповещений о метриках Azure Monitor и об их настройке см. в статье Оповещения о метриках в Azure Monitor.

  1. Чтобы настроить автоматический останов, выберите в списке приложений логики ststv2_vms_AutoStop.

  2. Выберите Конструктор приложений логики в области слева.

  3. Когда отобразится конструктор приложений логики, на панели конструктора выберите Периодичность, чтобы настроить расписание приложения логики. Дополнительные сведения о конкретных параметрах периодичности см. в разделе Планирование повторяющихся задач.

    Configure the recurrence frequency for logic app

  4. На панели конструктора В области конструктора выберите Function-Try, чтобы настроить параметры целевых объектов. Если необходимо управлять виртуальными машинами во всех группах ресурсов в подписке, внесите в текст запроса изменения, показанные в следующем примере.

    {
      "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":[]
      }        
    }
    

    Если необходимо управлять виртуальными машинами лишь в определенных группах ресурсов, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. Можно указать одну группу ресурсов, если это требуется.

    {
      "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/"
          ]
      }
    }
    

    Если необходимо управлять конкретным набором виртуальных машин в составе подписки, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. При необходимости можно указать одну виртуальную машину.

    {
      "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"
        ]
      }
    }
    

Теги виртуальной машины

Вы также можете включить или исключить определенные виртуальные машины из запуска и остановки действий, задав теги параметров на самих виртуальных машинах. Чтобы добавить тег, перейдите к определенной виртуальной машине, выберите теги в меню слева и добавьте тег с именем ssv2excludevm. Чтобы исключить эту виртуальную машину из действия запуска или остановки, задайте для этого нового тега trueзначение . Чтобы включить виртуальную машину в действие, задайте для него значение false. Это позволяет исключить определенные виртуальные машины без необходимости обновляться ExcludedVMLists в конфигурации полезных данных.

Следующие шаги

Узнайте, как отслеживать состояние виртуальных машин Azure, управляемых функцией запуска и останова виртуальных машин версии 2, а также выполнять другие задачи по управлению, из статьи Управление функцией запуска и остановки виртуальных машин.