Terraform é usado para automatizar e gerenciar infraestruturas, plataformas e serviços usando linguagem declarativa. Construído para fins de infraestrutura como solução de código (IAC), a Terraform suporta vários provedores de serviços em nuvem. É uma ferramenta de código aberto desenvolvido por Hashicorp. Usando o IAC, podemos gerenciar a configuração de infraestrutura com arquivos de configuração. Para e.g., Podemos implantar, atualizar e gerenciar nossa infraestrutura, definindo os recursos necessários.
O que vamos cobrir?
Neste guia, aprenderemos sobre variáveis de terraform. Veremos por que as variáveis de terraform são importantes e como devemos defini -las e usá -las.
Por que você deveria se preocupar com variáveis de terraform?
Em Terraform, podemos atribuir valores aos argumentos por meio de literais como números inteiros e strings. Essa pode ser uma boa abordagem para pequenas configurações de infraestrutura, mas à medida que o tamanho da infraestrutura cresce, essa abordagem se torna muito ineficiente. Nesses casos, podemos usar as variáveis de entrada da Terraform, onde declaramos um valor em apenas um lugar e depois usamos esse valor em outras partes do código e arquivos, referenciando -os a. Essa abordagem é mais eficiente, pois torna o código reutilizável e composível.
Observe que o Terraform usa o termo 'variáveis' ou 'variáveis de terraforma' para referenciar variáveis de entrada.
Definindo uma variável
No Terraform, as variáveis são definidas dentro de um bloco 'variável', que possui o seguinte tipo de sintaxe:
variável variável_name argumentos
A própria palavra -chave 'variável' declara o bloco como um tipo de bloco 'variável'. O 'variável_name', após a palavra -chave variável, é o nome da variável que vamos definir. Este nome deve ser distinto de outras variáveis dentro do mesmo módulo. Usando esse nome, a variável recebe um valor de fora. Da mesma forma, usando o nome da variável, podemos fazer referência ao seu valor no módulo.
Observe que os seguintes identificadores reservados não podem ser usados para um nome de variável: fonte, versão, provedores, contagem, for_each, ciclo de vida, depende_on, moradores locais.
Argumentos para o bloco variável
Os seguintes argumentos podem ser declarados dentro de um bloco de tipo de variável:
padrão - ele define um valor padrão para o bloco. Uma variável é opcional se um valor padrão estiver presente. Este valor será usado se nenhum outro valor for especificado enquanto chama um módulo.
Tipo - ele especifica os tipos de valores que podem ser usados com a variável.
Descrição - É uma espécie de comentário sobre a própria variável.
Validação - é um bloco definir condições/verificações para uma variável.
sensível - ele esconde dados confidenciais a serem mostrados ao executar o comando 'plano' ou 'aplicar'.
Nullável - controla se a variável pode receber um valor no módulo.
Acessando os valores de uma variável
Para acessar um valor da variável de dentro do módulo, use o formato:
var.
Onde 'var' é um prefixo e é o rótulo após a palavra -chave 'variável'. Este valor atribuído de uma variável só pode ser acessado em expressões dentro do módulo onde foi definido. Como exemplo, considere uma variável 'chave' definida como:
variável “instance_type”
padrão = “T2.micro ”
Podemos fazer referência à variável acima da seguinte forma:
Recurso "AWS_INSTANCE" "Exemplo"
instance_type = "var.instance_type "
ami = var.image_id
Variáveis da linha de comando
Para atribuir um valor a uma variável na linha de comando, a Terraform usa a opção '-var'. Para e.g., Quando o Plano Terraform e o Comando Terraform Apply são executados, podemos fazer o seguinte:
1. Passando uma instância Ami-Id
$ Terraform Aplicar -var = "image_id = ami -xyz123"
2. Passando uma lista de instância ami-ids
$ Terraform Aplicar -var = 'image_id_list = ["ami -xyz123", "ami -abc456"]' -var = "instance_type = t2.micro "
3. Passando um valor de tipo de mapa
$ Terraform Aplicar -var = 'Image_Id_Map = "US-East-1": "AMI-XYZ123", "US-EAST-2": "AMI-ABC456"'
Arquivos de definições variáveis (.tfvars)
Quando há muitas variáveis, é uma boa ideia colocá -las em um arquivo de definição variável (a .arquivo tfvars ou .tfvars.arquivo json). Podemos então passar este arquivo na linha de comando da seguinte forma:
$ Terraform Aplicar -var -File = "Exemplo.tfvars "
Este arquivo será analisado automaticamente se for nomeado 'Terraform.tfvars '.
Observe que não colocamos este arquivo em nenhum sistema de controle de origem para evitar a exposição a dados confidenciais.
Além disso, se adicionarmos '.Auto 'para um nome de arquivo antes'.tfvars ', por exemplo, myfile.auto.TFVARS, este arquivo será carregado automaticamente sem especificar o sinalizador 'VAR-FILE'. É o mesmo que o 'Terraform.arquivo tfvars '.
variáveis ambientais
Variáveis de ambiente, com nomes prefixados com tf_var, podem ser usados para definir variáveis de entrada. Para e.g., "TF_VAR_MYKEY" se referirá ao valor de uma variável de Terraform chamada "MyKey". Para definir um único valor para essa variável de ambiente no Unix/Linux, use o formato:
$ Tf_var_mykey = “fhj7-47dd-hll02-pJU8”
Da mesma forma, para o sistema operacional Windows, use o formato:
Definir tf_var_mykey = “fhj7-47dd-hll02-pju8”
Como alternativa, também podemos usar o Terraform.arquivo tfvars.
Empacotando
Agora estamos finalmente fechando este artigo, embora haja muitas outras coisas para cobrir. Apresentamos uma visão de alto nível das variáveis de terraformação. Além do Terraform, também existem outras ferramentas como a AWS CloudFormation, Chef, Puppet, Ansible, e assim por diante. Cada ferramenta tem suas próprias vantagens e limitações. O benefício de usar o Terraform é que ele não está vinculado a um determinado provedor de serviços.