by XDK
18. September 2019 22:27
Explanation:
The user data is not executed due to the leading whitespaces in the following format
resource "aws_instance" "Terraform-Demo" {
ami = "${lookup(var.RegionToAmazonAMI, var.Region)}"
instance_type = "t2.micro"
key_name = "myaccountkey"
vpc_security_group_ids = ["${aws_security_group.webserver-sg-2.id}"]
user_data = <<EOF
#cloud-boothook
#! /bin/bash
sudo apt update
sudo apt install -y apache2
IP_ADDR=$(curl http://169.254.169.254/latest/meta-data/public-ipv4)
sudo chmod 777 /var/www/html
sudo echo "Terraform instance 2 with IP IP_ADDR" > /var/www/html/index.html
sudo echo "Terraform instance 2 with IP IP_ADDR -- OK" > /var/www/html/health.html
EOF
provisioner "local-exec" {
command = "echo ${aws_instance.Terraform-Demo.public_ip} > testP.txt"
}
tags = {
Name = "TerraformDemo"
}
}
Solution:
Either add hyphen in <<-EOF to trim the leading whitespaces or remove the whitespaces manually