Creazione di una configurazione Terraform
Quando curi le soluzioni del catalogo dei servizi per la tua organizzazione, puoi creare una configurazione Terraform o un config, che gli utenti distribuiscono utilizzando Terraform. Dopo aver creato la configurazione, puoi condividerla con gli utenti assegnandola ai cataloghi.
In questa guida utilizzi Cloud Build per eseguire i comandi Terraform nell'ultima versione dell'immagine Docker di Terraform e utilizzi Cloud Storage per archiviare e gestire le risorse Terraform, come moduli e file di stato.
Per risorse e indicazioni sull'utilizzo di Terraform, consulta Utilizzo di Terraform con Google Cloud.
Prima di iniziare
Devi disporre dei seguenti ruoli IAM (Identity and Access Management):
- Amministratore catalogo O Gestore catalogo per l'organizzazione Google Cloud associata al progetto Google Cloud in cui è abilitato il catalogo dei servizi. Se non disponi di questo ruolo, contatta l'amministratore dell'organizzazione per richiedere l'accesso.
- Amministratore archiviazione per il progetto Google Cloud in cui vuoi creare la soluzione. Se la configurazione Terraform si trova in un progetto diverso, devi disporre anche del ruolo Amministratore archiviazione per il progetto che contiene la configurazione Terraform.
- Editor build Cloud per il progetto Google Cloud in cui vuoi creare la soluzione.
Se prevedi di utilizzare il tuo account di servizio, devi disporre anche del ruolo Utente service account per il progetto Google Cloud che contiene iaccount di serviziont che intendi utilizzare.
Se non disponi di questi ruoli, contatta l'amministratore dell'organizzazione per richiedere l'accesso.
Se prevedi di utilizzare il tuo account di servizio, quest'ultimo deve disporre dei seguenti ruoli IAM:
- Amministratore archiviazione per il progetto Google Cloud in cui vuoi creare la soluzione. Se la configurazione Terraform si trova in un progetto diverso, il account di servizio deve avere anche il ruolo Visualizzatore oggetti Storage per il progetto contenente la configurazione Terraform.
- Logs Writer per il progettoGoogle Cloud in cui vuoi creare la soluzione.
Se non disponi di questi ruoli, contatta l'amministratore dell'organizzazione per richiedere l'accesso.
Configura Cloud Build nel progetto in cui stai creando la configurazione:
-
Abilita l'API Cloud Build.
L'attivazione dell'API crea automaticamente un account di servizio Cloud Build che utilizzerai nel passaggio successivo.Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli. - Vai alla pagina Cloud Build.
- Nel riquadro a sinistra, seleziona Impostazioni.
- Utilizza il account di servizio fornito nella sezione Email del service account.
- Se non utilizzi il tuo account di servizio, concedi i seguenti ruoli IAM al account di servizio. Per i passaggi per concedere
i ruoli, consulta
Configurazione dell'accesso per l'account di servizio Cloud Build.
- Project Editor
(
roles/editor) - Storage Admin
(
roles/storage.admin)
- Project Editor
(
-
Caricamento dei file di configurazione su Cloud Storage
Utilizzi Cloud Storage per gestire i file di configurazione Terraform per il catalogo dei servizi.
Creazione di un bucket Cloud Storage
Per configurare Cloud Storage, crea un bucket nello stesso progetto in cui hai attivato il catalogo dei servizi per la tua organizzazione:
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
- Fai clic su Crea.
- Nella pagina Crea un bucket, inserisci le informazioni del bucket. Per andare al passaggio
successivo, fai clic su Continua.
-
Nella sezione Inizia, segui questi passaggi:
- Inserisci un nome univoco globale che soddisfi i requisiti per la denominazione dei bucket.
- Per aggiungere un'etichetta bucket, espandi la sezione Etichette (), fai clic su add_box
Aggiungi etichetta e specifica un
keye unvalueper l'etichetta.
-
Nella sezione Scegli dove archiviare i tuoi dati, segui questi passaggi:
- Seleziona un Tipo di località.
- Scegli una posizione in cui i dati del bucket vengono archiviati in modo permanente dal menu a discesa Tipo di località.
- Se selezioni il tipo di località a doppia regione, puoi anche scegliere di attivare la replica turbo utilizzando la casella di controllo pertinente.
- Per configurare la replica tra bucket, seleziona
Aggiungi una replica tra bucket mediante Storage Transfer Service e
segui questi passaggi:
Configura la replica tra bucket
- Nel menu Bucket, seleziona un bucket.
Nella sezione Impostazioni di replica, fai clic su Configura per configurare le impostazioni per il job di replica.
Viene visualizzato il riquadro Configura replica tra bucket.
- Per filtrare gli oggetti da replicare in base al prefisso del nome dell'oggetto, inserisci un prefisso da cui includere o escludere gli oggetti, quindi fai clic su Aggiungi un prefisso.
- Per impostare una classe di archiviazione per gli oggetti replicati, seleziona una classe di archiviazione dal menu Classe di archiviazione. Se salti questo passaggio, gli oggetti replicati utilizzeranno per impostazione predefinita la classe di archiviazione del bucket di destinazione.
- Fai clic su Fine.
-
Nella sezione Scegli come archiviare i tuoi dati, segui questi passaggi:
- Seleziona una classe di archiviazione predefinita per il bucket o Autoclass per la gestione automatica della classe di archiviazione dei dati del bucket.
- Per attivare lo spazio dei nomi gerarchico, nella sezione Ottimizza l'archiviazione per workload con uso intensivo dei dati, seleziona Abilita uno spazio dei nomi gerarchico in questo bucket.
- Nella sezione Scegli come controllare l'accesso agli oggetti, seleziona se il bucket applica o meno la prevenzione dell'accesso pubblico e seleziona un metodo di controllo dell'accesso per gli oggetti del bucket.
-
Nella sezione Scegli come proteggere i dati degli oggetti, segui questi passaggi:
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
- Per attivare l'eliminazione temporanea, fai clic sulla casella di controllo Criterio di eliminazione temporanea (per il recupero dei dati) e specifica il numero di giorni per cui vuoi conservare gli oggetti dopo l'eliminazione.
- Per impostare il controllo delle versioni degli oggetti, seleziona la casella di controllo Controllo delle versioni degli oggetti (per il controllo delle versioni) e specifica il numero massimo di versioni per oggetto e il numero di giorni dopo i quali scadono le versioni non correnti.
- Per abilitare il criterio di conservazione su oggetti e bucket, seleziona la casella di controllo Conservazione (per la conformità), quindi procedi nel seguente modo:
- Per attivare il blocco della conservazione degli oggetti, fai clic sulla casella di controllo Abilita conservazione degli oggetti.
- Per attivare Bucket Lock, fai clic sulla casella di controllo Imposta criterio di conservazione del bucket e scegli un'unità di tempo e una durata per il periodo di conservazione.
- Per scegliere come verranno criptati i dati degli oggetti, espandi la sezione Crittografia dei dati () e seleziona un metodo di crittografia dei dati.
- Seleziona una delle opzioni in Protezione dei dati che vuoi impostare per il bucket.
-
Nella sezione Inizia, segui questi passaggi:
- Fai clic su Crea.
Abilitazione del controllo delle versioni degli oggetti
Devi utilizzare il controllo delle versioni degli oggetti per il bucket per proteggere la configurazione Terraform dall'eliminazione o dalla sovrascrittura. Per abilitare il controllo delle versioni degli oggetti, consulta la documentazione di Cloud Storage sull'utilizzo del controllo delle versioni degli oggetti.
Concessione dell'accesso al bucket
Quando gli utenti della tua organizzazione eseguono il deployment della configurazione, il account di servizio Cloud Build deve disporre dell'accesso in lettura al tuo bucket. Se il bucket è archiviato nello stesso progetto Google Cloud in cui gli utenti eseguono il deployment della configurazione, allora il account di servizio dispone già di questo accesso.
Se gli utenti eseguono il deployment della configurazione in un progettoGoogle Cloud diverso, concedi l'accesso al bucket utilizzando uno dei seguenti metodi:
Concedi il ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer) ai service account Cloud Build dei tuoi utenti o a una risorsa Google Cloud in cui gli utenti distribuiscono le configurazioni Terraform, ad esempio un progetto, una cartella o un'organizzazione.Utilizza un elenco di controllo dell'accesso (ACL) per gestire l'accesso al bucket.
Per informazioni dettagliate sulla gestione dell'accesso ai bucket, consulta la panoramica del controllo dell'accesso di Cloud Storage.
Creazione e caricamento di un modulo Terraform
Dopo aver configurato il bucket Cloud Storage, devi creare e caricare un modulo Terraform, ovvero un contenitore di tutti i tuoi file di configurazione. Il catalogo dei servizi utilizza il modulo per generare automaticamente un file schema JSON per definire le variabili della configurazione.
Quando chiami moduli al di fuori della directory corrente, utilizza il percorso remoto anziché un percorso relativo. Ad esempio, invece di
source = "../../", utilizza source = "GoogleCloudPlatform/cloud-run/google".
Per i moduli dei casi d'uso comuni, vedi Moduli e progetti base Terraform per Google Cloud. Google Cloud
Il seguente esempio di codice mostra un file di configurazione Terraform, main.tf:
variable "machine_type" {
type = string
default = "n1-standard-1"
}
variable "zone" {
type = string
default = "us-central1-a"
}
variable "deployment_identifier" {
description = "The unique name for your instance"
type = string
}
resource "google_compute_instance" "default" {
name = "vm-${var.deployment_identifier}"
machine_type = var.machine_type
zone = var.zone
boot_disk {
device_name = "boot"
auto_delete = true
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral IP
}
}
}
Dopo aver creato il modulo, comprimi i file in un file ZIP. Assicurati che il modulo sia archiviato nella directory principale del file ZIP.
Per garantire l'archiviazione corretta del modulo quando comprimi i file Terraform, esegui il comando seguente:
none
zip solution.zip file1.tf file2.tf file3.tf
Quindi, carica il file ZIP nel bucket. Per i passaggi per caricare il file ZIP, consulta la documentazione di Cloud Storage su Caricamento di oggetti.
Creazione della configurazione in catalogo dei servizi
Dopo aver configurato un bucket Cloud Storage con il modulo Terraform, crea una soluzione catalogo dei servizi che includa il bucket.
Per creare la configurazione Terraform come soluzione di catalogo dei servizi:
Vai alla pagina Soluzioni di Service Catalog Admin nella console Google Cloud .
Vai alla pagina SoluzioniPer scegliere il progetto Google Cloud , fai clic su Seleziona.
Fai clic su Crea soluzione. Nell'elenco a discesa, seleziona Crea configurazione Terraform.
Inserisci un nome, una descrizione e uno slogan per la configurazione Terraform. Lo slogan è una breve descrizione di una soluzione che gli utenti vedono mentre sfogliano il catalogo dei servizi.
Nel campo Link alla configurazione Terraform, fornisci il link al bucket Cloud Storage che contiene il file ZIP per il modulo Terraform, ad esempio
gs://my-terraform-bucket/my-zip-file.zip.(Facoltativo) Carica un'icona per la soluzione. Le dimensioni consigliate per un'icona sono 80 x 80 pixel.
Se vuoi, inserisci un link per la raccolta fondi e i dati di contatto del creator.
(Facoltativo) Aggiungi un link alla documentazione della soluzione.
Seleziona la versione di Terraform che vuoi utilizzare per il deployment della soluzione.
(Facoltativo) Puoi fornire il tuo account di servizio facendo clic sulla casella di controllo accanto a Seleziona o inserisci il tuo service account. Se il tuo account di servizio si trova nello stesso progetto Google Cloud in cui stai creando la soluzione, seleziona Seleziona un account di servizio dal progetto attuale e seleziona il tuo account di servizio dal menu a discesa. Se il account di servizio si trova in un progetto Google Cloud diverso dalla tua soluzione, seleziona Inserisci l'email di un account di servizio da qualsiasi progetto e inserisci l'email del account di servizio.
Fai clic su CREA.
La soluzione viene creata e visualizzata nella pagina Soluzioni di amministrazione del catalogo dei servizi.
Il seguente screenshot mostra la creazione di una configurazione Terraform:
Passaggi successivi
- Assegna la configurazione Terraform a un catalogo, in modo che gli utenti della tua organizzazione possano accedere alla soluzione ed eseguirne il deployment.
- Aggiorna una soluzione con i dettagli di configurazione di Terraform più recenti.