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
- Installa il componente beta
eseguendo il seguente comando:
gcloud components install beta
- Rivedi le nozioni di base su VM Extension Manager.
- Esamina le quote del gestore di estensioni VM.
- Abilita l'API Compute Engine nel tuo progetto Google Cloud se non è già abilitata.
- Assicurati che la VM esegua la versione dell'agente guest
20241209.01o successive. - Per visualizzare i log di debug degli eventi di VM Extension Manager, configura le impostazioni dei log per l'agente guest.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- Set a default region and zone.
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.createnecessaria per creare una policy di estensione.Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Per saperne di più sui ruoli e le autorizzazioni IAM in Compute Engine, consulta Ruoli e autorizzazioni di Compute Engine.
Priorità dei criteri e risoluzione dei conflitti
Quando più policy si applicano alla stessa VM, VM Extension Manager utilizza la priorità delle policy per risolvere i conflitti.
Quando due criteri sono in conflitto per la stessa estensione, ha la precedenza il criterio con priorità più alta. I valori di priorità vanno da 0 a 65535, dove un numero più basso indica una priorità più elevata. La priorità predefinita è 1000. Se più policy hanno la stessa priorità, VM Extension Manager applica alle VM la policy aggiornata più di recente. L'eliminazione di una policy non rimuove l'estensione se alla VM viene ancora applicata una policy con priorità inferiore.
Crea una policy di estensione VM globale
Puoi creare una policy di estensione VM globale per installare le estensioni sulle VM in più zone all'interno del progetto in base a un piano di implementazione. Una policy di estensione VM globale non viene applicata direttamente alle VM. Al contrario, man mano che la policy viene implementata, il gestore di estensioni VM crea policy in ogni zona in base al piano di implementazione. Questi criteri gestiscono quindi l'installazione delle estensioni sulle VM all'interno delle rispettive zone.
Puoi utilizzare gcloud o il metodo
globalVmExtensionPolicies.insertper creare policy di estensione globali.Informazioni sui piani di rollout
Le policy di estensione VM globali utilizzano piani di implementazione per gestire il deployment delle estensioni in diverse località. Puoi utilizzare uno dei piani di implementazione predefiniti o crearne uno personalizzato.
Piani di implementazione predefiniti
slow_rollout: Implementa la policy in cinque giorni. L'implementazione lenta è il piano di implementazione predefinito.fast_rollout: implementa immediatamente la policy in tutte le zone.
Piani di implementazione personalizzati
Puoi creare piani di implementazione personalizzati utilizzando il metodo
rolloutPlans.insert. Ad esempio, il seguente JSON definisce un piano di rollout denominatotest-rollout-planche ha come target due zone:{ "name": "test-rollout-plan", "waves": [ { "selectors": [ { "locationSelector": { "includedLocations": [ "us-central1-a", "us-west1-a" ] } } ], "validation": { "type": "time", "timeBasedValidationMetadata": { "waitDuration": "0s" } }, "orchestrationOptions": { "maxConcurrentResourcesPerLocation": "10", "maxConcurrentLocations": "10" } } ] }
Puoi quindi utilizzare questo piano di implementazione personalizzato quando crei una policy globale, come mostrato nell'esempio 2.
Crea una policy globale
Utilizza il comando
gcloud beta compute global-vm-extension-policies createper creare una policy di estensione VM globale:gcloud beta compute global-vm-extension-policies create POLICY_NAME
--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
--rollout-predefined-plan=ROLLOUT_PLAN
--rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIORSostituisci quanto segue:
POLICY_NAME: un nome per la policy di estensione VM.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-agentgoogle-cloud-sap-extensiongoogle-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 l'estensione. Questo file si trova sulla VM in cui esegui il comandogcloud, non sulla VM in cui installi l'estensione.In alternativa, per fornire la configurazione come stringa incorporata, utilizza il flag
--configanziché--config-from-file, ad esempioEXTENSION_NAME_1="CONFIG_1". Puoi utilizzare--config-from-fileo--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-labelspiù 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 del progetto in tutte le zone.PRIORITY: un numero intero che definisce la priorità della policy. I numeri più grandi indicano una priorità più alta. Il valore predefinito è 0. Se più policy hanno la stessa priorità, viene applicata alle VM la policy aggiornata più di recente.ROLLOUT_PLAN: specificaslow_rolloutofast_rollout. Se devi utilizzare un piano di implementazione personalizzato, utilizza il flag--rollout-custom-plananziché--rollout-predefined-plane specifica il nome del piano, ad esempio:--rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAMESostituisci quanto segue:
PROJECT_NUMBER: Il progetto in cui è definito il piano di implementazione.ROLLOUT_PLAN_NAME: il nome del piano di implementazione personalizzato che hai definito. Se non viene specificato alcun flag del piano di implementazione, viene utilizzatoslow_rollout.
ROLLOUT_CONFLICT_BEHAVIOR: specifica il comportamento quando viene rilevato un conflitto tra una norma zonale e una globale. I valori possibili sono:""(stringa vuota): viene utilizzato il valore del criterio zonale.overwrite: La policy globale sovrascrive la policy di zona.Per maggiori dettagli, vedi il flag
--rollout-conflict-behavior.
Esempio 1
Il seguente comando crea una policy denominata
global-test-extension-policyche installa l'estensioneops-agentper il progettotest-project. Il flag--config-from-filespecifica il percorso di un file locale contenente una configurazione YAML per l'Ops Agent e--rollout-predefined-planspecifica il pianoslow_rollout.gcloud beta compute global-vm-extension-policies create global-test-extension-policy \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --rollout-predefined-plan=slow_rollout
Esempio 2
Il seguente comando crea una policy denominata
global-test-extension-policy-2che installa l'estensioneops-agentper il progettotest-projectsulle VM con l'etichettaenv=prod. La priorità della policy è impostata su500e il flag--config-from-filespecifica il percorso di un file locale contenente una configurazione YAML per l'Ops Agent. Il flag--rollout-custom-planspecifica un piano di rollout personalizzato.gcloud beta compute global-vm-extension-policies create global-test-extension-policy-2 \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod \ --rollout-custom-plan=projects/12345678/locations/global/rolloutPlans/test-rollout-plan
Crea una policy di estensione VM zonale
Per creare una policy di estensione VM a livello di zona, utilizza uno dei seguenti metodi. Questa policy di zona definisce quali estensioni installare e su quali VM in una zona specifica.
Console
- Nella console Google Cloud , vai alla pagina Policy delle estensioni VM.
- Fai clic su Crea policy di estensione.
- Nel campo Nome, inserisci un nome per la policy.
- (Facoltativo) Nel campo Descrizione, inserisci una descrizione della policy.
- 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.
- Nell'elenco Zona, seleziona la zona in cui vuoi applicare questa policy.
- Nella sezione Estensioni, fai clic su Aggiungi estensione e procedi nel seguente modo per ogni estensione che vuoi installare sulle VM di destinazione:
- Seleziona un'estensione dall'elenco Estensione. Vedi Estensioni supportate.
- 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.0o successive. - Per Extension for SAP ed Extension for Compute, lascia vuoto il campo per selezionare l'ultima versione.
- Per Ops Agent, puoi specificare la versione
- (Facoltativo) Nel campo Contenuto del file di configurazione, inserisci i parametri di configurazione per l'estensione.
- 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.
- Fai clic su Crea.
gcloud
Per creare una policy di estensione VM zonale 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-agentgoogle-cloud-sap-extensiongoogle-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 comandogcloud, non sulla VM in cui installi l'estensione.In alternativa, per fornire la configurazione come stringa incorporata, utilizza il flag
--configanziché--config-from-file, ad esempioEXTENSION_NAME_1="CONFIG_1". Puoi utilizzare--config-from-fileo--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-labelspiù 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à del criterio. 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-policyche installa l'estensioneops-agentnella zonaus-central1-fper il progettotest-project. Il flag--config-from-filespecifica il percorso di un file locale contenente una configurazione YAML per l'Ops Agents.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-2che installa l'estensioneops-agentnella zonaus-central1-fper il progettotest-projectsulle VM con l'etichettaenv=prod. La priorità della policy è impostata su500e il flag--config-from-filespecifica il percorso di un file locale contenente una configurazione YAML per l'Ops Agent.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
- Scopri come gestire le estensioni VM.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2026-01-24 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2026-01-24 UTC."],[],[]] -