Share via


Implantar Iniciar/Parar VMs v2 em uma assinatura do Azure

Execute as etapas neste artigo em sequência para instalar o recurso Iniciar/Parar VMs v2. Depois de concluir o processo de instalação, configure os agendamentos para personalizá-lo de acordo com seus requisitos.

Considerações sobre permissões e políticas

Tenha em mente as seguintes considerações antes e durante a implantação:

  • A solução permite que os usuários com permissões de RBAC (controle de acesso baseado em função) apropriadas na implantação Iniciar/Parar v2 adicionem, removam e gerenciem agendamentos para máquinas virtuais no escopo da instância Iniciar/Parar VMs v2. Este comportamento ocorre por design. Na prática, isso significa que um usuário que não tem permissões explícitas em uma máquina virtual ainda poderia criar operações de início, parada e parada automática nessa máquina virtual quando ele tiver a permissão para modificar a solução Iniciar/Parar v2 gerenciando a máquina virtual.

  • Qualquer usuário com acesso à solução Iniciar/Parar v2 pode descobrir o custo, a economia, o histórico de operações e outros dados armazenados na instância do Application Insights usada pelo aplicativo Iniciar/Parar v2.

  • Ao gerenciar uma solução Iniciar/Parar v2, você deve considerar as permissões de usuários para a solução Iniciar/Parar v2, especialmente quando não tem permissão para modificar diretamente as máquinas virtuais de destino.

  • Quando você implanta a solução Iniciar/Parar v2 em um grupo de recursos novo ou existente, uma marca chamada SolutionName com um valor de StartStopV2 é adicionada ao grupo de recursos e aos recursos que são implantados por Iniciar/Parar v2. Todas as outras marcas nesse recursos são removidas. Se você tiver uma política do Azure que nega operações de gerenciamento com base em marcas de recursos, deverá permitir operações de gerenciamento para recursos que contêm apenas essa marca.

Implantar recurso

A implantação é iniciada na Organização do GitHub Iniciar/Parar VMs v2. Embora esse recurso seja para gerenciar todas as suas VMs em sua assinatura em todos os grupos de recursos de uma única implantação dentro da assinatura, você pode instalar outra instância dela com base no modelo de operações ou nos requisitos de sua organização. Ele também pode ser configurado para gerenciar as VMs centralmente em várias assinaturas.

Para simplificar o gerenciamento e a remoção, recomendamos que você implante Iniciar/Parar VMs v2 em um grupo de recursos dedicado.

Observação

Atualmente, essa solução não suporta a especificação de uma conta de armazenamento ou recurso do Application Insights existente.

Observação

O formato de nomenclatura para o aplicativo de funções e a conta de armazenamento foram alterados. Para garantir a exclusividade global, uma cadeia de caracteres aleatória e exclusiva é acrescentada aos nomes desses recursos.

  1. Abra o navegador e navegue até a organização do GitHub Iniciar/Parar VMs v2.

  2. Selecione a opção de implantação com base no ambiente de nuvem do Azure em que suas VMs do Azure são criadas.

  3. Se solicitado, entre no portal do Azure.

  4. Escolha o plano apropriado na caixa suspensa. Ao escolher um plano com redundância de zona (Start/StopV2-AZ), é necessário criar a implantação em uma das seguintes regiões:

    • Leste da Austrália
    • Brazil South
    • Canadá Central
    • Centro dos EUA
    • Leste dos EUA
    • Leste dos EUA 2
    • França Central
    • Centro-Oeste da Alemanha
    • Leste do Japão
    • Norte da Europa
    • Sudeste Asiático
    • Sul do Reino Unido
    • Europa Ocidental
    • Oeste dos EUA 2
    • Oeste dos EUA 3
  5. Selecione Criar, que abre a página de implantação personalizada do Azure Resource Manager no portal do Azure.

  6. Insira os valores a seguir:

    Nome Valor
    Região Selecione uma região perto de você para novos recursos.
    Nome do Grupo de Recursos Especifique o nome do grupo de recursos que conterá os recursos individuais para Iniciar/Parar VMs.
    Região do grupo de recursos Especifique a região para o grupo de recursos. Por exemplo, Centro dos EUA.
    Nome do aplicativo de funções do Azure Digite um nome que seja válido em um caminho de URL. O nome que você digitar é validado para ter certeza de que ele é exclusivo no Azure Functions.
    Nome do Application Insights Especifique o nome da sua instância do Application Insights que conterá a análise para Iniciar/Parar VMs.
    Região do Application Insights Especifique a região para a instância do Application Insights.
    Nome da Conta de Armazenamento Especifique o nome da conta de Armazenamento do Azure para armazenar a telemetria de execução Iniciar/Parar VMs.
    Endereço de Email Especifique um ou mais endereços de email para receber notificações de status, separados por uma vírgula (,).

    Start/Stop VMs template deployment configuration

  7. Selecione Examinar + criar na parte inferior da página.

  8. Selecione Criar para iniciar a implantação.

  9. Selecione o ícone de sino (notificações) na parte superior da tela para ver o status da implantação. Você deverá ver a mensagem Implantação em andamento. Aguarde até a conclusão da implantação.

  10. Selecione Ir para o grupo de recursos no painel de notificação. Você verá uma tela semelhante a:

    Start/Stop VMs template deployment resource list

