Configura l'immagine VM per il deployment di Terraform

Questo articolo descrive come completare la configurazione e inviare l'immagine VM per il deployment utilizzando Terraform.

Determina come creare il pacchetto di deployment

Ti consigliamo di utilizzare l'opzione di configurazione guidata del Producer Portal per creare il pacchetto di deployment direttamente nella console Google Cloud.

L'opzione di configurazione guidata supporta prodotti VM semplici, ad esempio i deployment con una sola VM con regole firewall di base, ma non supporta alcune funzionalità complesse, ad esempio i deployment con più VM e risorse non di calcolo. Se hai bisogno di funzionalità non supportate dalla configurazione guidata, puoi utilizzare l'opzione di configurazione manuale per creare il pacchetto di deployment o personalizzare un pacchetto esistente aggiungendo funzionalità aggiuntive.

Passare dalla configurazione guidata a quella manuale e viceversa

Se utilizzi l'opzione di configurazione guidata di Producer Portal e in un secondo momento vuoi passare alla configurazione manuale del pacchetto di deployment, fai clic su Vai alla configurazione manuale.

Completare la configurazione guidata

Per completare la configurazione e inviare un semplice pacchetto di deployment utilizzando la console Google Cloud, completa i seguenti passaggi:

  1. In Producer Portal, vai alla sezione Pacchetto di deployment.

  2. In Configurazione Terraform, accanto al campo di immissione etichettato Bucket Cloud Storage, fai clic su Sfoglia.

    Se hai già creato un bucket Cloud Storage, selezionalo qui.

    Se non hai un bucket Cloud Storage, fai clic sull'icona Crea nuovo bucket. Quando crei un nuovo bucket:

    • Seleziona un nome per il bucket.

    • Specifica la regione o le regioni in cui il bucket archivia i dati.

    • Specifica la classe di archiviazione per i tuoi dati.

    • Determina il livello di granularità da applicare alle autorizzazioni IAM (Identity and Access Management) per i dati del bucket.

    • Configura le impostazioni avanzate facoltative, ad esempio la crittografia o i criteri di conservazione dei dati.

  3. Assicurati di abilitare il controllo delle versioni degli oggetti per il tuo bucket Cloud Storage.

  4. Per salvare le impostazioni del bucket e continuare a configurare il pacchetto di deployment, fai clic su Configura.

  5. In Scegli il tipo di macchina, devi specificare una Zona predefinita, un Tipo di macchina minimo e un Tipo di macchina predefinito per il prodotto VM, nonché le dimensioni e il tipo del relativo disco di avvio.

  6. In Specifica il sistema operativo, devi specificare il nome e la versione del sistema operativo utilizzato dall'immagine della VM, nonché il numero di versione dell'immagine della VM.

  7. Facoltativamente, in Configura l'accesso alla VM, puoi specificare gli URL del sito e dell'amministratore, insieme a un nome utente e una password, che gli utenti possono utilizzare per accedere alla VM dopo il deployment.

  8. Se vuoi, in Configura la rete puoi specificare le impostazioni per il forwarding IP e configurare le regole del firewall.

  9. Se vuoi, in Definire i passaggi successivi puoi fornire istruzioni per aiutare gli utenti del tuo prodotto a iniziare a utilizzarlo. Queste istruzioni saranno visibili dopo il deployment del prodotto.

  10. Dopo aver completato i passaggi precedenti, fai clic su Genera per creare il pacchetto di deployment.

    Se in un secondo momento dovrai apportare ulteriori modifiche al pacchetto di deployment, puoi fare clic su Modifica per apportare le modifiche e poi su Genera per rigenerare il pacchetto di deployment con le modifiche applicate.

  11. Convalida il pacchetto di deployment in Producer Portal.

  12. Una volta completata la convalida del pacchetto di deployment da parte di Cloud Marketplace, fai clic su Pubblica per iniziare a testarlo.

Completa la configurazione manuale

Questa sezione spiega come utilizzare l'opzione di configurazione manuale per creare un pacchetto di deployment e inviarlo per la revisione.

Specifica se utilizzare il modulo Terraform predefinito o uno personalizzato

Puoi scegliere se vuoi che i clienti utilizzino il modulo Terraform predefinito o uno personalizzato quando eseguono il deployment del tuo prodotto.

Se scegli di utilizzare il modulo Terraform predefinito, Google Cloud fornisce ai tuoi clienti il codice Terraform generato automaticamente che possono utilizzare per eseguire il deployment del tuo prodotto.

Se scegli di utilizzare un modulo Terraform personalizzato, devi fornire i tuoi modelli Terraform al cliente. Puoi scegliere di fornire questi modelli in un formato che i clienti possono implementare utilizzando l'interfaccia a riga di comando (CLI), o con metadati aggiuntivi che consentono ai clienti di implementare i moduli direttamente da Cloud Marketplace.

