Вы должны убедиться, что вход в систему, ставший root и выполняющий это, работает для запуска Tomcat:
#!/bin/bash
sudo yum -y install tomcat.noarch
sudo yum -y install tomcat-admin-webapps.noarch
sudo yum -y install tomcat-webapps.noarch
sudo yum -y install tomcat-lib.noarch
sudo service tomcat start
Если нет, он также не может работать как user_data, Убедитесь, что вы проверили его в интерактивном режиме, прежде чем пытаться использовать его как user_data .
. Вы использовали template в user_data, например:
user_data = "${data.template_file.ec2_user_data.template}"
template получит внутренне закодированную версию исходного файла шаблона без замены переменных. У вас нет переменных в шаблоне, поэтому, скорее всего, текстовая кодировка приведет к сбою. Отправка этого как user_data в моем опыте никогда не работает, так как используемая кодировка текста плохо взаимодействует с cloud-init или bash. Вы можете проверить /var/log/cloud-init-output.log на наличие ошибок.
Вместо этого вы должны использовать отрисованный в user_data, например:
user_data = "${data.template_file.ec2_user_data.template}"
Полный блок исправленных ресурсов:
resource "aws_instance" "lab_ec1" {
ami = "ami-009d6802948d06e52"
instance_type = "t2.micro"
key_name = "lab_keypair_1"
#key_name = "${aws_key_pair.lab_key_pair.name}"
subnet_id = "${aws_subnet.lab_subnet1.id}"
vpc_security_group_ids = [
"${aws_security_group.lab_bastion_sg.id}",
]
associate_public_ip_address = true
user_data = "${data.template_file.ec2_user_data.rendered}"
tags = {
Name = "lab_ec1"
}
}