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 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
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!
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.
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.