# Hashicorp Packer - Instalação

%[https://youtu.be/Px9UOcr5-SI] 

---

## Introdução

Hashicorp Packer é uma ferramenta open-source (gratuita). Com essa poderosa ferramenta somos capazes de automatizar a criação de qualquer tipo de imagem (AMI) para várias plataformas diferentes como AWS, Google Cloud, Microsoft Azure, etc. a partir de uma única configuração de origem `JSON` ou `HCL2` que define o modelo da infraestrutura imutável.

<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 Hashicorp Packer, focaremos apenas na sua instalação ou atualização.</div>
</div>

---

## Instalação ou Atualização do Hashicorp Packer

Você poderá instalar ou atualizar a versão do Hashicorp Packer a qualquer momento, para isso execute o comando abaixo:

```bash
# Import Hashicorp GPG key
if [ ! -f /etc/apt/trusted.gpg.d/hashicorp.gpg ]; then

  curl -fsSL https://apt.releases.hashicorp.com/gpg | 
    gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/hashicorp.gpg >/dev/null

fi && \

# Add Hashicorp repository without confirmation  
sudo apt-add-repository -y \
  "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" && \

# Update repositories
sudo apt update && \

# Install Packer 
sudo apt install packer -y && \

# Print version
packer --version
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1692796770123/a84a6134-f630-4f0e-b88f-db47477b9354.png align="center")

<div data-node-type="callout">
<div data-node-type="callout-emoji">☑</div>
<div data-node-type="callout-text">E isso é tudo! 😄</div>
</div>

Mas se você quiser entender o que cada parte deste comando faz, é só continuar lendo abaixo.

---

## Explicando o comando:

```bash
# Import Hashicorp GPG key
if [ ! -f /etc/apt/trusted.gpg.d/hashicorp.gpg ]; then

  curl -fsSL https://apt.releases.hashicorp.com/gpg | 
    gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/hashicorp.gpg >/dev/null

fi && \
```

Essa primeira parte verifica se a chave GPG da Hashicorp já está presente em `/etc/apt/trusted.gpg.d/`. Se não estiver, ele faz o download da chave, decodifica e salva no local correto.

```bash
# Add Hashicorp repository without confirmation
sudo apt-add-repository -y \
  "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" && \
```

Aqui adicionamos o repositório da Hashicorp ao APT, sem pedir confirmação `(-y)`.

```bash
# Update repositories  
sudo apt update && \
```

Atualiza os repositórios para pegar a lista de pacotes do novo repositório adicionado.

```bash
# Install Packer
sudo apt install packer -y && \
```

Instala o Packer a partir do repositório da Hashicorp.

```bash
# Print version
packer --version
```

Por último, imprime a versão instalada do Packer para confirmar que está funcionando.

<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>
