Condividi tramite


Distribuire Avvio/Arresto di macchine virtuali v2 in una sottoscrizione di Azure

Eseguire i passaggi descritti in questo articolo in sequenza per installare la funzionalità Avvio/Arresto di macchine virtuali v2. Dopo aver completato il processo di installazione, configurare le pianificazioni per personalizzarla in base alle esigenze.

Considerazioni su autorizzazioni e criteri

Tenere presenti le considerazioni seguenti prima e durante la distribuzione:

  • La soluzione consente agli utenti con autorizzazioni appropriate di controllo degli accessi in base al ruolo (RBAC) sulla distribuzione Avvio/Start v2 di aggiungere, rimuovere e gestire le pianificazioni per le macchine virtuali nell'ambito dell'istanza Avvio/Arresto di macchine virtuali v2. Questo comportamento è impostato a livello di progettazione. In pratica, questo significa che un utente che non dispone di autorizzazioni esplicite per una macchina virtuale potrebbe comunque creare operazioni di avvio, arresto e arresto automatico su tale macchina virtuale quando ha l'autorizzazione per modificare la soluzione Avvio/Arresto v2 che gestisce la macchina virtuale.

  • Tutti gli utenti con accesso alla soluzione Avvio/Arresto v2 possono individuare costi, risparmi, cronologia operativa e altri dati archiviati nell'istanza di Application Insights usata dall'applicazione Avvio/Arresto v2.

  • Quando si gestisce una soluzione Avvio/Arresto v2, è consigliabile prendere in considerazione le autorizzazioni degli utenti per la soluzione Avvio/Arresto v2, in particolare quando non si dispone dell'autorizzazione per modificare direttamente le macchine virtuali di destinazione.

  • Quando si distribuisce la soluzione Avvio/Arresto v2 in un gruppo di risorse nuovo o esistente, viene aggiunto un tag denominato SolutionName con un valore Avvio/ArrestoV2 al gruppo di risorse e alle relative risorse distribuite da Avvio/Arresto v2. Tutti gli altri tag in queste risorse vengono rimossi. Se si dispone di criteri di Azure che negano le operazioni di gestione in base ai tag delle risorse, è necessario consentire le operazioni di gestione per le risorse che contengono solo questo tag.

Distribuire la funzionalità

La distribuzione viene avviata dall'organizzazione GitHub Avvio/Arresto di macchine virtuali v2. Sebbene questa funzionalità sia destinata a gestire tutte le macchine virtuali nella sottoscrizione in tutti i gruppi di risorse da una singola distribuzione all'interno della sottoscrizione, è possibile installarla in base al modello operativo o ai requisiti dell'organizzazione. Può anche essere configurata per gestire centralmente le macchine virtuali tra più sottoscrizioni.

Per semplificarne la gestione e la rimozione, è consigliabile distribuire Avvio/arresto delle macchine virtuali v2 in un gruppo di risorse dedicato.

Nota

Attualmente questa soluzione non supporta la specifica di un account di archiviazione o di una risorsa di Application Insights esistente.

Nota

