Поделиться через


Развертывание средства "Start/Stop VMs v2" в подписке Azure

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

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

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

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

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

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

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

Функция развертывания

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

Чтобы упростить управление и удаление, рекомендуется развернуть виртуальные машины start/Stop версии 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, который будет содержать аналитику для виртуальных машин Start/Stop.
    Регион Application Insights Укажите регион для экземпляра Application Insights.
    Имя учетной записи хранения Укажите имя учетной записи хранения Azure для хранения данных телеметрии запуска и остановки виртуальных машин.
    Электронная почта Укажите один или несколько адресов электронной почты для получения уведомлений о состоянии, разделенных запятой (,).

    Настройка конфигурации развертывания шаблона запуска/остановки виртуальных машин

  7. Выберите "Рецензирование" и "Создать " в нижней части страницы.

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

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

  10. Выберите "Перейти к группе ресурсов" на панели уведомлений. Вы увидите экран, аналогичный следующему:

    Список ресурсов развертывания шаблона Start/Stop виртуальных машин

Замечание

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

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

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

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

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

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

  4. Нажмите Добавить>Добавить назначение роли, чтобы открыть страницу Добавить назначение роли.

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

    Настройки Ценность
    Должность Вкладчик
    Предоставить доступ к Пользователь, группа или основная служба
    Члены <Имя приложения-функции Azure>

    Снимок экрана: страница добавления назначения ролей на портале Azure.

Общие сведения о настройке расписаний

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

  • Запланировано - Действия запуска и остановки основаны на расписании, которое вы указываете для 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 настраивает функции автоматической остановки.

Если вам нужны дополнительные расписания, вы можете дублировать одно из Logic Apps, предоставленных с помощью параметра "Клонировать" на портале Azure.

Запланированный сценарий запуска и остановки

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

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

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

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

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

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

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

    Настройка частоты повторения для приложения логики

    Замечание

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

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

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/"
        ]
     }
    }
    

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

    "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
        ]
    

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

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

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
         ],
        "ResourceGroups": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      }
    }
    

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

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [“Az*”,“Bz*”],
       "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
    
        ]
      }
    }
    

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

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg3/providers/Microsoft.Compute/virtualMachines/vm2",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
    
        ]
      }
    }
    
  6. В области обзора для приложения логики нажмите кнопку "Включить".

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

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

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

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

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

    Настройка частоты повторения для приложения логики

    Замечание

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

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

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/"
        ]
     },
       "Sequenced": true
    }
    

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

    "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
        ]
    

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

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

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions":[
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
        ],
        "ResourceGroups": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      },
       "Sequenced": true
    }
    

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

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm2",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
        ]
      },
       "Sequenced": true
    }
    

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

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

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

  • AutoStop_ИмяМетрики
  • AutoStop_Условие
  • Порог_Автоматической_Остановки
  • AutoStop_Описание
  • Частота_Автостопа
  • AutoStop_Severity
  • порог автоостановки
  • АвтоСтоп_ОператорАгрегацииВремени
  • AutoStop_временной интервал

Узнайте больше о том, как работают оповещения метрик в Azure Monitor и как их настроить, в разделе Оповещения метрик в Azure Monitor.

  1. В списке приложений логики для настройки автоматической остановки выберите ststv2_vms_AutoStop.

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

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

    Настройка частоты повторения для приложения логики

  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 и выполнением других задач управления, см. в статье "Управление запуском и остановкой виртуальных машин ".