Observação

Estamos coletando a telemetria de operação e pulsação para melhor ajudá-lo se você entrar em contato com a equipe de suporte para qualquer solução de problemas. Também estamos coletando o histórico de eventos da máquina virtual para verificar quando o serviço agiu em uma máquina virtual e por quanto tempo uma máquina virtual foi adiada para determinar a eficácia do serviço.

Habilitar várias assinaturas

Após a conclusão da implantação de Iniciar/Parar, execute as etapas a seguir para habilitar Iniciar/Parar VMs v2 para executar ações em várias assinaturas.

  1. Copie o valor do nome do aplicativo de funções do Azure que você especificou durante a implantação.

  2. No portal do Azure, navegue até a assinatura secundária.

  3. Selecione IAM (Controle de acesso) .

  4. Selecione Adicionar>Adicionar atribuição de função para abrir a página Adicionar atribuição de função.

  5. Atribua a função a seguir. Para ver as etapas detalhadas, confira Atribuir funções do Azure usando o portal do Azure.

    Configuração Valor
    Função Colaborador
    Atribuir acesso a Usuário, grupo ou entidade de serviço
    Membros <O nome do aplicativo de funções do Azure>

    Screenshot showing Add role assignment page in Azure portal.

Configurar visão geral de agendamentos

Para gerenciar o método de automação para controlar o início e a parada de suas VMs, configure um ou mais dos aplicativos lógicos incluídos com base em seus requisitos.

  • As ações agendadas de início e parada são baseadas em um agendamento que você especifica em relação a Azure Resource Manager e VMs clássicas. ststv2_vms_Scheduled_start e ststv2_vms_Scheduled_stop configuram o início e a parada agendados.

  • Sequenciado – as ações de início e parada são baseadas em um agendamento que visa VMs com marcas de sequenciamento predefinidas. Somente duas marcas nomeadas têm suporte – sequencestart e sequencestop. ststv2_vms_Sequenced_start e ststv2_vms_Sequenced_stop configuram o início e a parada sequenciados.

    Observação

    Esse cenário só dá suporte a VMs do Azure Resource Manager.

  • AutoStop – essa funcionalidade é usada apenas para executar uma ação de parada em relação às VMs do Azure Resource Manager e clássicas com base em sua utilização de CPU. Ela também pode ser uma ação de execução com base em agendamento, que cria alertas em VMs e com base na condição. O alerta é disparado para executar a ação de parada.ststv2_vms_AutoStop configura a funcionalidade de parada automática.

Se você precisar de agendamentos adicionais, poderá duplicar um dos Aplicativos Lógicos fornecidos usando a opção de Clonar no portal do Azure.

Select the Clone option to duplicate a logic app

Cenário agendado de início e de parada

Execute as etapas a seguir para configurar a ação agendada de início e parada para VMs do Azure Resource Manager e clássicas. Por exemplo, você pode configurar o agendamento de ststv2_vms_Scheduled_start para início pela manhã quando estiver no escritório e parar todas as VMs em uma assinatura quando deixar o trabalho à noite com base no agendamento de ststv2_vms_Scheduled_stop.

A configuração do aplicativo lógico para apenas iniciar as VMs é compatível.

