Convertendo zonas do Bind para o uso no Terraform e AWS ( Route53 )

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.git
cd 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 .

NomeDescriçãoPadrão
-domainDomínio. Necessário digitar
-zone-fileOpcional o uso do caminho completo para o arquivo da zonadominio.zone
-excludeTipos de entradas de DNS a ignorar, separado por vírgulaSOA,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 ).