Reputation: 163
I am trying to build an AWS EC2 redhat instance using an AWS launch template with Terraform.
I can create an launch template with a call to Terraform's resource aws_launch_template
. My question is how do I use Terraform to build an EC2 server with the created launch template?
What Terraform aws provider resource do I call?
Many thanks for your help!
Upvotes: 14
Views: 18877
Reputation: 11
There is not = sign in launch_template block
launch_template {
id = "${aws_launch_template.foobar.id}"
version = "$$Latest"
}
Upvotes: 1
Reputation: 163
Here is the code I used to build an EC2 image with a launch template.
variable "aws_access_key" {}
variable "aws_secret_key" {}
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "us-east-1"
}
resource "aws_launch_template" "foobar" {
name_prefix = "foobar"
image_id = "ami-0080e4c5bc078760e"
instance_type = "t2.micro"
}
resource "aws_autoscaling_group" "bar" {
availability_zones = ["us-east-1a"]
desired_capacity = 1
max_size = 1
min_size = 1
launch_template = {
id = "${aws_launch_template.foobar.id}"
version = "$$Latest"
}
}
Many thanks Adil!
Upvotes: 2
Reputation: 16866
Welcome to Stack Overflow!
You can create an aws_autoscaling_group
resource to make use of your new Launch Template. Please see the example here for more details.
Code:
resource "aws_launch_template" "foobar" {
name_prefix = "foobar"
image_id = "ami-1a2b3c"
instance_type = "t2.micro"
}
resource "aws_autoscaling_group" "bar" {
availability_zones = ["us-east-1a"]
desired_capacity = 1
max_size = 1
min_size = 1
launch_template = {
id = "${aws_launch_template.foobar.id}"
version = "$$Latest"
}
}
Upvotes: 13