Il formato di denominazione per l'app per le funzioni e l'account di archiviazione è stato modificato. Per garantire l'univocità globale, viene ora aggiunta una stringa casuale e univoca ai nomi di queste risorse.

  1. Aprire il browser e passare all'organizzazione GitHub Avvio/Arresto di macchine virtuali v2.

  2. Selezionare l'opzione di distribuzione in base all'ambiente cloud di Azure in cui vengono create le macchine virtuali di Azure.

  3. Se richiesto, accedere al portale di Azure.

  4. Scegliere il piano appropriato dalla casella di riepilogo a discesa. Quando si sceglie un piano con ridondanza della zona (Avvia/ArrestaV2-AZ), è necessario creare la distribuzione in una delle aree seguenti:

    • Australia orientale
    • Brasile meridionale
    • Canada centrale
    • Stati Uniti centrali
    • Stati Uniti orientali
    • Stati Uniti orientali 2
    • Francia centrale
    • Germania centro-occidentale
    • Giappone orientale
    • Europa settentrionale
    • Asia sud-orientale
    • Regno Unito meridionale
    • Europa occidentale
    • West US 2
    • Stati Uniti occidentali 3
  5. Selezionare Crea per aprire la pagina di distribuzione personalizzata di Azure Resource Manager nel portale di Azure.

  6. Immettere i valori seguenti:

    Nome Valore
    Paese Selezionare un'area nelle vicinanze per le nuove risorse.
    Nome gruppo di risorse Specificare il nome del gruppo di risorse che conterrà le singole risorse per Avvio/Arresto di macchine virtuali.
    Area del gruppo di risorse Specificare l'area per il gruppo di risorse. Ad esempio Stati Uniti centrali.
    Nome dell'app per le funzioni di Azure digitare un nome valido in un percorso URL. Il nome digitato viene convalidato per assicurarsi che sia univoco in Funzioni di Azure.
    Nome dell'istanza di Application Insights Specificare il nome dell'istanza di Application Insights che conterrà l'analisi per l’Avvio/Arresto di macchine virtuali.
    Area di Application Insights Specificare l'area per l'istanza di Application Insights.
    Nome account di archiviazione Specificare il nome dell'account di archiviazione di Azure per archiviare i dati di telemetria di avvio/arresto dell'esecuzione delle macchine virtuali.
    Indirizzo di posta elettronica Specificare uno o più indirizzi di posta elettronica per ricevere notifiche di stato, separate da una virgola (,).

    Avviare/arrestare la configurazione della distribuzione del modello di macchine virtuali

  7. Selezionare Rivedi e crea nella parte inferiore della pagina.

  8. Selezionare Crea per avviare la distribuzione.

  9. Selezionare l'icona a forma di campana delle notifiche nella parte superiore della schermata per visualizzare lo stato della distribuzione. Verrà visualizzato lo stato Distribuzione in corso. Attendere il completamento della distribuzione.

  10. Selezionare Vai al gruppo di risorse nel riquadro di notifica. Verrà visualizzata una schermata simile alla seguente:

    Avviare/arrestare l'elenco delle risorse di distribuzione del modello di macchine virtuali

Nota

Microsoft raccoglie i dati di telemetria delle operazioni e degli heartbeat per facilitare la risoluzione dei problemi se si raggiunge il team di supporto. È anche in corso la raccolta della cronologia degli eventi delle macchine virtuali per verificare quando il servizio ha agito su una macchina virtuale e per quanto tempo una macchina virtuale è stata snoozed per determinare l'efficacia del servizio.

Abilitare più sottoscrizioni

Al termine della distribuzione Avvio/Arresto, seguire questa procedura per abilitare Avvio/Arresto di macchine virtuali v2 per intervenire su più sottoscrizioni.

  1. Copiare il valore per il nome dell'app per le funzioni di Azure specificato durante la distribuzione.

  2. Nel portale di Azure passare alla sottoscrizione secondaria.

  3. Seleziona Controllo di accesso (IAM).

  4. Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.

  5. Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

    Impostazione Valore
    Ruolo Collaboratore
    Assegna accesso a Utente, gruppo o entità servizio
    Membri <Nome dell'app per le funzioni di Azure>

    Screenshot che mostra la pagina Aggiungi assegnazione di ruolo nel portale di Azure.

Panoramica della configurazione delle pianificazioni

Per gestire il metodo di automazione per controllare l'avvio e l'arresto delle macchine virtuali, configurare una o più delle app per la logica incluse in base ai requisiti.

  • Pianificato: le azioni di avvio e arresto si basano su una pianificazione specificata in Base a Azure Resource Manager e alle macchine virtuali classiche. ststv2_vms_Scheduled_start e ststv2_vms_Scheduled_stop configurano l'avvio e l'arresto pianificati.

  • Sequenziata: le azioni di avvio e arresto si basano su una pianificazione destinata alle macchine virtuali con tag di sequenziazione predefiniti. Sono supportati solo due tag denominati: sequencestart e sequencestop. ststv2_vms_Sequenced_start e ststv2_vms_Sequenced_stop configurano l'avvio e l'arresto sequenziati.

    Nota

    Questo scenario supporta solo le macchine virtuali di Azure Resource Manager.

  • AutoStop: questa funzionalità viene usata solo per eseguire un'azione di arresto sia su Azure Resource Manager che sulle macchine virtuali classiche in base all'utilizzo della CPU. Può anche essere un interventopianificato, che crea avvisi sulle macchine virtuali e in base alla condizione. L'avviso viene attivato per eseguire l'azione di arresto.ststv2_vms_AutoStop configura la funzionalità di arresto automatico.

