Neste projeto, será implementado um Pipeline de CI/CD fazendo uso do Cloud Build e Terraform. Todo o procedimento será descrito abaixo, com os prints de cada etapa.
ℹ️ INFO
Antes da realização dos procedimentos abaixo, deve-se ativar a API do Compute Engine e do Cloud Build. Além disso deve ser concedido a permissão de editor para a conta de serviço do Cloud Builder.
-
Foi realizado o clone do diretório do repositório do desafio da DIO, terraform-exemplo2, para o repositório atual, para que seja configurado a trigger do Cloud Build.
-
Agora o Cloud Build deverá ser aberto, para que seja conectado o repositório atual no Cloud Build
-
Após a configuração do repositório deverá ser criado o gatilho para invocar um build sempre que um código for enviado por push a uma ramificação no repositório atual, sendo executado automaticamente o cloudbuild.yaml, que fará um
terraform apply
. -
Também será criado um bucket chamado de
calimanfilho-terraform
na zonaus-east1
, mesmo local que será criado a VM, para que os arquivos de estado do Terraform seja salvo no Google Cloud Storage. -
Para o estado ser salvo, é necessário incluir o código abaixo no main.tf, informando o nome do bucket criado anteriormente, no argumento
bucket
.backend "gcs" { bucket = "calimanfilho-terraform" prefix = "terraform/state" }
-
Para testar, será modificado no main.tf, o argumento
name
do recursogoogle_compute_instance.vm_instance
será alterando deterraform-instance
paracloudbuild-terraform
. -
Após alguns erros de configuração que foram corrigidos, o gatilho do Cloud Build funcionou corretamente.