O que vamos cobrir?
Neste guia, veremos como podemos provisionar uma instância do AWS RDS DB usando Terraform. Vamos começar com a instalação do Terraform no Ubuntu 20.04.
Instalando o Terraform
Hashicorp fornece o pacote oficial do Terraform para Ubuntu/Debian, Centos/Rhel, Fedora e Amazon Linux. Além disso, também mantém o binário pré-compilado e também pode ser compilado da fonte. Para este guia, estamos usando o pacote padrão fornecido pelo Repositório do Pacote Debian para instalar o Terraform no Ubuntu 20.04.
Passo 1. Primeiro instalação gnupg, Pacotes comuns de provérbios de software e Curl para verificar a assinatura de GPG da Hashicorp e instalar o repositório necessário:
$ sudo apt-get update && sudo apt-get install -y gnepg software-properties-common curl
Passo 2. Agora adicione o Hashicorp GPG chave usando o comando:
$ CURL -FSSL https: // apt.lançamentos.Hashicorp.com/gpg | Sudo Apt-Key Add -
etapa 3. Continue adicionando o repositório necessário:
$ sudo apt-add-repository "deb [arch = amd64] https: // apt.lançamentos.Hashicorp.com $ (lsb_release -cs) main "
Passo 4. Por fim, execute o comando de atualização para adicionar o repositório e instalar o TerraForm:
$ sudo apt-get update && sudo apt-get install Terraform
Etapa 5. Verifique se o Terraform está instalado executando o comando:
$ Terraform -Version
Construindo a AWS RDS Infrastructure usando Terraform
Agora que instalamos o Terraform em nossa máquina local, podemos continuar nossa tarefa de trabalhar com a AWS. Como mencionado anteriormente, o Terraform usa vários arquivos de configuração para recursos de provisão e cada um desses arquivos deve ser colocado em sua respectiva pasta/diretório de trabalho. Vamos criar um diretório para esse fim:
Passo 1. Faça uma pasta para conter seus arquivos de configuração e altere o diretório para esta pasta:
$ mkdir linuxhint-terraform && CD Linuxhint-Terraform
Passo 2. Fazer um 'principal.tf'Arquivo que conterá a definição para nossa infraestrutura:
$ nano Main.tf
Agora coloque a seguinte configuração dentro dele:
Terraform
requerir_providers
aws =
fonte = "Hashicorp/AWS"
versão = "~> 3.27 "
requerir_version = "> = 0.14.9 "
Provedor "AWS"
região = "US-West-2"
Access_key = "Your-Acacess-Key"
Secret_key = "Your-secret-key"
Recurso "AWS_DB_INSTANCE" "RDS_INSTANCE"
alocado_storage = 20
identificador = "RDS-Terraform"
storage_type = "gp2"
Engine = "MySQL"
Engine_version = "8.0.27 "
instance_class = "db.T2.micro "
name = "seu db-name"
nome de usuário = "seu nome-db-username"
senha = "Sua passanha"
publicly_accessible = true
skip_final_snapshot = true
tags =
Name = "ExamplerdServerInstance"
Este arquivo contém toda a configuração para implantar usando o Terraform, basta substituir o texto em negrito por seus próprios detalhes de configuração. Vamos explorar cada uma das seções usadas no arquivo acima:
1. Terraform: define as configurações de Terraform. Os 'provedores necessários' definem o provedor a ser usado com o Terraform e a 'fonte' é um parâmetro opcional para o nome do host, um espaço para nome e o tipo de provedor. No código acima, a fonte é definida como 'Hashicorp/AWS', que, como todos os provedores. O provedor acima aponta para 'registro.Terraform.io/hashicorp/aws '.
O atributo da versão define a versão do provedor que você deseja usar.
2. Provedor: isso especifica com qual plataforma em nuvem você vai interagir (AWS, Azure, GCP etc.). Isso também controla a região que você está implantando seus recursos e as credenciais de segurança para o seu usuário.
3. Recurso: ele compreende componentes que constroem uma infraestrutura como bancos de dados, armazenamento, rede etc. A primeira string aqui “aws_instance“, Define o tipo de recurso e o segundo define um nome personalizado que você deseja usar. Esses dois são combinados para formar um ID exclusivo para este recurso, aqui está 'aws_instance.Rds_instance'. Da mesma maneira, também podemos incluir tamanhos de máquinas, nomes de imagens de disco ou IDs VPC.
Para validar ou verificar sua configuração, use o comando:
$ Terraform Validar
Inicializando o diretório Terraform
Para baixar e instalar o provedor que definimos em nossa configuração e outros arquivos, precisamos inicializar o diretório que contém este arquivo:
$ Terraform init
Da imagem acima, nosso iniciar O comando é bem -sucedido e existem alguns novos arquivos também criados aqui. Há também mais um comando 'Terraform Plan', embora não seja obrigatório usá -lo, mas tem alguns benefícios, por exemplo.:
A Terraform não menciona esse comando em sua documentação, porque quando você executa o comando 'Terraform Apply', o mesmo plano será apresentado novamente.
Construindo a infraestrutura
Para construir nossa infraestrutura, use o comando:
$ Terraform se aplica
Isso primeiro produzirá o plano de execução que descreve as tarefas que o Terraform executará para trazer o estado de sua infraestrutura para a definida em seu arquivo de configuração. Depois disso, vai fazer uma pausa e pedir que você confirme o plano para continuar. Se tudo estiver definido como você desejou, digite 'Sim' para continuar:
Se você estiver pronto para continuar, digite 'sim'.
Levará algum tempo para concluir o processo. Quando esse processo estiver concluído, a mensagem abaixo aparecerá:
No seu console de gerenciamento da AWS, a instância do RDS será listada:
Destruindo os recursos
Quando você terminar e não precisa mais dos recursos da AWS que você criou, você pode simplesmente excluí -los usando o comando:
$ Terraform Destruir
Conclusão
Neste guia, aprendemos sobre o provisionamento de uma instância RDS na AWS usando o Terraform. Você também pode tentar configurar uma instância do EC2 da mesma maneira.