Como ativar a versão no balde S3 usando o Terraform

Como ativar a versão no balde S3 usando o Terraform
Infraestrutura como código ou IAC é uma nova abordagem na qual a codificação é usada para configurar uma infraestrutura. Isso significa que, em vez de configurar manualmente VMs, redes e outros componentes de uma rede, escrevemos código que descreve a infraestrutura e simplesmente executamos esse código para obter o estado desejado. Terraform emergiu como uma ferramenta excepcional que usa a abordagem IAC.

Como muitas outras tarefas, o Terraform pode ser usado para criar e gerenciar um balde da AWS S3. Versão significa manter várias versões, ou você pode simplesmente chamá -las de variantes de um arquivo. A versão no AWS S3 pode ser usada para manter e restaurar diferentes variantes do objeto armazenado dentro dele. Isso tem muitos benefícios. Por exemplo, podemos restaurar itens excluídos acidentalmente.

O que vamos cobrir?

Neste guia, veremos como ativar a versão em um balde S3 usando o Terraform. Estamos trabalhando no Ubuntu 20.04 Sistema para este tutorial. Vamos começar agora.

O que você precisará?

  1. Noções básicas de Terraform
  2. Acesso à internet
  3. Terraform instalado em seu sistema. Verifique executando o Terraform -version.

Criando o balde AWS S3 usando o Terraform

Agora que vimos um pouco sobre o Terraform e, esperançosamente, você o teria instalado em nossa máquina local, podemos continuar nossa tarefa de trabalhar com S3. Como mencionado anteriormente, o Terraform usa vários arquivos de configuração para o fornecimento de recursos, e cada um desses arquivos deve residir em sua respectiva pasta/diretório de trabalho. Vamos criar um diretório para esse fim.

Passo 1. Comece criando uma pasta que conterá todos os arquivos de configuração e alterará seu diretório de terminal para o seguinte:

$ mkdir linuxhint-terraform && CD Linuxhint-Terraform

Passo 2. Vamos criar nosso primeiro arquivo de configuração, “Variáveis.tf ”, Isso conterá as informações sobre nossa região da AWS e o tipo de instância que queremos usar:

$ nano variáveis.tf

Agora, coloque o seguinte texto dentro dele e salve o arquivo:

variável "aws_region"
Descrição = "A região da AWS para criar o balde S3 em."
default = "EUA-East-1"

variável "bucket_name"
Descrição = “Um nome único para o balde”
default = “tecofers-4”

"TECOFERS-4" é o nome do nosso balde, e você pode usar seu próprio nome aqui.

etapa 3. 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 = var.aws_region
shared_credentials_file = "/home/your_user_name/.AWS/credenciais "
perfil = "perfil1"

Recurso "AWS_S3_BUCKET" "Bucket1"
Bucket = var.bucket_name
tags =
Name = "Exemplos3bucket"


Recurso "AWS_S3_BUCKET_ACL" "Bucket1"
Bucket = var.bucket_name
ACL = "privado"

Recurso "AWS_S3_BUCKET_VERSIONING" "Bucket_versioning"
Bucket = var.bucket_name
Versioning_configuration
status = "ativado"

Mudar o "Seu nome de usuário" para o nome de usuário do seu sistema. Vamos ver os parâmetros usados ​​nos arquivos anteriores:

balde: É um parâmetro opcional quando especificado cria um novo balde. Se esse argumento não estiver presente, o Terraform dará ao balde um nome aleatório e único. O nome do balde precisa estar em minúsculas, com o comprimento não superior a 63 caracteres.

Shared_credentials_file: É o caminho do arquivo que contém as credenciais dos usuários da AWS.

Perfil: Ele especifica o perfil do usuário para criar o balde S3.

O recurso “AWS_S3_BUCKET” e “AWS_S3_BUCKET_ACL” Fornece um balde e um recurso ACL (configuração da ACL) para o balde. O "ACL" O argumento é opcional e fornece um conjunto de subsídios predefinidos projetados pela Amazon.

Da mesma forma, o recurso “AWS_S3_BUCKET_VERSIONING” Fornece um recurso para controle de versão em um balde S3. O bloco Versioning_Configuration definido neste bloco contém a configuração necessária para esse fim. O argumento do status é obrigatório e pode conter um único valor entre: ativado, desativado e suspenso.

Inicializando o diretório Terraform

Para baixar e instalar o provedor, definimos em nossa configuração e outros arquivos. Precisamos inicializar o diretório que contém este arquivo:

$ Terraform init

Construindo a infraestrutura

Agora que preparamos nossos arquivos de configuração, podemos aplicar as alterações usando o seguinte comando:

$ Terraform se aplica

Digitar "sim" no terminal quando solicitado. Quando o Terraform termina seu trabalho, a seguinte mensagem é exibida:

Verificando o procedimento

Agora, vamos verificar se o balde S3 desejado é criado. Vá para o console S3 e verifique os baldes disponíveis:

Como nosso balde foi criado com sucesso, agora podemos fazer upload de arquivos e criar novas pastas aqui.

Exclua os recursos que você criou quando não precisar deles. Isso o salvará de cobranças indesejadas na AWS:

$ Terraform Destruir

Conclusão

Neste guia, aprendemos sobre a ativação de versões em um balde S3 usando Terraform. Criamos um bucket e aplicou uma versão para ele. Há tantas coisas que podemos fazer usando o Terraform para simplificar nossa implantação de infraestrutura.