Começar a usar o Terraform
O Terraform é uma ferramenta prática para provisionamento rápido e gerenciamento da infraestrutura em nuvem usando arquivos de configuração.
Quando os arquivos de configuração mudam, o Terraform os lê novamente e cria, atualiza ou deleta os recursos conforme descrito pelo administrador.
Neste artigo, vamos mostrar como começar a trabalhar com Terraform e criar infraestrutura em nuvem no Hostman.
Passo 1. Instalar o Terraform Copiar link
Primeiro, vamos aprender a instalar o Terraform no Linux, Windows e macOS.
Instalando no Linux (Ubuntu) Copiar link
Você pode executar os comandos como root ou como usuário com privilégios sudo.
-
Atualize a lista de pacotes:
apt update-
Instale
wgeteunzip, que serão usados depois, navegue até o diretório onde o Terraform será instalado e baixe o pacote:
apt install wget unzip
cd ~
wget https://releases.hashicorp.com/terraform/1.12.2/terraform_1.12.2_linux_amd64.zipNo último comando, especificamos a versão mais recente no momento da escrita — 1.12.2. Você pode conferir as últimas versões aqui.
-
Descompacte o arquivo:
unzip terraform_1.12.2_linux_amd64.zip-
Mova o arquivo para o diretório:
mv terraform /usr/local/bin/Pronto! Agora você pode verificar se o Terraform foi instalado corretamente:
terraform -vSaída esperada:
Terraform v1.12.2
on linux_amd64Instalar no Windows Copiar link
Existem duas formas de instalar o Terraform no Windows: via Chocolatey ou manualmente.
Via Chocolatey
O método mais simples é usando o Chocolatey.
Se você ainda não o tem, abra o PowerShell como administrador e execute:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))Depois, instale o Terraform:
choco install terraformVerifique se a instalação foi bem-sucedida:
terraform -vInstalação manual
Para instalar a versão mais recente do Terraform:
- Acesse o site da HashiCorp e selecione a versão adequada ao seu sistema.
- Baixe o arquivo de instalação.
- Extraia os conteúdos para uma pasta conveniente, por exemplo,
C:\Terraform.
Nesse ponto, o Terraform está instalado, mas só pode ser usado especificando o caminho completo no terminal:
C:\Windows\system32>C:\Terraform\terraform -v Terraform v1.12.2
on windows_amd64Se tentar acessar apenas pelo nome, ocorrerá um erro:
C:\Windows\system32>terraform -v 'terraform' is not recognized as an internal or external command,
operable program or batch file.Para poder chamar o Terraform de qualquer lugar, adicione-o à variável de ambiente PATH:
- Vá em Painel de Controle → Sistema e Segurança.
- Clique em Alterar variáveis de ambiente do sistema na seção Sistema. Isso abrirá a janela Propriedades do Sistema.
- Vá em Avançado → Variáveis de ambiente.
- Encontre PATH nas Variáveis do sistema e clique em Editar.
- Clique em Novo e insira o caminho para o diretório onde você extraiu o Terraform.
- Clique em OK.
Verifique se tudo funciona executando:
terraform -vSaída esperada:
Terraform v1.12.2
on windows_amd64Instalar no macOS Copiar link
Assim como no Windows, existem duas formas de instalar o Terraform no macOS: via Homebrew ou manualmente.
Via Homebrew
Primeiro, instale o repositório oficial da HashiCorp:
brew tap hashicorp/tapEm seguida, instale o Terraform:
brew install hashicorp/tap/terraformVerifique se a instalação foi bem-sucedida:
terraform -vInstalação manual no macOS
- Acesse o site da HashiCorp e baixe o arquivo zip adequado para seu sistema.
- Descompacte o arquivo.
- Liste os diretórios no seu
PATHcom o comando:
echo $PATH-
Copie o executável do Terraform para um dos diretórios listados:
mv ~/current/terraform/location /one/of/PATH/locations/Por exemplo, se o executável estiver em Downloads e seu PATH incluir /usr/local/bin, o comando ficará:
mv ~/Downloads/terraform /usr/local/bin/Passo 2. Criar o arquivo de configuração .tf Copiar link
Arquivos de configuração do Terraform têm a extensão .tf. O nome do arquivo é arbitrário, o programa consegue ler de qualquer forma.
Crie um novo diretório chamado hostman_project e coloque nele um arquivo de configuração, que chamaremos de hm_project.tf.
Para criar o arquivo .tf, você pode primeiro criar um arquivo de texto simples e depois mudar a extensão para .tf.
Um diretório pode ter vários arquivos de configuração pertencentes ao mesmo projeto. Por exemplo, vars.tf para variáveis, nginx.tf para configurar um servidor Nginx, etc. Ao executar terraform plan, todos os arquivos .tf serão combinados.
Neste artigo, utilizaremos apenas um arquivo: hm_project.tf.
Passo 3. Configurar o provider Copiar link
Agora, vamos configurar o Terraform provider no arquivo de configuração.
No início do arquivo hm_project.tf, adicione:
terraform {
required_providers {
hm = {
source = "hostman-cloud/hostman"
}
}
required_version = ">= 0.13"
}No campo source, insira a URL do provider, neste caso, o Hostman.
Depois, no diretório com o arquivo de configuração, execute:
terraform initPasso 4. Obter um token Copiar link
Para trabalhar com o provider, você precisará de um token de API, que pode ser obtido na seção API do painel de controle.
- Clique em Criar.
- Insira um nome para o token; ele será exibido no painel.
- Selecione o período de validade do token.
- Clique em Emitir.
- Copie o token gerado.
Por exemplo, usamos o token: fb246030216d5g30b1g6228e3071037g.
Adicione-o ao arquivo hm_project.tf assim:
provider "hm" {
token = "fb246030216d5g30b1g6228e3071037g"
}Substitua fb246030216d5g30b1g6228e3071037g pelo seu token.
Passo 5. Preparar a configuração Copiar link
Com o Terraform, você pode gerenciar diversos recursos na nuvem Hostman, como servidores em nuvem, bancos de dados, VPC, IPs públicos etc.
Exemplo: criar um servidor em nuvem com as seguintes especificações:
- NVMe: 80 GB
- CPU: 2
- RAM: 4 GB
- SO: Ubuntu 22.04
Chamaremos o servidor de my-hostman-server, mas você pode escolher seu próprio nome.
Adicione a configuração ao arquivo hm_project.tf:
data "hm_configurator" "configurator" {
location = "us-2"
}
data "hm_os" "os" {
name = "ubuntu"
version = "22.04"
}
resource "hm_server" "my-hostman-server" {
name = "My Hostman Server"
os_id = data.hm_os.os.id
configuration {
configurator_id = data.hm_configurator.configurator.id
disk = 1024 * 80
cpu = 2
ram = 1024 * 4
}
}Se o Terraform não criar o servidor, verifique se o token foi inserido corretamente.
Preste atenção nos erros exibidos pelo Terraform; geralmente indicam o que está errado.
Além disso, você pode configurar autenticação via chave SSH. Gere as chaves usando o guia em nossa documentação e copie a chave pública para o servidor adicionando ao arquivo hm_project.tf:
resource "hm_ssh_key" "your-key" {
name = "Your key"
body = file("~/.ssh/your-key.pub")
}No bloco resource, adicione a linha ssh_keys_ids:
resource "hm_server" "my-hostman-server" {
name = "My Hostman Server"
os_id = data.hm_os.os.id
ssh_keys_ids = [hm_ssh_key.your-key.id]
}O arquivo de configuração final ficará assim:
terraform {
required_providers {
hm = {
source = "hostman-cloud/hostman"
}
}
required_version = ">= 0.13"
}
provider "hm" {
token = "fb246030216d5g30b1g6228e3071037g"
}
data "hm_configurator" "configurator" {
location = "us-2"
}
data "hm_os" "os" {
name = "ubuntu"
version = "20.04"
}
resource "hm_ssh_key" "your-key" {
name = "Your key"
body = file("~/.ssh/your-key.pub")
}
resource "hm_server" "my-hostman-server" {
name = "My Hostman Server"
os_id = data.hm_os.os.id
ssh_keys_ids = [hm_ssh_key.your-key.id]
configuration {
configurator_id = data.hm_configurator.configurator.id
disk = 1024 * 80
cpu = 2
ram = 1024 * 4
}
}Passo 6. Testar a configuração Copiar link
Execute:
terraform validateSe tudo estiver correto, você verá a mensagem indicando que a configuração é válida. Em caso de erros, revise o arquivo.
Passo 7. Aplicar a configuração Copiar link
Primeiro, execute:
terraform planEste comando não aplica a configuração, apenas exibe todos os recursos planejados, permitindo revisar os ajustes.
Se estiver tudo certo, execute:
terraform applyEste comando aplica a configuração e permite ao Terraform criar os recursos descritos. Confirme digitando yes e pressionando Enter.
Agora, você pode acessar o painel de controle e conferir se os recursos foram criados.
Para remover os recursos, use:
terraform destroyConfirme a exclusão digitando yes.
Conclusão Copiar link
Neste guia, mostramos como criar arquivos de configuração Terraform e criar/configurar recursos na nuvem Hostman.
Para saber mais sobre o Terraform, consulte a documentação oficial. Para mais informações sobre o Hostman Terraform provider, visite nosso GitHub.