5
respostas

atualizar infra estrutura

sempre que eu executo plan e depois apply, a instancia é destruída e recriada outra instancia.

Caso eu tenha uma intancia já montada e depois quera apenas incluir um security group sem destruir a instancia, como posso fazer se no apply ele destrói a instancia ?

5 respostas

Olá Renan, tudo bem? Poderia disponibilizar seus códigos pra gente poder verificar, porque isso é um comportamento anormal, não era pra destruir e recriar instâncias não! Se puder disponibilizar imagem pra gente analisar seria bom também!

disponibilizei o projeto em https://github.com/JonathanMCosta/terraform

Renan, só não entendi muito bem essa estrutura de pastas, uma tem um nome de Jenkins e a outra tem o nome de Modules, considerei na minha analise a pasta Modules que é onde existe o arquivo security-group.tf. Bem, primeira coisa que você precisa verificar é as variáveis utilizadas no "aws_security_group" "security_group", porque você usa algumas sem valores como i_from_port, i_to_port, verifica os valores dessas variáveis e tenta executar os comando terraform plan e depois terraform apply mantendo a ordem que já estava configurada anteriormente, como por exemplo, se a máquina foi criada com o "aws_security_group" "acesso-ssh" então mantenha o mesmo como primeiro item da lista de vpc_security_group_ids no arquivo "main.tf".

Fala pra gente o resultado!

Essa com o nome Jenkins é uma maquina ec2 que crio instalando o jenkins.

A pasta modules é onde crio o ambiente comum, pois caso queira criar outra maquina futuramente, não precisarei ficar repetindo códigos. Por exemplo se futuramente eu quiser criar uma maquina ec2 com o sonarQube instalado, eu apenas crio uma pata pra ela e "chamo" os modulos passando os valores pra ele.

Eu fiz o que você instruiu, retirei a parta modules e executei com apenas um arquivo main.tf e mesmo assim continua destruindo a maquina e recriando outra. Seria algo referente a versão ?

Abaixo o código que estou executando:

provider "aws" {
  region     = "us-west-2"
  version    = "~> 2.0"
}

resource "aws_instance" "dev" {
  ami           = "ami-0d1cd67c26f5fca19"
  instance_type = "t2.micro"
  key_name      = "terraform-aws"
  tags = {
    Name = "dev"
  }
  vpc_security_group_ids = ["${aws_security_group.acesso-ssh.id}"]
}

resource "aws_security_group" "acesso-ssh" {
  name        = "acesso-ssh"
  description = "acesso-ssh"

  ingress {
    description = "TLS from VPC"
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  tags = {
    Name = "ssh"
  }
}

Mesmo executando esse código, quando executo novamente (terraform plan, terraform apply), na AWS ele termina uma máquina e cria outra.

Renan, você poderia colocar aqui no forúm os logs de quando você executa os comandos terraform plan e terraform apply? Porque, não faz muito sentido, o recurso só é recriado se as mudanças forem muito drásticas, assim não sendo possível fazer apenas uma alteração, preciso ver os logs, no log principalmente do terraform plan ele mostra o que não é possível alterar e por tanto terá que recriar a instância. Então coloca aqui os logs principalmente do terraform plan para eu poder verificar!