Se sono necessarie pianificazioni aggiuntive, è possibile duplicare una delle app per la logica fornite usando l'opzione Clona nel portale di Azure.

Scenario di avvio e arresto pianificato

Seguire questa procedura per configurare l'azione di avvio e arresto pianificata per Azure Resource Manager e le macchine virtuali classiche. Ad esempio, è possibile configurare la pianificazione ststv2_vms_Scheduled_start per avviarle al mattino quando si è in ufficio e arrestare tutte le macchine virtuali in un abbonamento quando si lascia il lavoro di sera in base alla pianificazione ststv2_vms_Scheduled_stop.

La configurazione dell'app per la logica per avviare le macchine virtuali è supportata.

Per ogni scenario, è possibile impostare come destinazione l'azione su una o più sottoscrizioni, singoli o più gruppi di risorse e specificare una o più macchine virtuali in un elenco di inclusione o esclusione. Non è possibile specificarli insieme nella stessa app per la logica.

  1. Accedere al portale di Azure e quindi passare ad app per la logica.

  2. Nell'elenco di app per la logica selezionare ststv2_vms_Scheduled_start per configurare l'avvio pianificato. Per configurare l'arresto pianificato, selezionare ststv2_vms_Scheduled_stop.

  3. Selezionare Progettazione app per la logica nel riquadro a sinistra.

  4. Dopo aver visualizzato Progettazione app per la logica, nel riquadro di progettazione selezionare Ricorrenza per configurare la pianificazione dell'app per la logica. Per informazioni sulle opzioni di ricorrenza specifiche, vedere Pianificare un'attività ricorrente.

    Configurare la frequenza di ricorrenza per l'app per la logica

    Nota

    Se non si specifica una data e un'ora di inizio per la prima ricorrenza, verrà eseguita immediatamente una ricorrenza quando si salva l'app per la logica, che potrebbe causare l'avvio o l'arresto delle macchine virtuali prima dell'esecuzione pianificata.

  5. Nel riquadro della finestra di progettazione selezionare Function-Try per configurare le impostazioni di destinazione. Nel corpo della richiesta, se si desidera gestire le macchine virtuali in tutti i gruppi di risorse nella sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente.

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

    Specificare più sottoscrizioni nella matrice subscriptions con ogni valore separato da una virgola come nell'esempio seguente.

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

    Nel corpo della richiesta, se si desidera gestire le macchine virtuali per gruppi di risorse specifici, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare un gruppo di risorse o più.

    Questo esempio illustra anche l'esclusione di una macchina virtuale. È possibile escludere la macchina virtuale specificando il percorso della risorsa delle macchine virtuali o il carattere jolly.

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

    In questo caso l'azione verrà eseguita in tutte le macchine virtuali, ad eccezione della macchina virtuale; il nome inizia con Az e Bz in entrambe le sottoscrizioni.

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

    Nel corpo della richiesta, se si vuole gestire un set specifico di macchine virtuali all'interno della sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare una macchina virtuale.

    {
      "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. Nel riquadro di panoramica per l'app per la logica selezionare Abilita.

Scenario di avvio e arresto sequenziati

In un ambiente che include due o più componenti su più macchine virtuali di Azure Resource Manager in un'architettura applicativa distribuita, è importante supportare la sequenza di avvio e arresto dei componenti. Assicurarsi di aver applicato i tag sequencestart e sequencestop alle macchine virtuali di destinazione, come descritto nella pagina Panoramica prima di configurare questo scenario.

  1. Nell'elenco delle app per la logica selezionare ststv2_vms_Sequenced_start per configurare l'avvio sequenziato. Per configurare l'arresto sequenziato, selezionare ststv2_vms_Sequenced_stop.

  2. Selezionare Progettazione app per la logica nel riquadro a sinistra.

  3. Dopo aver visualizzato Progettazione app per la logica, nel riquadro di progettazione selezionare Ricorrenza per configurare la pianificazione dell'app per la logica. Per informazioni sulle opzioni di ricorrenza specifiche, vedere Pianificare un'attività ricorrente.

    Configurare la frequenza di ricorrenza per l'app per la logica

    Nota

    Se non si specifica una data e un'ora di inizio per la prima ricorrenza, verrà eseguita immediatamente una ricorrenza quando si salva l'app per la logica, che potrebbe causare l'avvio o l'arresto delle macchine virtuali prima dell'esecuzione pianificata.

  4. Nel riquadro della finestra di progettazione selezionare Function-Try per configurare le impostazioni di destinazione e quindi selezionare il pulsante < /> Visualizzazione codice nel menu in alto per modificare il codice per l'elemento Function-Try. Nel corpo della richiesta, se si desidera gestire le macchine virtuali in tutti i gruppi di risorse nella sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente.

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

    Specificare più sottoscrizioni nella matrice subscriptions con ogni valore separato da una virgola come nell'esempio seguente.

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

    Nel corpo della richiesta, se si desidera gestire le macchine virtuali per gruppi di risorse specifici, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare un gruppo di risorse.

    Questo esempio illustra anche l'esclusione di una macchina virtuale in base al percorso della risorsa rispetto all'esempio per l'avvio/arresto pianificato, che usava caratteri jolly.

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

    Nel corpo della richiesta, se si vuole gestire un set specifico di macchine virtuali all'interno di una sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare una macchina virtuale.

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

Scenario di arresto automatico

Avvio/Arresto di macchine virtuali v2 può contribuire a gestire il costo dell'esecuzione di macchine virtuali Azure Resource Manager e classiche nella sottoscrizione, valutando le macchine che non vengono usate durante i periodi non di punta, ad esempio dopo l'orario di lavoro, e arrestandole automaticamente se l'utilizzo del processore è inferiore a una percentuale specificata.

Le proprietà di avviso delle metriche seguenti nel corpo della richiesta supportano la personalizzazione:

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

Per altre informazioni sul funzionamento degli avvisi delle metriche di Monitoraggio di Azure e su come configurarli, vedere Avvisi delle metriche in Monitoraggio di Azure.

  1. Nell'elenco delle app per la logica selezionare ststv2_vms_AutoStop per configurare l'arresto automatico.

  2. Selezionare Progettazione app per la logica nel riquadro a sinistra.

  3. Dopo aver visualizzato Progettazione app per la logica, nel riquadro di progettazione selezionare Ricorrenza per configurare la pianificazione dell'app per la logica. Per informazioni sulle opzioni di ricorrenza specifiche, vedere Pianificare un'attività ricorrente.

    Configurare la frequenza di ricorrenza per l'app per la logica

  4. Nel riquadro della finestra di progettazione selezionare Function-Try per configurare le impostazioni di destinazione. Nel corpo della richiesta, se si desidera gestire le macchine virtuali in tutti i gruppi di risorse nella sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente.

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

    Nel corpo della richiesta, se si desidera gestire le macchine virtuali per gruppi di risorse specifici, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare un gruppo di risorse.

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

    Nel corpo della richiesta, se si vuole gestire un set specifico di macchine virtuali all'interno della sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare una macchina virtuale.

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

Tag della macchina virtuale

È anche possibile includere o escludere macchine virtuali specifiche dall'avvio e arrestare le azioni in base ai tag delle impostazioni nelle macchine virtuali stesse. Per aggiungere un tag, passare alla macchina virtuale specifica, selezionare Tag dal menu a sinistra e aggiungere un tag denominato ssv2excludevm. Per escludere questa macchina virtuale dall'azione di avvio o arresto, impostare il valore di questo nuovo tag su true. Per includere la macchina virtuale nell'azione, impostare il valore su false. In questo modo è possibile escludere macchine virtuali specifiche senza dover eseguire l'aggiornamento di ExcludedVMLists nella configurazione del payload.

Passaggi successivi

Per informazioni su come monitorare lo stato delle macchine virtuali di Azure gestite dalla funzionalità Avvio/Arresto di macchine virtuali v2 ed eseguire altre attività di gestione, vedere l'articolo Gestire l’avvio/arresto delle macchine virtuali.