Per specificare se i clienti devono utilizzare il modulo Terraform predefinito o uno personalizzato e, per i moduli Terraform personalizzati, come vuoi che i clienti eseguino il deployment del modulo, completa i seguenti passaggi:

  1. In Producer Portal, vai alla sezione Pacchetto di deployment.

  2. In Configurazione Terraform, in Tipo, seleziona Predefinito, Personalizzato (deployment CLI) o Personalizzato (deployment UI).

Requisiti per i moduli Terraform personalizzati

Se scegli di utilizzare moduli Terraform personalizzati, il modulo personalizzato deve soddisfare i seguenti requisiti:

  • Il tuo modulo personalizzato deve avere un modulo che Cloud Marketplace può utilizzare per verificare che soddisfi i requisiti. Per ulteriori informazioni, consulta Verificare che il modulo superi la verifica.

  • Il modulo deve avere una variabile denominata project_id, che memorizza l'ID progetto utilizzato dai clienti per eseguire il deployment del modulo.

  • Devi specificare i riferimenti ai nomi delle immagini come variabili Terraform, con il formatoprojects/PROJECT_NAME/global/images/IMAGE_NAME. Il valore di default deve essere impostato sul nome dell'immagine VM, in modo che la copia dell'immagine di proprietà di Cloud Marketplace possa essere sostituita nel modulo quando il prodotto VM viene pubblicato.

  • Il modulo non deve dipendere da moduli esterni non pacchettizzati con esso.

  • Il modulo deve utilizzare solo i seguenti fornitori approvati:

    • archive
    • cloud-init
    • dns
    • google
    • google-beta
    • http
    • null
    • random
    • time
    • tls

Per un esempio di modulo personalizzato conforme a questi requisiti, consulta il modulo Terraform personalizzato di esempio.

Requisiti aggiuntivi per i moduli Terraform personalizzati per il deployment dell'interfaccia utente

Se il modulo personalizzato supporta il deployment dell'interfaccia utente, deve soddisfare i seguenti requisiti aggiuntivi:

  • Il modulo deve contenere una variabile denominata goog_cm_deployment_name. Cloud Marketplace utilizza questa variabile per assegnare un nome ai deployment dei clienti nella pagina di deployment. Devi utilizzare questa variabile per evitare collisioni dei nomi delle risorse tra più implementazioni in un progetto. Per un esempio, consulta goog_cm_deployment_name nel modulo Terraform personalizzato di esempio.

  • Nel file metadata.display.yaml, devi specificare ET_GCE_DISK_IMAGE come tipo xGoogleProperty per tutte le variabili immagine. Per un esempio, consulta metadata.display.yaml nel modulo Terraform personalizzato di esempio.

  • Se il tuo prodotto contiene immagini multi-VM o immagini che supportano più architetture CPU, devi aggiungere enumValueLabels in modo che i clienti possano selezionare l'immagine VM che vogliono utilizzare. Per un esempio, consulta il modulo Terraform personalizzato di esempio.

  • Il modulo non deve dipendere dal supporto per i provisioner Terraform.

Passaggi aggiuntivi per i moduli Terraform personalizzati

Se hai selezionato l'utilizzo di moduli Terraform personalizzati, devi completare i seguenti passaggi aggiuntivi per configurare l'immagine VM per il deployment:

  1. In Producer Portal, vai alla sezione Pacchetto di deployment.

  2. In Configurazione Terraform, fai clic su Variabili immagine in Variabili immagine.

    Per abilitare il deployment di Terraform del tuo prodotto, devi aver attivato l'utilizzo delle immagini di proprietà del marketplace. Cloud Marketplace utilizza la variabile che aggiungi qui per sostituire la versione di proprietà del marketplace dell'immagine VM quando un cliente esegue il deployment del tuo prodotto.

  3. Nel campo di testo Variabile immagine, inserisci un nome per la variabile, ad esempio "immagine".

  4. Nel modulo Terraform personalizzato, imposta il valore predefinito della variabile che hai creato nel passaggio precedente sul nome dell'immagine VM per il tuo prodotto, nel formato projects/YOUR_PROJECT/global/images/YOUR_IMAGE.

  5. In Specifica la posizione dell'oggetto GCS, fai clic su Sfoglia.

    Se hai già creato un bucket Cloud Storage, selezionalo qui.

    Se non hai un bucket Cloud Storage, fai clic sull'icona Crea nuovo bucket. Quando crei un nuovo bucket:

    • Seleziona un nome per il bucket.

    • Specifica la regione o le regioni in cui il bucket archivia i dati.

    • Specifica la classe di archiviazione per i tuoi dati.

    • Determina il livello di granularità da applicare alle autorizzazioni IAM (Identity and Access Management) per i dati del bucket.

    • Configura le impostazioni avanzate facoltative, come la crittografia o i criteri di conservazione dei dati.

  6. Assicurati che il controllo delle versioni degli oggetti sia attivo per il bucket Cloud Storage.

  7. Per salvare le impostazioni del bucket e continuare a configurare il pacchetto di deployment, fai clic su Configura.

  8. In Ruoli richiesti, specifica i ruoli IAM che i tuoi clienti devono avere per eseguire il deployment del tuo prodotto.

