Implantar VMs Start/Stop v2 em uma assinatura do Azure

Execute as etapas neste artigo em sequência para instalar o recurso Start/Stop VMs v2. Depois de concluir o processo de configuração, configure as agendas para personalizá-lo de acordo com suas necessidades.

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 usuários com permissões de controle de acesso baseado em função (RBAC) apropriadas na implantação Start/Stop v2 adicionem, removam e gerenciem agendamentos para máquinas virtuais sob o escopo da instância Start/Stop VMs v2. Este comportamento é a predefinição. Na prática, isso significa que um usuário que não tem permissões explícitas em uma máquina virtual ainda pode criar operações de início, parada e parada automática nessa máquina virtual quando tiver permissão para modificar a solução Start/Stop v2 gerenciando a máquina virtual.

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

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

  • Quando você implanta a solução Start/Stop v2 em um grupo de recursos novo ou existente, uma tag chamada SolutionName com um valor StartStopV2 é adicionada ao grupo de recursos e aos seus recursos implantados pelo Start/Stop v2. Quaisquer outras tags nesses 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 contenham apenas essa marca.

Implantar recurso

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

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

Nota

Atualmente, essa solução não oferece suporte à especificação de uma conta de armazenamento existente ou de um recurso do Application Insights.

Nota

O formato de nomenclatura do aplicativo de função e da conta de armazenamento foi alterado. Para garantir a exclusividade global, uma cadeia de caracteres aleatória e exclusiva agora é anexada aos nomes desses recursos.

  1. Abra o navegador e navegue até a organização do GitHub Start/Stop 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 redundante de zona (Start/StopV2-AZ), você deve criar sua implantação em uma das seguintes regiões:

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

  6. Introduza os seguintes valores:

    Nome Valor
    País/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, E.U.A. Central.
    Nome do Aplicativo de Função do Azure Digite um nome válido em um caminho de URL. O nome digitado é validado para garantir que seja exclusivo no Azure Functions.
    Nome do Application Insights Especifique o nome da instância do Application Insights que manterá a análise para VMs Start/Stop.
    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 de VMs Start/Stop.
    Endereço de E-mail Especifique um ou mais endereços de e-mail para receber notificações de status, separados por uma vírgula (,).

    Start/Stop VMs template deployment configuration

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

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

  9. Selecione o ícone de campainha (notificações) na parte superior do ecrã para ver o estado de implementação. Você verá a implantação em andamento. Aguarde até que a implementação esteja concluída.

  10. Selecione Ir para o grupo de recursos no painel de notificação. Deverá ver um ecrã semelhante a:

    Start/Stop VMs template deployment resource list

Nota

Estamos coletando 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 atuou em uma máquina virtual e por quanto tempo uma máquina virtual ficou suspensa para determinar a eficácia do serviço.

Habilitar várias assinaturas

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

  1. Copie o valor para o nome do Aplicativo de Função do Azure que você especificou durante a implantação.

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

  3. Selecione Controlo de acesso (IAM) .

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

  5. Atribua a seguinte função. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

    Definição Value
    Role Contribuinte
    Atribuir acesso a Usuário, grupo ou entidade de serviço
    Membros <O nome do aplicativo Azure Function>

    Screenshot showing Add role assignment page in Azure portal.

Visão geral de configurar agendas

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 suas necessidades.

  • Agendado - As ações Start e stop são baseadas em uma agenda especificada no Azure Resource Manager e nas VMs clássicas. ststv2_vms_Scheduled_start e ststv2_vms_Scheduled_stop configurar o início e a parada agendados.

  • Sequenciado - As ações Start e Stop são baseadas em um cronograma direcionado a VMs com tags de sequenciamento predefinidas. Apenas duas tags nomeadas são suportadas - sequencestart e sequencestop. ststv2_vms_Sequenced_start e ststv2_vms_Sequenced_stop configurar o início e a parada seqüenciados.

    Nota

    Este cenário suporta apenas VMs do Azure Resource Manager.

  • AutoStop - Esta funcionalidade só é usada para executar uma ação stop no Azure Resource Manager e em VMs clássicas com base em sua utilização da CPU. Também pode ser uma ação de tomada baseada em agendamento, que cria alertas em VMs e, com base na condição, o alerta é acionado para executar a ação de parada. ststv2_vms_AutoStop configura a funcionalidade de parada automática.

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

Select the Clone option to duplicate a logic app

Cenário de início e paragem programados

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

Há suporte para configurar o aplicativo lógico apenas para iniciar as VMs.

Para cada cenário, você pode direcionar a ação para uma ou mais assinaturas, grupos de recursos únicos ou múltiplos, e especificar uma ou mais VMs em uma lista de inclusão ou exclusão. Não é possível especificá-los juntos 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 Logic App Designer for exibido, no painel do designer, selecione Recorrência para configurar a agenda 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 do designer, selecione Function-Try 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 subscriptions matriz 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.

    Este exemplo também demonstra a exclusão de uma máquina virtual. Você pode excluir a VM especificando o caminho do recurso VMs ou por 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 da VM começa 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 dentro da 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 de visão geral do aplicativo lógico, selecione Ativar.

Cenário seqüenciado de início e parada

Em um ambiente que inclui dois ou mais componentes em várias VMs do Azure Resource Manager em uma arquitetura de aplicativo distribuída, é importante dar suporte à sequência na qual os componentes são iniciados e interrompidos em ordem. Certifique-se de ter aplicado as tags sequencestart e sequencestop às VMs de destino, conforme descrito na página Visão geral, antes de configurar este cenário.

  1. Na lista de aplicativos lógicos, para configurar o início seqüenciado, 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 Logic App Designer for exibido, no painel do designer, selecione Recorrência para configurar a agenda 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 /> Code view 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 subscriptions matriz 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 agendado, que usava curingas.

    {
      "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 paragem automática

As VMs Iniciar/Parar v2 podem ajudar a gerenciar o custo de execução do Azure Resource Manager e VMs clássicas em sua assinatura, avaliando máquinas que não são usadas durante períodos fora de pico, como após o expediente, e desligando-as automaticamente se a utilização do processador for inferior a uma porcentagem especificada.

As seguintes propriedades de alerta de métrica no corpo da solicitação oferecem 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, consulte 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 Logic App Designer for exibido, no painel do designer, selecione Recorrência para configurar a agenda 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. 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 dentro da 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"
        ]
      }
    }
    

VM Tags

Você também pode incluir ou excluir VMs específicas de ações de início e parada por tags de configurações nas próprias VMs. Para adicionar uma etiqueta, navegue até à VM específica, selecione Etiquetas no menu esquerdo e adicione uma etiqueta denominada ssv2excludevm. Para excluir essa VM da ação iniciar ou parar, defina o valor dessa nova tag 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 carga útil.

Próximos passos

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