Para cada cenário, você pode direcionar a ação em uma ou mais assinaturas, um ou vários grupos de recursos e especificar uma ou mais VMs em uma lista de inclusões ou exclusões. Você não pode especificá-las juntas no mesmo aplicativo lógico.

  1. Entre no portal do Azure e navegue até Aplicativos lógicos.

  2. Na lista de aplicativos lógicos, para configurar o início agendado, selecione ststv2_vms_Scheduled_start. Para configurar a parada agendada, selecione ststv2_vms_Scheduled_stop.

  3. Selecione Designer de aplicativo lógico no painel esquerdo.

  4. Depois que o designer de Aplicativo Lógico aparecer, no painel Designer, selecione Recorrência para configurar o agendamento do aplicativo lógico. Para saber mais sobre as opções de recorrência específicas, consulte Agendar tarefa recorrente.

    Configure the recurrence frequency for logic app

  5. No painel Designer, selecione Função – Tentar para definir as configurações de destino. No corpo da solicitação, se você quiser gerenciar VMs em todos os grupos de recursos na assinatura, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir.

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

    Especifique várias assinaturas na matriz subscriptions com cada valor separado por uma vírgula, como no exemplo a seguir.

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

    No corpo da solicitação, se você quiser gerenciar VMs para grupos de recursos específicos, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir. Cada caminho de recurso especificado deve ser separado por uma vírgula. Você pode especificar um grupo de recursos ou mais, se necessário.

    Esse exemplo também demonstra a exclusão de uma máquina virtual. Você pode excluir a VM especificando o caminho do recurso de VMs ou usando um caractere curinga.

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

    Aqui, a ação será executada em todas as VMs, exceto no nome de VM que começar com Az e Bz em ambas as assinaturas.

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

    No corpo da solicitação, se você quiser gerenciar um conjunto específico de VMs na assinatura, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir. Cada caminho de recurso especificado deve ser separado por uma vírgula. Você pode especificar uma VM, se necessário.

    {
      "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. No painel Visão Geral do aplicativo lógico, selecione Habilitar.

Cenário sequenciado de início e de parada

Em um ambiente que inclui dois ou mais componentes em várias VMs do Azure Resource Manager em uma arquitetura de aplicativo distribuído, é importante dar suporte ao sequenciamento de quais componentes são iniciados/parados em ordem. Certifique-se de que você aplicou as marcas sequencestart e sequencestop às VMs de destino, conforme descrito na página Visão geral antes de configurar esse cenário.

  1. Na lista de aplicativos lógicos, para configurar o início sequenciado, selecione ststv2_vms_Sequenced_start. Para configurar a parada sequenciada, selecione ststv2_vms_Sequenced_stop.

  2. Selecione Designer de aplicativo lógico no painel esquerdo.

  3. Depois que o designer de Aplicativo Lógico aparecer, no painel Designer, selecione Recorrência para configurar o agendamento do aplicativo lógico. Para saber mais sobre as opções de recorrência específicas, consulte Agendar tarefa recorrente.

    Configure the recurrence frequency for logic app

  4. No painel do designer, selecione Function-Try para definir as configurações de destino e, em seguida, selecione o botão </>Exibir código no menu superior para editar o código do elemento Function-Try. No corpo da solicitação, se você quiser gerenciar VMs em todos os grupos de recursos na assinatura, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir.

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

    Especifique várias assinaturas na matriz subscriptions com cada valor separado por uma vírgula, como no exemplo a seguir.

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

    No corpo da solicitação, se você quiser gerenciar VMs para grupos de recursos específicos, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir. Cada caminho de recurso especificado deve ser separado por uma vírgula. Você pode especificar um grupo de recursos, se necessário.

    Este exemplo também demonstra a exclusão de uma máquina virtual por seu caminho de recurso em comparação com o exemplo de início/parada agendada, que usava caracteres curinga.

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

    No corpo da solicitação, se você quiser gerenciar um conjunto específico de VMs em uma assinatura, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir. Cada caminho de recurso especificado deve ser separado por uma vírgula. Você pode especificar uma VM, se necessário.

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

Cenário de parada automática

O Iniciar/Parar VMs v2 pode ajudar a gerenciar o custo de execução das VMs do Azure Resource Manager e das VMs clássicas em sua assinatura avaliando computadores que não são usados fora dos períodos de pico, como após o horário comercial, e os desliga automaticamente se a utilização do processador for menor do que um percentual especificado.

As seguintes propriedades de alerta de métrica no corpo da solicitação dão suporte à personalização:

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

Para saber mais sobre como os alertas de métrica do Azure Monitor funcionam e como configurá-los, confira Alertas de métrica no Azure Monitor.

  1. Na lista de aplicativos lógicos, para configurar a parada automática, selecione ststv2_vms_AutoStop.

  2. Selecione Designer de aplicativo lógico no painel esquerdo.

  3. Depois que o designer de Aplicativo Lógico aparecer, no painel Designer, selecione Recorrência para configurar o agendamento do aplicativo lógico. Para saber mais sobre as opções de recorrência específicas, consulte Agendar tarefa recorrente.

    Configure the recurrence frequency for logic app

  4. No painel Designer, selecione Função – Tentar para definir as configurações de destino. No corpo da solicitação, se você quiser gerenciar VMs em todos os grupos de recursos na assinatura, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir.

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

    No corpo da solicitação, se você quiser gerenciar VMs para grupos de recursos específicos, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir. Cada caminho de recurso especificado deve ser separado por uma vírgula. Você pode especificar um grupo de recursos, se necessário.

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

    No corpo da solicitação, se você quiser gerenciar um conjunto específico de VMs na assinatura, modifique o corpo da solicitação, conforme mostrado no exemplo a seguir. Cada caminho de recurso especificado deve ser separado por uma vírgula. Você pode especificar uma VM, se necessário.

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

Marcas de VM

Você também pode incluir ou excluir VMs específicas de iniciar e parar ações definindo marcas nas próprias VMs. Para adicionar uma marca, navegue até a VM específica, selecione Marcas no menu à esquerda e adicione uma marca chamada ssv2excludevm. Para excluir essa VM da ação iniciar ou parar, defina o valor dessa nova marca como true. Para incluir a VM na ação, defina o valor como false. Isso oferece uma maneira de excluir VMs específicas sem precisar atualizar ExcludedVMLists na configuração de conteúdo.

Próximas etapas

Para saber como monitorar o status de suas VMs do Azure gerenciadas pelo recurso Iniciar/Parar VMs v2 e executar outras tarefas de gerenciamento, consulte o artigo Gerenciar Iniciar/Parar VMs.