DEV Community

Cover image for ASDF - Painel de Ferramentas
andremulin
andremulin

Posted on

ASDF - Painel de Ferramentas

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
Enter fullscreen mode Exit fullscreen mode

Configure o bash:

. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Caso queria instalar alguma versão especifica, basta informar o número ao invés de latest. Ex.:

asdf install terraform 0.15.31
Enter fullscreen mode Exit fullscreen mode

Pronto, já temos duas versões do terraform instaladas.

asdf list terraform
0.15.4
1.0.6
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

Discussion (0)