Se você trabalha com Terraform em múltiplos ambientes, é provável que você já tenha se deparado com versões diferentes do Terraform. Dai é ficar trocando de versão em cada projeto. Isso é chato.
O mesmo ocorre quando vc possui projetos com versões diferentes de Nodejs entre outros.
O melhor dos mundos seria ter todas as versões utilizamos instaladas e serem automaticamente selecionadas em cada projeto, sem ter que utar um executável diferente. Melhor ainda, que fosse algo fácil de utilizar em time, fazendo com que todos possam ter a mesma caixa de ferramentas.
É ai que o asdf entra em ação. Com objetivo de gerenciar multiplos versões de runtimes em um único lugar, o asdf facilita a instalação de múltiplas versões e seleção de da versão necessária dependendo do contexto de utilização.
Link: https://asdf-vm.com/
Instalação
O asdf possui apenas duas dependências, o curl e o git.
Faça o clone do repositório do projeto:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1
Configure o bash:
. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash
Pronto, o asdf já estará disponível.
Caso você utilize macOS ou queria outras formas de instalação, acesse https://asdf-vm.com/guide/getting-started.html#_3-install-asdf para mais opções.
Adicionando plugins
Os runtimes ou ferramentas gerenciadas pelo asdf são chamadas de plugins. Sendo assim, para que o asdf gerencie uma ferramenta, é necessário que seja adicionar o plugin da mesma.
Abaixo segue o exemplo do plugin terraform:
asdf plugin add terraform
Depois de adicionar o plugin, será necessário efetuar a instalação de uma das versões.
Abaixo segue o exemplo da instalação da última versão do terraform:
asdf install terraform latest
Caso queria instalar alguma versão especifica, basta informar o número ao invés de latest. Ex.:
asdf install terraform 0.15.31
Pronto, já temos duas versões do terraform instaladas.
asdf list terraform
0.15.4
1.0.6
A lista completa de plugins disponíveis pode ser acessada em https://github.com/asdf-vm/asdf-plugins.
Configurando
A configuração do asdf é simples. Através de um arquivo com nome .tool-versions, que quando existente na pasta, faz com que o asdf utilize a versão indicada da ferramenta ou runtime.
O conteúdo do .tool-versions deverá conter o nome do plugin e a versão que deverá ser utilizada:
terraform 0.15.4
Link: https://github.com/andremulin/asdf-example/blob/main/terraform/.tool-versions
A configuração Local é utilizada em cada projeto com objetivo de definirmos uma versão especifica dos runtimes ou ferramentas para o projeto em questão.
Já para definir globalmente quais versões você quer utilizar, o arquivo .tool-version precisará ser criado na pasta home do seu usuário:
~/.tool-versions
Resumo
Tendo seguido essas passos, sua estação de trabalho já terá a capacidade de alternar entre versões diferentes de Terraform. Agora você precisa adicionar o arquivo .tool-versions em seus projetos para que o asdf possa reconhecer a versão a ser utilizada.
Top comments (0)