Automatização de infraestrutura e instalação do Grafana usando Terraform e Ansible com GitHub Actions.
Este projeto automatiza o provisionamento de infraestrutura e a instalação do Grafana usando Terraform e Ansible, com pipelines do GitHub Actions para integração contínua.
IAC/ ├── .ansible ├── .vscode ├── lab/ │ ├── .ansible │ ├── automation/ │ │ ├── group_vars/ │ │ ├── inventory.sh │ │ └── playbook.yml │ ├── compute/ │ │ ├── .terraform/ │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── providers.tf │ │ ├── variables.tf │ │ ├── terraform.tfstate │ │ └── terraform.tfstate.backup │ └── devops-pdi.pem ├── module-f/ │ └── main.tf └── pipelines/ └── .github/ └── workflows/ └── grafana-pipeline-deploy.yml
Contém os arquivos Terraform que provisionam a infraestrutura do Grafana.
Contém os playbooks Ansible e inventário para configurar a infraestrutura criada pelo Terraform.
Módulo pai do Terraform com todas as variáveis definidas, reutilizado pelo módulo filho.
Contém os workflows do GitHub Actions para executar o deploy completo.
-
Pipeline do GitHub Actions é acionada:
- Localização:
pipelines/.github/workflows/grafana-pipeline-deploy.yml
- Localização:
-
Terraform cria a infraestrutura no provedor (ex.: AWS), usando o módulo pai
module-f
-
Ansible provisiona a infraestrutura criada com o Grafana, usando:
inventory.sh
para gerar o inventário dinâmicoplaybook.yml
para instalar e configurar o Grafana
- Terraform instalado
- Ansible instalado
- Acesso às chaves e variáveis de ambiente necessárias para o provedor (AWS, Azure, etc.)
- Configurar variáveis e secrets no repositório para autenticação do provedor
- Executar a pipeline no GitHub Actions
- O Terraform cria a infraestrutura automaticamente
- Após a infraestrutura estar pronta, o Ansible provisiona o Grafana usando o inventário dinâmico
- O módulo pai (
module-f
) contém todos os valores padrão para facilitar reutilização e padronização - O fluxo é totalmente automatizado via pipeline; não é necessário executar Terraform ou Ansible manualmente
- Os playbooks Ansible podem ser ajustados para adicionar novas configurações no Grafana sem modificar a infraestrutura