Header Ads

Como criar uma gota DigitalOcean usando o Terraform

O DigitalOcean é um dos fornecedores de máquinas virtuais em nuvem mais fáceis de usar. Se você precisar de um ambiente de computação rapidamente provisionado, as máquinas virtuais da DigitalOcean geralmente ficam disponíveis em menos de 60 segundos. Em vez de usar a interface do usuário, geralmente é melhor automatizar.

Terrap é uma infraestrutura como linguagem de código que permite usar provedores, como o DigitalOcean, para provisionar recursos sem usar a interface do usuário do DigitalOcen. Neste artigo, exploramos como usar o Terraform para provisionar um Droplet DigitalOcean (máquina virtual).

Instalando o Terraform

O Terraform está disponível para várias plataformas, Windows e Linux. O método mais fácil é fazer o download do executável no link abaixo e colocar o executável no caminho do sistema para permitir a referência a partir de qualquer lugar.

https://www. terraform. io/downloads. html

Crie chaves de API a partir do DigitalOcean

Para que o Terraform se comunique com o DigitalOcean, precisamos gerar chaves de API para uso com o provedor DigitalOcean. As etapas a seguir descrevem como criar uma nova chave de API especificamente para uso com Terraform. Você pode usar outras chaves de API, mas é recomendável não reutilizar chaves, sempre que possível, para desativar facilmente o acesso quando necessário.

  • Efetue login no painel de controle do DigitalOcean.
  • Navegue até a seção API.
  • Clique em “ Gerar novo token. ”
  • Digite um nome para o token e permita que o token tenha privilégios de leitura e gravação.
  • Copie a chave da API, pois você não a verá novamente, e a usaremos para o Terraform.

Primeiros passos

O primeiro passo com qualquer configuração do Terraform é inicializar uma nova configuração. Primeiro, crie um diretório para abrigar nossa configuração do Terraform.

 mkdir digitalocean-terraform cd digitalocean-terraform 

Em seguida, precisamos criar um arquivo digitalocean. tfvars que usaremos para armazenar nossa chave de API que geramos anteriormente. Essa é uma prática recomendada, para não codificar as credenciais. Ao usar o controle de versão, recomendado, você pode ignorar os arquivos . tfvars, ou arquivos específicos, para garantir que essas credenciais não sejam armazenadas no histórico de controle de versão.

 toque em digitalocean. tfvars 

Dentro do digitalocean. tfvars, criaremos uma variável simples chamada api_token. Isso será usado posteriormente em nossos scripts Terraform.

 api_token = 12345123213412425 

Criando o arquivo de recurso de gotículas

Agora que temos a configuração do Terraform e do DigitalOcean, vamos criar nosso arquivo de configuração do Terraform. Crie o arquivo digitalocean. tf e use o código padrão abaixo para começar. Para permitir que nossa configuração use o provedor e as credenciais, precisamos informar onde obter esses dados.

variável

 "api_token" {default = ""} provedor "digitalocean" {token = var. api_token} 

Agora que temos nosso script configurado, podemos executar o código init do terraform, e agora ele cria os metadados do Terraform e instala provedores. Você notará que a saída do comando mostra o provedor sendo baixado para uso. Além disso, pedimos ao nosso provedor para usar as credenciais especificadas anteriormente no arquivo . tfvars.

Preenchendo os comandos da gota

Nesse caso, queremos provisionar um recurso de gota simples. Existem alguns parâmetros que vamos usar. Queremos usar o plano disponível mais barato, no data center NYC1, e adicionar algumas opções que tornarão o Droplet mais flexível no futuro.

  • Imagem da gota: ubuntu-18.04-x64
  • Região: NYC1
  • Tamanho: s1-vcpu1-1gb

Agora que temos nossos atributos básicos, vamos construir uma configuração do Terraform para essa gota.

 resource "digitalocean_droplet" "web" {image = "ubuntu-18-04-x64" name = "test-web-vm" region = "nyc1" size = "monitoramento s-1vcpu-1gb" = true ipv6 = true private_networking = true} 

Os comandos adicionais que estamos adicionando aqui são para monitoramento, ipv6 e redes privadas. Monitorar significa que você terá métricas, como CPU e memória, de dentro do console da nuvem DigitalOcean. Você pode definir alertas sobre essas métricas, por isso é muito útil para o futuro. IPv6 significa que suas gotículas estarão acessíveis no IPv6, o que ajuda a protegê-las no futuro. Por fim, a rede privada significa que sua gota receberá um endereço 10.x.x.x acessível por outras gotas, mas não pela Internet pública.

Existe outra habilidade muito útil: os dados do usuário. Para Linux, isso permite executar certos comandos no provisionamento da VM, como a atualização de pacotes. Podemos incluir esse direito na configuração do Terraform, adicionando esse atributo.

 resource "digitalocean_droplet" "web" {image = "ubuntu-18-04-x64" name = "test-web-vm" region = "nyc1" size = "s-1vcpu-1gb" monitoramento = true ipv6 = true private_networking = true user_data = "# configuração da nuvem \ atualização_do_pacote: true \ atualização_do_pacote: true"} 

Se você começar a fazer muito com user_data, poderá armazenar os dados em um arquivo YAML e incluí-los na declaração de recurso.

arquivo ("user-data. yml")

Implantando a gota

Agora que nossa configuração do Terraform está pronta, vamos implantar a gota executando o seguinte código.

 terraform apply -var-file = "digitalocean. tfvars 

Você também pode perceber que um novo arquivo . tfstate é criado. Isso captura o estado atual que o Terraform conhece para o seu ambiente. Se você tentar implantar essa configuração de gota novamente, o Terraform não o fará, pois já sabe que a gota foi criada. Se você excluir este arquivo, o Terraform não reconhecerá a existência do recurso e tentará criá-lo novamente.

Finalizando

Como você pode ver neste artigo, a criação de um recurso no DigitalOcean via Terraform é rápida e simples. Existem muitos outros recursos que você pode provisionar usando o provedor DigitalOcean.

Usando essa configuração como código, você pode provisionar ambientes inteiros de maneira rápida e fácil no DigitalOcean usando Terraform. Por exemplo, se você precisar de um ambiente de desenvolvimento totalmente novo, e já o tiver mapeado anteriormente em uma configuração do Terraform usando um comando de implantação simples, poderá ter um ambiente de desenvolvimento totalmente novo pronto para uso.

A combinação do Terraform e do DigitalOcean permite uma combinação poderosa que não apenas protege sua infraestrutura, permite o controle de versão, mas reforça a consistência e a segurança.

Via: How to Geek

Nenhum comentário