Questa pagina descrive la procedura per configurare gli attivatori Cloud Build per automatizzare i deployment delle risorse di Google Cloud utilizzando i repository e Infrastructure Manager esistenti.
Una volta che Infra Manager si connette al tuo repository Git, le richieste pull invocano un'anteprima di un deployment e i commit invocano la creazione di un'anteprima del deployment o l'aggiornamento del deployment.
Prima di iniziare
- Assicurati che Infra Manager sia abilitato.
- Assicurati di disporre delle autorizzazioni IAM necessarie per creare i deployment:
roles/config.admin
- Assicurati di disporre di un account di servizio con le autorizzazioni necessarie. Per maggiori dettagli, consulta Configurare l'account di servizio.
- Identifica il repository Git esistente con la configurazione Terraform. Quando configuri l'automazione descritta in questa pagina, questa è la configurazione Terraform utilizzata da Infra Manager per aggiornare le risorse.
- (Consigliato) Configura la protezione dei rami per il tuo repository Git.
Automatizzare il deployment delle risorse Google Cloud
I passaggi riportati di seguito descrivono la configurazione necessaria per automatizzare l'anteprima e il deployment di una configurazione Terraform archiviata in un repository Git. Un deployment di una configurazione Terraform può essere una revisione di un deployment esistente. Le revisioni potrebbero eliminare o sostituire le risorse di Google Cloud di cui è stato eseguito il provisioning.
Al termine della configurazione, una richiesta di pull nel repository Git fa sì che Infra Manager crei un'anteprima del deployment. Quando una richiesta di pull viene unita, Infra Manager esegue automaticamente il deployment della configurazione Terraform.
Il modulo im_cloudbuild_workspace
crea diverse risorse, tra cui:
- Una connessione al repository Cloud Build.
- Un trigger di Cloud Build che viene invocato quando viene creata una richiesta di pull. Questo trigger fa sì che Infra Manager crei un deployment di anteprima utilizzando la configurazione Terraform nel repository.
- Un trigger Cloud Build che viene invocato quando una richiesta di pull viene unita al repository Git. Questo attivatore fa in modo che Infra Manager crei o aggiorni il deployment utilizzando la configurazione Terraform nel repository.
Per automatizzare i deployment delle configurazioni Terraform quando il repository viene aggiornato:
- Installa l'app GitHub Cloud Build nel tuo account GitHub o in un'organizzazione di tua proprietà.
Crea un token di accesso personale.
Assicurati di impostare il token in modo che non abbia una data di scadenza e seleziona le seguenti autorizzazioni quando ti viene richiesto in GitHub:
repo
eread:user
. Se la tua app è installata in un'organizzazione, assicurati di selezionare anche l'autorizzazioneread:org
.Dopo aver generato il token di accesso personale, salvalo in un luogo sicuro. Utilizza il token generato nei passaggi successivi.
Copia il modulo
im_cloudbuild_workspace
nel filemain.tf
all'interno del tuo repository Git:module "im-workspace" { source = "terraform-google-modules/bootstrap/google//modules/im_cloudbuild_workspace" version = "~> 7.0" project_id = PROJECT_ID deployment_id = DEPLOYMENT_ID im_deployment_repo_uri = GIT_REPO im_deployment_ref = REF github_app_installation_id = GIT_APP_ID github_personal_access_token = TOKEN }
Sostituisci:
- PROJECT_ID: l'ID progetto in cui viene eseguito Infrastructure Manager.
- DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate sulle limitazioni dell'identificatore di deployment, consulta Nome del deployment.
- GIT_REPO: l'URI del repository Git.
- REF: il riferimento Git della configurazione. Il riferimento è facoltativo. Se non specifichi il riferimento, viene utilizzato il ramo configurato predefinito del repository Git.
- GIT_APP_ID: l'ID installazione dell'app GitHub di Cloud Build utilizzata per gli attivatori delle richieste di pull e push.
- TOKEN: token di accesso personale per un repository GitHub. Se specificato, crea un secret in Secret Manager.
Crea un deployment (o aggiornane uno esistente) con il modulo
im_cloudbuild_workspace
:gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --git-source-repo=GIT_REPO \ --git-source-directory=DIRECTORY \ --git-source-ref=REF
Sostituisci:
- PROJECT_ID: l'ID progetto in cui viene eseguito Infrastructure Manager.
- LOCATION: la posizione in cui viene eseguito Infra Manager. Consulta Località di Infrastructure Manager per l'elenco delle località.
- DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate sulle limitazioni dell'identificatore di deployment, consulta Nome del deployment.
- SERVICE_ACCOUNT: il nome dell'account di servizio utilizzato per chiamare Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto dell'account di servizio. Spesso si tratta dello stesso progetto in cui viene eseguito Infrastructure Manager.
- GIT_REPO: il repository Git pubblico.
- DIRECTORY: la directory contenente la configurazione di Terraform.
- REF: il riferimento Git della configurazione. Il riferimento è facoltativo. Se non specifichi il riferimento, viene utilizzato il ramo configurato predefinito del repository Git.
Per verificare che il tuo repository Git sia collegato correttamente a Infra Manager, crea una richiesta di pull nel tuo repository.
Per visualizzare i risultati della convalida della configurazione Terraform derivata, visualizza la richiesta pull in GitHub.
Ora che questa automazione è configurata, gli trigger Cloud Build causano quanto segue:
- Quando viene inviata una richiesta di pull al repository, Infra Manager crea un deployment di anteprima utilizzando la configurazione Terraform derivata archiviata nel repository Git.
- Quando una richiesta di pull viene unita al repository, Infra Manager aggiorna il deployment utilizzando la configurazione Terraform derivata archiviata nel repository Git.
Passaggi successivi
- Utilizza Cloud Build per visualizzare i risultati delle build per i tuoi trigger di build.
- Visualizza le risorse di cui è stato eseguito il deployment con Infra Manager.
- Monitora le risorse Google Cloud con i log di controllo di Infrastructure Manager.