Installare le estensioni VM creando policy di estensione

Questo documento descrive come creare policy di estensione VM, che consentono di installare e gestire automaticamente le estensioni su un parco macchine virtuali (VM) Compute Engine. Definendo una policy, puoi assicurarti che estensioni specifiche vengano installate e gestite su tutte le VM che corrispondono ai criteri specificati, ad esempio le etichette VM.

Prima di iniziare

Ruoli IAM richiesti

Per ottenere l'autorizzazione necessaria per creare una policy di estensione, chiedi all'amministratore di concederti il ruolo IAM VM Extension Policy Admin (roles/compute.vmExtensionPolicyAdmin). Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione compute.vmExtensionPolicies.create necessaria per creare una policy di estensione.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Per ulteriori informazioni sui ruoli e le autorizzazioni IAM in Compute Engine, consulta Ruoli e autorizzazioni di Compute Engine.

Crea una policy di estensione VM

Per creare una policy di estensione VM, utilizza uno dei seguenti metodi. Questo criterio definisce quali estensioni installare e su quali VM.

Console

  1. Nella console Google Cloud , vai alla pagina Policy delle estensioni VM.

    Vai a Policy di estensione VM

  2. Fai clic su Crea policy di estensione.
  3. Nel campo Nome, inserisci un nome per la policy.
  4. (Facoltativo) Nel campo Descrizione, inserisci una descrizione della policy.
  5. Nel campo Priority (Priorità), specifica un numero di priorità per risolvere i conflitti tra le policy. I numeri più bassi indicano una priorità più alta. Il valore predefinito è 1000.
  6. Nell'elenco Zona, seleziona la zona in cui vuoi applicare questa policy.
  7. Nella sezione Estensioni, fai clic su Aggiungi estensione e procedi nel seguente modo per ogni estensione che vuoi installare sulle VM di destinazione:
    1. Seleziona un'estensione dall'elenco Estensione. Vedi Estensioni supportate.
    2. Nell'elenco Versione, specifica il numero di versione dell'estensione. Lascia vuoto per selezionare l'ultima versione.
      • Per Ops Agent, puoi specificare la versione 2.58.0 o successive.
      • Per Extension for SAP ed Extension for Compute, lascia vuoto il campo per selezionare l'ultima versione.
    3. (Facoltativo) Nel campo Contenuto del file di configurazione, inserisci i parametri di configurazione per l'estensione.
  8. Nella sezione Istanze VM di destinazione, seleziona le VM per la policy. Per selezionare le VM con etichette specifiche, fai clic su Aggiungi etichette e aggiungi la coppia chiave-valore.
  9. Fai clic su Crea.

gcloud

Per creare una policy di estensione VM e implementarla nelle VM in una zona specifica, utilizza il comando gcloud beta compute zone-vm-extension-policies create:

gcloud beta compute zone-vm-extension-policies create POLICY_NAME \
    --zone=ZONE \
    --description="DESCRIPTION" \
    --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
    --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \
    --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \
    --inclusion-labels=KEY_1=VALUE_1 \
    --priority=PRIORITY

Sostituisci quanto segue:

  • POLICY_NAME: un nome per la policy di estensione VM.
  • ZONE: la zona in cui si applica questa policy.
  • DESCRIPTION: una descrizione facoltativa della policy.
  • EXTENSION_NAME_1,EXTENSION_NAME_2: un elenco separato da virgole di estensioni da aggiungere al criterio. Devi specificare almeno un'estensione. I valori validi per le estensioni sono:
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: un elenco separato da virgole di coppie chiave-valore in cui la chiave è il nome dell'estensione e il valore è la versione dell'estensione. Se non specifichi una versione per un'estensione, VM Extension Manager utilizza l'ultima versione disponibile e la aggiorna automaticamente quando diventano disponibili nuove versioni.

  • EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: un elenco separato da virgole di coppie chiave-valore in cui la chiave è il nome dell'estensione e il valore è il percorso del file di configurazione per quell'estensione. Questo percorso si trova sulla VM in cui esegui il comando gcloud, non sulla VM in cui installi l'estensione.

    In alternativa, per fornire la configurazione come stringa incorporata, utilizza il flag --config anziché --config-from-file, ad esempio EXTENSION_NAME_1="CONFIG_1". Puoi utilizzare --config-from-file o --config, ma non entrambi nello stesso comando.

  • KEY_1=VALUE_1: un elenco separato da virgole di coppie chiave-valore che definiscono le etichette di inclusione per un selettore. Le VM devono avere tutte le etichette specificate in un selettore per essere prese di mira. Se specifichi --inclusion-labels più volte, la policy ha come target le VM che corrispondono a uno qualsiasi dei selettori forniti (operatore logico OR). Se ometti questo flag, la policy ha come target tutte le VM nella zona specificata.

  • PRIORITY: un numero intero compreso tra 0 e 65535 che definisce la priorità della policy. I numeri più bassi indicano una priorità più alta. Il valore predefinito è 1000.

    Il comando non va a buon fine se esiste già una norma con il nome specificato nella zona.

Esempio 1

Il seguente comando crea una policy denominata test-extension-policy che installa l'estensione ops-agent nella zona us-central1-f per il progetto test-project. Il flag --config-from-file specifica il percorso di un file locale contenente una configurazione YAML per l'agente Ops.

gcloud beta compute zone-vm-extension-policies create test-extension-policy  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml"

Esempio 2

Il seguente comando crea una policy denominata test-extension-policy-2 che installa l'estensione ops-agent nella zona us-central1-f per il progetto test-project sulle VM con l'etichetta env=prod. La priorità della policy è impostata su 500 e il flag --config-from-file specifica il percorso di un file locale contenente una configurazione YAML per l'agente Ops.

 gcloud beta compute zone-vm-extension-policies create test-extension-policy-2  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
    --priority=500 \
    --inclusion-labels=env=prod

Passaggi successivi