# Terraform - Instalação

%[https://youtu.be/20bZC01Pz8k] 

---

## Introdução

Terraform é uma ferramenta open-source (gratuita) para Infraestrutura como Código (IaC) criada pela Hashicorp. Com essa poderosa ferramenta somos capazes de criar arquivos de configurações declarativos para criar e gerenciar centenas de APIs de serviços em nuvem como por exemplo AWS, Google Cloud, Microsoft Azure, etc.

<div data-node-type="callout">
<div data-node-type="callout-emoji">ℹ</div>
<div data-node-type="callout-text">Neste artigo não abordaremos muito sobre conceitos do Terraform, focaremos apenas na sua instalação. Como o Terraform está em constante atualizações, pode se tornar trabalhoso instalar cada nova versão. Para minimizar esse esforço, utilizaremos um gerenciador de versões do Terraform chamado <code>TFSwitch</code></div>
</div>

---

## Instalação

1- Digite o comando:

```bash
sudo curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | sudo bash
```

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1663014802726/RoiNjUf8w.png align="center")

2- Digite o comando → pressione `Enter` na versão do `Terraform` que você desejar instalar:

```bash
tfswitch
```

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1663014849024/EZvkNnRwj.png align="center")

<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text"><strong>Aguarde!</strong> É demorado mesmo, você terá a impressão de que está travado ou que nada aconteceu, mas apenas aguarde o comando ser executado por completo.</div>
</div>

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1663014879210/852FJailQ.png align="center")

Agora precisamos adicionar o diretório `/home/<user>/bin` criado para o seu `PATH`. Então digite o comando:

```bash
sudo nano ~/.zshrc
```

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1663014927910/gl5KB9sDn.png align="center")

E adicione a linha abaixo → pressione `CTRL + X` → `Y` → `Enter` para salvar:

```bash
export PATH=$PATH:/home/<user>/bin:PATH
```

<div data-node-type="callout">
<div data-node-type="callout-emoji">⚠</div>
<div data-node-type="callout-text">Lembre-se de alterar <code>user</code> do comando para o usuário real que você usa</div>
</div>

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1663015071452/v5HoxsEzF.png align="center")

Feche e abra novamente seu terminal, após isso verifique a versão do Terraform instalado digitando o comando:

```bash
terraform --version
```

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1663015103594/QaP1aP-YX.png align="center")

Então sempre que você precisar mudar de versão do terraform, basta digitar o comando `tfswitch` e selecionar a versão desejada. Bacana né?

Se você não quer procurar e selecionar uma versão no menu do `tfswitch`, pois já sabe exatamente a versão que deseja usar, você pode passar essa informação diretamente no comando:

```bash
tfswitch <version>
```

Por exemplo:

```bash
# tfswitch 1.1.5
```

E isso instalaria a versão `1.1.5` do terraform.

<div data-node-type="callout">
<div data-node-type="callout-emoji">✅</div>
<div data-node-type="callout-text">Espero que essas informações tenham sido úteis para você!</div>
</div>
