Ao executar o comando terraform apply
uma nova instância não é criada apenas atualizada, e o terraform parece não reconhecer o comando dentro do user_data = <<-EOF EOF
.
Ao executar o comando terraform apply
uma nova instância não é criada apenas atualizada, e o terraform parece não reconhecer o comando dentro do user_data = <<-EOF EOF
.
[Premissa] : Capitulo 2 ter funcionado corretamente.
[Solução] : Analisei varios comentários e soluções propostas para o problema, estava com o mesmo problema informado acima. Para solucionar é necessário destuir a instância/maquina atual e criar uma nova (Pronto é somente isso).
Então é simples, apenas executar o:
terraform destroy
terraform apply
[ATENÇÃO]: Necessário verificar os novos dados da conexao, string do ssh e ip publico.
O terraform não reconhece que precisar criar uma nova instância quando adicionamos o comando o user_data (A priori no arquivo atual, parece não reconhecer o comando dentro de user_data como um script a ser executado).
[BONUS] : Adicionei ao codigo o comando user_data_replace_on_change = true
.Fiz alguns testes e observei, que apos destruir a instancia antiga e criar uma nova, todas as alterações que fiz dentro do "user_data", o terraform ""passou a reconhecer as alterações", e automaticamente, apos executar o terraform apply
passou a destruir e recriar minhas instancias automaticamente. Não sendo mais necessário executar o "terraform destroy" manual.
[Importante] : Todos os passos até o final do capitulo 2 tenham funcionado corretamente.
Vou postar meu codigo caso tenham duvida da estrutura.
#configuracao provedor
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.16"
}
}
required_version = ">= 1.2.0"
}
#configuracao regiao
provider "aws" {
profile = "default"
region = "us-west-2"
}
resource "aws_instance" "app_server" {
ami = "ami-03f65b8614a860c29"
instance_type = "t2.micro"
key_name = "sua_chave"
user_data = <<-EOF
#!/bin/bash
cd /home/ubuntu
echo "<h1>this is man/h1>" > index.html
nohup busybox httpd -f -p 8080 &
EOF
user_data_replace_on_change = true
tags = {
Name = "Instancia NEW EC2 X2"
}
}