Infraestrutura como código com Terraform
Rafael Dutra
https://www.linkedin.com/in/rafaeldutra/
Rafael Dutra
Infraestrutura como código
O que é Terraform
O que Terraform faz
O que Terraform não faz
Comandos básicos
#rafael@shell:/home/rafael/aws
├── ec2.tf
├── provider.tf
└── variables.tf
Exemplo de arquivos .tf
resource "aws_instance" "web" {� ami = "ami-0378588b4ae11ec24"� instance_type = "t2.micro"�
tags = {� Name = "Web",
Application = "Application 1"� }�}
Código AWS
resource "digitalocean_droplet" "web" {
image = "ubuntu-18-04-x64"
name = "web-1"
region = "nyc3"
size = "s-1vcpu-1gb"
}
Código Digital Ocean
Guardando estado
Módulos
module "droplet-web-1" {
source = "raffaeldutra/droplet/digitalocean"
version = "1.0.4"
name = "web"
tags = [
"environment:dev"
"project:web-app"
"team-web-app"
]
}
Módulo Digital Ocean
Trabalhando com environments
Comandos para environments
module "droplet-web-1" {
source = "raffaeldutra/droplet/digitalocean"
version = "1.0.4"
name = "web-${terraform.workspace}"
tags = [
"environment:${terraform.workspace}",
"project:${terraform.workspace}-web-app",
"team-web-app"
]
}
Usando environments
Criando infra em pedaços
Demonstrações
Perguntas?
https://linkedin.com/in/rafaeldutra
https://registry.terraform.io/modules/raffaeldutra
https://galaxy.ansible.com/raffaeldutra
https://hub.docker.com/u/raffaeldutra
https://app.vagrantup.com/raffaeldutra/
https://github.com/raffaeldutra
https://gitlab.com/raffaeldutra
https://speakerdeck.com/raffaeldutra
Rafael Dutra
Obrigado