Contents of main project file - mainproject.tf
###############################################################
# A Mini project file to create a single instance using
# variables and paremeters listed in terraform.tfvars file.
# Please make sure that both files have correct extensions and
# live within same directory for terraform to run without any
# additional parameters. A typical execution plan will include
# following commands or steps;
# variables and paremeters listed in terraform.tfvars file.
# Please make sure that both files have correct extensions and
# live within same directory for terraform to run without any
# additional parameters. A typical execution plan will include
# following commands or steps;
# terraform init
# terraform plan
# terraform apply
# terraform destroy
###############################################################
###############################################################
# Variables used in this script
###############################################################
###############################################################
variable "aws_access_key" {}
variable "aws_secret_key" {}
variable "aws_private_key_path" {}
variable "aws_key_name" {}
variable "aws_instance_ami" {}
variable "aws_region" {}
variable "aws_vpc_security_group_id_1" {}
###############################################################
# Providers list
###############################################################
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "${var.aws_region}"
}
###############################################################
# Resources to implement
###############################################################
resource "aws_instance" "web" {
ami = "${var.aws_instance_ami}"
instance_type = "t2.micro"
key_name = "${var.aws_key_name}"
vpc_security_group_ids = ["${var.aws_vpc_security_group_id_1}"]
connection {
user = "ec2-user"
private_key = "${file(var.aws_private_key_path)}"
}
provisioner "remote-exec" {
inline = [
"sudo yum update -y",
"sudo yum install httpd -y",
"sudo service httpd start",
"sudo chkconfig httpd on"
]
}
}
###############################################################
# Output data
###############################################################
output "aws_instance_public_dns" {
value = "${aws_instance.web.public_dns}"
}
###############################################################
# End of script
###############################################################
Contents of terraform.tfvars
###############################################################
# Basic Access Parameters and details
###############################################################
aws_access_key = "AWSACCESSKEYHERE"
aws_secret_key = "AWSSECRETKEYHERE"
aws_private_key_path = "C:\\PATH\\TO\\KEYPAIR.PEM"
aws_key_name = "AWSKEYPAIRNAME"
aws_region = "AWSREGIONNAME"
aws_instance_ami = "AWSAMIID"
aws_vpc_security_group_id_1 = "AWSSECURITYGROUPID"
###############################################################
# End of Basic Access Parameters and details
###############################################################