Slide 1

Slide 1 text

Introdução ao Terraform Construindo blocos Rafael Dutra

Slide 2

Slide 2 text

Rafael Dutra ● Ocupação: Administrador de Sistemas e entusiasta Dev*Ops ● Segurança da Informação - UNISINOS 2008 - ? ● Linux desde 2005 ● Desenvolvedor: PHP (Laravel), Shell Script, Ruby ● Habilidades: Vagrant, Puppet, Terraform, Ansible, Linux, Continuous Integration, Continuous Deployment/Delivery, Shell Scripting, IaC, Docker, AWS, Android, Video Games (FPS e RPG)...

Slide 3

Slide 3 text

O que é Terraform? Terraform é uma ferramenta que provê Infraestrutura como código (IaC), permitindo criar e versionar nossa infraestrutura em diferentes Provedores Cloud ou ainda equipamentos de rede (Cisco ASA, F5 e etc).

Slide 4

Slide 4 text

O que Terraform faz ● Cria a infraestrutura “básica”: máquinas, interfaces de rede, balanceadores de carga, discos, redes, vpn e etc. ● Replica a mesma infraestrutura para diferentes regiões, ou ainda para diferentes ambientes. ● Melhor rastreio de sua infraestrutura. ● Mudanças incrementais.

Slide 5

Slide 5 text

O que Terraform não faz ● Gerenciamento de configuração. ○ precisamos de outra ferramenta para isso, como Ansible, Chef ou Puppet. ○ ..mas, é possível fazer alguns “truques”. ● Terraform não é agnóstico, é preciso escrever novamente o recurso para o Provedor de Cloud que você deseja utilizar.

Slide 6

Slide 6 text

● terraform init ● terraform plan ● terraform apply ○ -auto-approve Comandos básicos

Slide 7

Slide 7 text

Código AWS resource "aws_instance" "web" { ami = "ami-8eecc9e2" instance_type = "t2.micro" tags { Name = "puppet-master-1" } }

Slide 8

Slide 8 text

Código Google Cloud resource "google_compute_instance" "default" { name = "test" machine_type = "n1-standard-1" zone = "us-central1-a" boot_disk { initialize_params { image = "debian-cloud/debian-8" } }

Slide 9

Slide 9 text

● Utilizado pelo terraform para mapear recursos reais com a sua configuração. ● Performance para infraestruturas grandes. ● terraform.tfstate é um simples arquivo json. ● Ordem de dependência. ● https://raw.githubusercontent.com/mdb/te rraform-example/master/terraform/terrafo rm.tfstate terraform.tfstate

Slide 10

Slide 10 text

● Baixando Terraform. ● Credenciais AWS. ● AWS como Cloud Provider. ○ EC2 machine ○ VPC ■ Subredes ■ Rotas Demonstração

Slide 11

Slide 11 text

https://www.terraform.io https://www.terraform.io/docs/configuration/index.html https://www.terraform.io/docs/providers/type/network-index.html https://www.terraform.io/docs/state/index.html https://www.terraform.io/docs/providers/index.html https://www.terraform.io/docs/modules/index.html https://github.com/raffaeldutra/docker-terraform https://hub.docker.com/r/raffaeldutra/docker-terraform Links

Slide 12

Slide 12 text

@raffaeldutra https://rafaeldutra.me https://hub.docker.com/u/raffaeldutra https://linkedin.com/in/rafaeldutra [email protected] https://github.com/raffaeldutra https://gitlab.com/raffaeldutra https://speakerdeck.com/raffaeldutra RAFAEL DUTRA

Slide 13

Slide 13 text

Obrigado