(Solo deployment dell'interfaccia utente) Crea metadati per il tuo modulo Terraform personalizzato

Affinché il tuo modulo personalizzato supporti il deployment dell'interfaccia utente, devi creare e aggiungere i metadati utilizzati da Cloud Marketplace per analizzare correttamente il modulo e visualizzarlo nell'interfaccia utente per il cliente.

Per creare e aggiungere questi metadati, puoi utilizzare lo strumento CLI CFT open source. Per utilizzare CFT per creare e aggiungere metadati ai moduli personalizzati, completa i seguenti passaggi:

  1. Installa lo strumento CFT CLI. Per ulteriori informazioni, consulta la documentazione dell'interfaccia a riga di comando CFT. Ti consigliamo di specificare il valore VERSION come latest e di impostare PLATFORM su uno dei seguenti valori:

    • linux

    • windows

    • darwin

  2. Esegui questo comando:

     cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
    

    Nel comando precedente, il flag -p fornisce un percorso per il pacchetto Terraform, il flag -q genera metadati senza richiedere informazioni per un repository remoto, il flag -d genera il file metadata.display.yaml e il flag --nested=false genera metadati per il modulo principale, omettendo eventuali moduli nella cartella modules/.

Dopo aver completato i passaggi precedenti, lo strumento CFT CLI genera due nuovi file:metadata.yaml e metadata.display.yaml.

Personalizzare i metadati del modulo Terraform personalizzato

Cloud Marketplace utilizza il file metadata.display.yaml per personalizzare il modulo utilizzato dai clienti per eseguire il deployment del tuo prodotto tramite l'interfaccia utente. Se vuoi personalizzare questo modulo, dopo aver creato i metadati puoi modificare i valori dei campi in metadata.display.yaml. Per informazioni dettagliate sulle opzioni di personalizzazione disponibili, consulta la documentazione di BlueprintUI open source o consulta lo schema di BlueprintUI.

Ti consigliamo di utilizzare l'estensione GooglePropertyExtensions per modificare i metadati. GooglePropertyExtensions ti consente di utilizzare verifiche specifiche di Google Cloud, ad esempio l'applicazione della regola che consente ai clienti di selezionare solo le reti Virtual Private Cloud (VPC) esistenti nel loro progetto. Per un esempio, consulta il modulo Terraform personalizzato di esempio.

Convalidare i metadati del modulo personalizzato

Per convalidare i metadati del modulo personalizzato, esegui il seguente comando:

cft blueprint metadata -p TF_PACKAGE_PATH -v

Nel comando precedente, il flag -p fornisce un percorso per il pacchetto Terraform e il flag -v convalida tutti i file di metadati nel percorso fornito in base allo schema BlueprintMetadata.

Verificare che il modulo superi la verifica

Il modulo personalizzato supera la verifica se il seguente comando viene eseguito correttamente:

terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars

Nel comando precedente, marketplace_test.tfvars è un file di variabili Terraform utilizzato solo da Cloud Marketplace, esclusivamente per questa verifica del modulo. Se il modello dichiara variabili che non hanno un valore predefinito e non imposti un valore per queste variabili, il comando non viene eseguito correttamente. Per assicurarti che il comando venga eseguito correttamente, puoi creare un file marketplace_test.tfvars per impostare i valori per le variabili dichiarate dal tuo modello. Per un esempio di file marketplace_test.tfvars, consulta il modulo Terraform personalizzato di esempio.

(Facoltativo) (Solo per il deployment con l'interfaccia a riga di comando) Includi un modulo di test

Se il tuo modulo personalizzato supporta il deployment tramite CLI, puoi scegliere di includere una cartella denominata examples/marketplace_test. Ti consigliamo di farlo se il tuo prodotto deve includere un modulo di test separato per verificare le sue funzionalità. Se includi questa cartella, affinché il modulo superi la verifica, il seguente comando deve essere eseguito correttamente:

terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT

Convalida e testa il deployment

Dopo aver creato e configurato il pacchetto di deployment, devi convalidarlo e testarlo prima che il team di Cloud Marketplace possa esaminarlo e approvarlo.

  1. In Producer Portal, vai alla sezione Pacchetto di deployment.

  2. Fai clic su Validate (Convalida). Il completamento della procedura di convalida può richiedere fino a due ore e puoi uscire dallo schermo durante l'esecuzione.

  3. Una volta completata la convalida, fai clic su Anteprima deployment per testare il deployment.

Passaggi successivi

Dopo aver convalidato e testato correttamente il deployment, puoi fare clic su Pubblica per inviare il prodotto complessivo per la revisione e la pubblicazione su Cloud Marketplace. Per maggiori dettagli, vedi Inviare il prodotto.