Create Launch Template
# Launch Template Resource
resource "aws_launch_template" "my_launch_template" {
name = "launch-template"
description = "My Launch Template"
image_id = data.aws_ami.amzlinux2.id
instance_type = var.instance_type
vpc_security_group_ids = [module.private-secgroup.security_group_id]
key_name = var.instance_keypair
#user_data = filebase64("${path.module}/script.sh")
user_data = base64encode(templatefile("${path.module}/script.tmpl",{rds_db_endpoint = module.master.db_instance_address}))
ebs_optimized = false # not support for t2.micro/ t3.micro uwu
#default_version = 1
update_default_version = true
# block_device_mappings {
# device_name = "/dev/sda1"
# ebs {
# volume_size = 10
# delete_on_termination = true
# volume_type = "gp2" # default is gp2
# }
# }
monitoring {
enabled = false
}
tag_specifications {
resource_type = "instance"
tags = {
Name = "private_instance"
}
}
}
- Template for automating script for Web server -> PHP website, apache2
#! /bin/bash
sudo yum update -y
sudo yum install git -y
sudo yum install php php-pdo php-mysql -y
sudo yum install php-pdo php-mysqlnd -y
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
sudo usermod -a -G apache ec2-user
sudo chown -R ec2-user:apache /var/www
cd /var/www
git clone https://github.com/lunatic-def/temp.git
mkdir inc
mv /var/www/temp/db_config.inc /var/www/inc
mv /var/www/temp/Website.php /var/www/html
sudo systemctl restart httpd