Terraform é uma das ferramentas que aparecem como necessidade quando estamos pensando em cultura DevOps ou até, Infraestrutura na Nuvem. E, hoje é um dos meus objetos de estudo, principalmente porque profissionalmente isto está sendo necessário devido aos caminhos do mercado como um todo.
E uma das necessidades que eu tenho hoje é usar o Terraform para gerenciar meus projetos, tanto pessoais quanto profissionais. Surgiu a pouco tempo uma necessidade de desativar o Bind e migrar todos os domínios para o Route53.
Em uma busca na internet com aquele famoso pensamento “será que vou ter que criar do zero tudo no Terraform ? “, acabei achando no repositório do Calle Pettersson e achei o tfz53 .
E, sim, ele resolveu o problema. Ou melhor, pelo menos 90% do meu trabalho, já que logicamente algumas entradas podem ter alguma sintaxe que tem que ser arrumada no arquivo do Terraform .
Compilando o programa ou baixando o binário
Primeiro para quem curte compilar direto do código, os passoss estão abaixo. Primeiro faça o famoso clone do repositório :
git clone https://github.com/carlpett/tfz53.gitcd tfz53
go build
Ou, no modo GO de ser …
go get github.com/carlpett/tfz53
cd $GOPATH/src/github.com/carlpett/tfz53
go build
E caso isto seja chato ( em alguns casos é realmente mais fácil baixar o binário ), vá nesta parte do reposítorio git e baixe o binário específico para seu sistema operacional.
Usando
A sintaxe é bem fácil. No uso básico é só fazer o seguinte ( estou usando o domínio cybernetus.com como exemplo ).
./tfz53 -domain cybernetus.com > cybernetus.com.tf
E ele vai procurar no diretório um arquivo cybernetus.com.zone e caso não exista, ele apresentará o erro. O arquivo para uso no Terraform será o cybernetus.com.tf .
Além disto, o programa ainda lhe fornece algumas flags .
Nome | Descrição | Padrão |
---|---|---|
-domain | Domínio. Necessário digitar | |
-zone-file | Opcional o uso do caminho completo para o arquivo da zona | dominio.zone |
-exclude | Tipos de entradas de DNS a ignorar, separado por vírgula | SOA,NS |
E a partir daí, é só ser feliz e usar o arquivo gerado no seu terraform com o módulo AWS carregado ( nem vou entrar nos detalhes disto aqui, pois, se chegou até aqui você já deve ter esta parte pronta ).