La connessione dei trigger di Cloud Build con Infrastructure Manager consente di automatizzare i deployment dell'infrastruttura direttamente dai repository Git. In questo flusso di lavoro, le richieste di pull generano un' anteprima del deployment e i commit uniti creano o aggiornano automaticamente il 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 avere un account di servizio con le autorizzazioni necessarie. Per i dettagli, vedi Configurare il service account.
- Identifica il repository Git esistente che contiene la configurazione Terraform. Quando configuri l'automazione descritta in questa pagina, questa è la configurazione Terraform che Infra Manager utilizza per aggiornare le risorse.
- (Consigliato) Configura la protezione dei rami per il repository Git.
Automatizzare il deployment delle Google Cloud risorse
I passaggi seguenti descrivono la configurazione necessaria per automatizzare l'anteprima e il deployment di una configurazione Terraform archiviata in un repository Git. Il deployment di una configurazione Terraform può essere una revisione di un deployment esistente. Le revisioni potrebbero eliminare o sostituire le risorse di cui è stato eseguito il provisioning Google Cloud .
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 build di Cloud Build che viene richiamato 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 di build Cloud Build che viene richiamato quando una richiesta di pull viene unita al repository Git. Questo trigger fa sì che Infra Manager crei o aggiorni il deployment utilizzando la configurazione Terraform nel repository.
Per automatizzare i deployment della configurazione Terraform quando il repository viene aggiornato:
- Installa l'app GitHub di 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:
repoeread:user. Se l'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. Utilizzerai il token generato nei passaggi seguenti.
Copia il modulo
im_cloudbuild_workspacenel filemain.tfall'interno del 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 che tu specifichi. Per informazioni dettagliate sui vincoli dell'identificatore del 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 predefinito configurato del repository Git.
- GIT_APP_ID: l'ID di installazione dell'app GitHub di Cloud Build utilizzata per i trigger delle richieste di pull e push.
- TOKEN: il token di accesso personale per un repository GitHub. Se fornito, crea un secret in Secret Manager.
Crea un deployment (o aggiorna quello esistente) con il
im_cloudbuild_workspacemodulo: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=REFSostituisci:
- PROJECT_ID: l'ID progetto in cui viene eseguito Infrastructure Manager.
- LOCATION: la località in cui viene eseguito Infra Manager. Per l'elenco delle località, consulta Località di Infrastructure Manager.
- DEPLOYMENT_ID: l'identificatore del deployment che tu specifichi. Per informazioni dettagliate sui vincoli dell'identificatore del deployment, consulta Nome del deployment.
- SERVICE_ACCOUNT: il nome del account di servizio che utilizzi per chiamare Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto del service account. In genere, si tratta dello stesso progetto in cui viene eseguito Infrastructure Manager.
- GIT_REPO: il repository Git pubblico.
- DIRECTORY: la directory che contiene la configurazione Terraform.
- REF: il riferimento Git della configurazione. Il riferimento è facoltativo. Se non specifichi il riferimento, viene utilizzato il ramo predefinito configurato del repository Git.
Per verificare che il repository Git sia connesso correttamente a Infra Manager, crea una richiesta di pull nel repository.
Per visualizzare i risultati della convalida della configurazione Terraform con fork, visualizza la richiesta di pull in GitHub.
Ora che questa automazione è configurata, i trigger di Cloud Build causano quanto segue:
- Quando viene creata una richiesta di pull nel repository, Infra Manager crea un deployment di anteprima utilizzando la configurazione Terraform con fork archiviata nel repository Git.
- Quando una richiesta di pull viene unita al repository, Infra Manager aggiorna il deployment utilizzando la configurazione Terraform con fork archiviata nel repository Git.
Passaggi successivi
- Utilizza Cloud Build per visualizzare i risultati delle build per i trigger di build.
- Visualizza le risorse di cui è stato eseguito il deployment con Infra Manager.
- Monitora le Google Cloud risorse con i log di controllo di Infrastructure Manager.