Do nada as coisas quebram
Eu rodo quase que diariamente o meu projeto principal de infra da empresa e tudo funciona super bem.
Eis que um belo dia... talvez não a toa... numa sexta feita no final do expediente um módulo simplesmente deixa de responder e apresenta o erro Error: Failed to download module
.
Provavelmente você tá muito identificado nesse momento. Aposto que isso já aconteceu com você em algum momento. Nem precisa ser com Terraform.
Pois é. Aconteceu comigo. Do nada, ao rodar o meu tofu init
, meu módulo do Aurora parou de responder
Initializing the backend...
Initializing modules...
Downloading registry.opentofu.org/terraform-aws-modules/rds-aurora/aws 9.3.1 for global.aurora.xxx_rds_aurora...
╷
│ Error: Failed to download module
│
│ on global/aurora/aurora.tf line 1:
│ 1: module "xxx_rds_aurora" {
│
│ Could not download module "xxx_rds_aurora" (global/aurora/aurora.tf:1) source code from "git::https://github.com/terraform-aws-modules/terraform-aws-rds-aurora?ref=v9.3.1": error downloading
│ 'https://github.com/terraform-aws-modules/terraform-aws-rds-aurora?ref=v9.3.1': /opt/homebrew/bin/git exited with 128: Cloning into '.terraform/modules/global.aurora.xxx_rds_aurora'...
│ ssh: Could not resolve hostname github.comterraform-aws-modules: nodename nor servname provided, or not known
│ fatal: Could not read from remote repository.
│
│ Please make sure you have the correct access rights
│ and the repository exists.
│ .
Investigação
Obvio que a AI não me ajudou
E agora o que fazer?
No Novo Mundo das AIs a primeira reação é perguntar pro ChatGPT. Foi o que eu fiz. Eu nem li o erro direito.
E é óbvio que ele me deu uma pá de soluções que nem fazia sentido.
Por que eu não li o erro desde o começo?
Fiz os checks básicos:
- Leu o erro? Agora sim!
- O modulo ainda existe? Sim!
- A versão existe? Sim!
- Eu mudei alguma coisa? Não!
- Alguém mudou alguma coisa? Não!
Então por que diabos ele não tá achando?
O erro fala sobre download... e tava mais obvio do que eu poderia imaginar
Could not download module "xxx_rds_aurora" (global/aurora/aurora.tf:1) source code
from "git::https://github.com/terraform-aws-modules/terraform-aws-rds-aurora?ref=v9.3.1": error downloading
Foi quando eu me dei conta: ele está tentando baixar o módulo via https
só que meu git está configurado pra baixar via ssh
. Obvio que vai dar ruim.
A partir daqui vai o checklist seguinte:
- Meu
~/.gitconfig
está configurado corretamente? Sim!
[url "ssh://git@github.com/"]
insteadOf = https://github.com/
A configuração de usar o ssh em vez do https está ativa.
Bom. Só sobrou a nível de Terraform e OpenTofu.
E realmente era o que faltava.
Solução
Não sei exatamente o motivo disso ter mudado do nada. Eu realmente não fiz nenhum tipo de alteração no meu ambiente de trabalho.
Mas a solução é simples. Se você ainda não tem um arquivo ~/.terraformrc
ou ~/.opentofurc
crie... e adicione um provider mirror
.
provider_installation {
network_mirror {
url = "ssh://git@github.com/"
match = "github.com"
}
}
Isso vai evitar que você não consiga baixar os módulos por causa do seu Github.
E, crianças... leiam os erros e as documentações. Isso vai ser um diferencial em relação a carreira de vocês.
Top comments (0)