GithubHelp home page GithubHelp logo

estudos-terraform's Introduction

estudos-terraform

Adicionar credentials com profile

aws configure --profile profile-name

Lista usuários configurados da aws na máquina

aws configure list 

Terraform plan para saber o que ele irá modificar

terraform plan
``

### Terraform apply para aplicar as mudanças

terraform apply ``

Observação

Não é necessário informar o caminho shared_credentials_file, caso você tenha configurado um profile para credenciais na sua máquina

provider "aws" {
    #shared_credentials_file="~/.aws/credentials"
    profile="terraform-script"
    region="us-east-1"
}

Mostra os resultados dos terraforms aplicados

terraform show

Destroe tudo que foi criado

terraform destroy

Força destruição e criação de recurso

terraform taint [nome do recurso]

Remove o taint do recurso

terraform untaint [nome do recurso]

Terraform Console para manipular variáveis de recursos

terraform console
// [recurso.nome.variable]

Variáveis que não apresentam Default serão solicitadas no apply do terraform

variable "instance_type" {
  
}

variable "ami"{
    default="ami-0b69ea66ff7391e80"
}

Passar valor da variável por linha de comando

terraform plan -var 'instace_type=t2.micro'

Arquivo de variáveis arquivo.tfvars

terraform plan -var-file="dev.tfvars"

Name de uma instancia EC2. Tag Name será o nome mostrado no portal da aws

variable "tags" {
    type="map"
    default={
        "Name"="NodeJs"
        "Env"="Dev"
    }
  
}

Comando para formatar arquivos terraform

terraform fmt

Terraform get baixa modules

terraform get

Terraform import state

terrafomr import [resource]  [resource_name]

terraform graph - salvar em arquivo .dot

terraform graph > base.dot

Backend Terraform para guardar o terraform state

terraform{
  backend "s3"{
    bucket="${var.bucket_name}"
    key="ec2/ec2.tfstate"
    region="${var.region}"
  }
}

Para passar parametros no terraform init para backend

terraform init -backend=true -backend-config="bucket_name=jax-remote-state-dev" -backend-config="region=us-east-1 -backend-config="profile=terraform"

Data source permite que dados sejam buscados e computados de algum lugar para ser usado pelo terraform


data "aws_ami" "ubuntu" {
  owners      = ["amazon"]
  most_recent = true
  name_regex = "ubuntu"
}

resource "aws_instance" "web" {
  ami           = "${data.aws_ami.ubuntu.id}"
  instance_type = "${var.instance_type}"

}

Terraform Init commando com parametros

terraform init -backend=true \
> -backend-config="region=us-east-1" \
> -backend-config="bucket=jax-remote-state-dev" \
> -backend-config="key=ec2/wc2.tfstate" \
> -backend-config="profile=terraform"

Executar comandos terraform com debug

TF_LOG=debug terraform [command]

Forçar o output por comando

terraform output ami

É possivel criar variáveis locais

locals {
  instan_id = "${data.terraform_remote_state.web.id}" 
  ami = "${data.terraform_remote_state.web.ami}" 
  arn = "${data.terraform_remote_state.web.arn}"
}

Chamando 

module "bucket"{
    source="../../04-Modules/S3"
    name="${var.bucket_name}-${var.env}"
    versioning=true

    tag ={
        "Env"="${var.env}"
        "Name" = "Terraform Remote State"
    }
    object_key="instances/instances-${local.ami}.txt"
    object_source="output.txt"
}


estudos-terraform's People

Contributors

jaxstar2 avatar joaopfsouza avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.