Terraform Flashcards
IaC utiliza ________ para_________
Scripts e Ferramentas / automatizar o provisionamento de infraestrutura via API’s
IaC permite fazer ___________ de ______________ usando___________ de forma _______________
‘deploys’ /
Infraestrutura/
Arquivos e Scripts/
Automatizada
IaC é Imutável?
Sim. Ex: Docker Images.
Se precisar fazer uma atualização, sobe outra imagem.
Caso ocorra algum imprevisto, retorna à versão anterior.
Vantagens de usar IaC
Automação
Velocidade
Segurança e Consistência
Reuso
Controle de Versão
Documentação
Principal diferença entre Terraform e Ansible.
Terraform - Provisiona, Cria o Recurso
Ansible - Gerencia, administra o mesmo.
Criando bloco resource na AWS
resource “aws_instance” “webserver” {
ami = “ami-830c94e3”
instance_type = “t2.medium”
}
Criando bloco resource na Azure
resource “azurerm_resource_group” “my-rg” {
name = “tf-rg”
location = “braziliansouth”
}
a sintaxe HCL é composta basicamente de ___________
Blocos
Argumentos
Exemplos de blocos na sintaxe HCL
Locals
Terraform
Providers
Resources
Data
Modulo
Variavel
Output
Pode-se afirmar queTerraform e Provider também são 2 blocos de construção em um arquivo .tf?
CORRETO.
Um ponto de atenção importante nesses blocos de construção são as ___________ dos providers, pois os plugins de cada versão são específicos.
VERSÕES
O que quer dizer a RESTRIÇÃO DE VERSÃO anotada como “~> 1.2.0”
Que podem ser utilizadas as versões de 1.2.0 até 1.2.9.
A 1.3 já NÃO poderia ser utilizada.
O diretório onde ficam armazenados os arquivos .tf é denominado__________________
CONFIGURATION DIRECTORY
Para ambientes em múltiplos Providers, recomenda-se o uso de ___________
módulos
Não espicificar a versão do provider é perigoso?
Ex: oci = {
source = “hashicorp/oci”
}
Sim, é bastante arriscado. Ele trará a versão latest e há grande probabilidade de o código quebrar.
Qual a vantagem do uso de variáveis?
Evita-se o Hard-code/ estático e adota-se um script inteligente /dinâmico.
Questão de certificação - o que determina que o bloco abaixo é do tipo variables?
variable “name” {
default = “value”
type = string
description = “Explain the use of the variable”
}
a palavra variable na primeira linha do código.
Definindo recursos com o uso de variáveis -> Instancia Aws com imagem.
resource “aws_instance” “webserver” {
ami = var.ami
instance_type = var.instance_type
}
Precedência de definição de variável
O Terraform considera as variáveis na seguinte ordem:
1) Flags: -var e -var-file
2) Arquivos *.auto.tfvars or *.auto.tfvars.json
3) Arquivo terraform.tfvars.json
4) Arquivo terraform.tfvars
5) Variável de Ambiente
Output Variable
Equivalentes aos “retornos” de funções, por exemplo.
Retorna e armazena valores/resultados dos recursos criados.
Caso de Uso para Output Variables.
Exibir na tela, detalhes do recurso criado.
Prover valores de um bloco para outro.
Prover valores para outras ferramentas IaC
Acessar ‘fonte de dados’ do ‘remote state’.
Módulos.
Terraform Core Workflow
Consiste em escrever a configuração,
inicializar os plug-ins necessários (terraform init),
planejar mudanças na infraestrutura (terraform plan) - review
e aplicá-las (terraform apply) - deploy.
Terraform Subcommands fmt
Usado para reescrever os arquivos de configuração para um formato e estilo canônicos(simples).
Terraform Subcommands validate
Valida a sintaxe e a configuração
Terraform Subcommands Show
Mostra os detalhes dos recursos provisionados
Terraform Subcommands Providers
Mostra os provedores necessários para a configuração em questão
Terraform Subcommands output
Exibe todos os valores de saída(outputs)
Terraform Subcommands console
Console interativo para avaliar expressões, testar interpolações.
o que são módulos no Terraform?
Consistem em diretórios com arquivos responsáveis por criar um recurso.
Os módulos podem ser Locais ou Remotos.
Permitem utilizar vários recursos em conjunto.
Como o TF funciona?
Arquivos de Config(Segmentados).
Main.tf
resources.tf
variables.tf
Ainda há o Terraform.exe(binário) e tudo é gerenciado pelo Terraform state.