No artigo anterior, expliquei como criar imagens de máquina usando Packer e GCP. Neste, vou explicar como implantá-las usando Terraform Cloud.
Configuração do Google Cloud
Aqui só precisamos de uma Conta de Serviço com Permissões de Editor. Você pode criar uma como expliquei no artigo anterior “Criando pipelines usando Gitlab CI para Terraform e GCP”.
Por favor, habilite também a API do Compute Engine.
Como publicamos as imagens no projeto “DevOps”, se quisermos usá-las em outros projetos, precisamos conceder Permissão ao SA padrão do Google API dos projetos alvo no nosso projeto “DevOps” como “Usuário de Imagem”. Siga a documentação oficial: Usando Imagens de Outros Projetos.
Configuração do Terraform Cloud
Primeiro, crie dois conjuntos de variáveis, um para credenciais HCP e outro para credenciais GCP.
Conjuntos de Variáveis
GCP
- Variável:
GOOGLE_CREDENTIALS
- Valor: Json da Conta de Serviço sem quebras de linha.
- Tipo: Sensível
- Categoria: Ambiente
HCP
- Variáveis:
HCP_CLIENT_ID
eHCP_CLIENT_SECRET
- Valor: Crie um Principal de Serviço Hashicorp Cloud na Seção IAM e use esses valores.
- Tipo: Sensível
- Categoria: Ambiente
Agora, vamos configurar o espaço de trabalho.
- Vá para a página inicial, Crie um Projeto (ou use o padrão), e depois um espaço de trabalho, por exemplo:
Módulos Terraform do Projeto
- Estou usando meu repositório terraform-modules como exemplo, e criando um espaço de trabalho chamado dev do tipo Fluxo de Trabalho VCS.
Nas Configurações Avançadas, descrevi onde meu código dev está localizado. No meu repositório, ele está na subpasta infra/dev, e para o espaço de trabalho dev, também gostaria de Aplicar mudanças Automaticamente.
Espaço de Trabalho Criado.
- Vamos adicionar nossas variáveis de espaço de trabalho. Para isso, clique no namespace e depois no botão Configurar Variáveis.
Configurar variáveis
No meu caso, apenas duas:
Variáveis
Agora, podemos ver em nossos Pull Requests o Terraform Cloud sendo executado:
Verificação PR
Plano PR
E, após o merge, outra execução, agora, aplicando o código.
Podemos ver nossa VM criada no GCP:
VM Prometheus
E então, podemos acessar o IP público e verificar que nosso Servidor Prometheus está funcionando corretamente
Dicas/Próximos Passos
- Crie subpastas para outros ambientes.
- Crie espaços de trabalho para outros ambientes.
- Se PROD, por favor, considere usar Aplicação Manual.
- Refine quais arquivos/diretórios de código serão observados para acionar as execuções (configuração do Fluxo de Trabalho)
Links Úteis e Referências
- Repositório do Projeto
- Provedor do Google Cloud — Configurando Autenticação.
- Provedor do Google Cloud — Configurando IP Público
Suporte
Se você achar meus posts úteis e gostaria de me apoiar, por favor, me compre um café: Anderson Dario é blog pessoal e blog de tecnologia
Isso é tudo. Obrigado.