inital commit
This commit is contained in:
73
main.tf
Normal file
73
main.tf
Normal file
@@ -0,0 +1,73 @@
|
||||
provider "aws" {
|
||||
region = local.region
|
||||
}
|
||||
|
||||
locals {
|
||||
region = "eu-central-1"
|
||||
name = "hgn" ###change this to your name
|
||||
}
|
||||
|
||||
### create a key pair
|
||||
module "key_pair" {
|
||||
source = "terraform-aws-modules/key-pair/aws"
|
||||
|
||||
key_name = "${local.name}-test-key"
|
||||
create_private_key = true
|
||||
}
|
||||
|
||||
|
||||
### create a vpc
|
||||
module "vpc" {
|
||||
source = "terraform-aws-modules/vpc/aws"
|
||||
version = "5.13.0"
|
||||
|
||||
name = "${local.name}-vpc"
|
||||
cidr = "10.0.0.0/16"
|
||||
|
||||
azs = ["eu-central-1a", "eu-central-1b", "eu-central-1c"]
|
||||
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
|
||||
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
|
||||
|
||||
enable_nat_gateway = true
|
||||
single_nat_gateway = true
|
||||
|
||||
enable_dns_hostnames = true
|
||||
enable_dns_support = true
|
||||
|
||||
tags = {
|
||||
terraform = "true"
|
||||
environment = "test"
|
||||
creator = "${local.name}"
|
||||
}
|
||||
}
|
||||
|
||||
### create a security group
|
||||
module "web_server_sg" {
|
||||
source = "terraform-aws-modules/security-group/aws//modules/http-80"
|
||||
name = "${local.name}-web-server-sg"
|
||||
description = "Security group for web server of ${local.name}"
|
||||
vpc_id = module.vpc.vpc_id
|
||||
ingress_cidr_blocks = ["0.0.0.0/0"]
|
||||
ingress_rules = ["http-80-tcp", "https-443-tcp", "ssh-tcp"]
|
||||
}
|
||||
|
||||
|
||||
|
||||
### create an ec2 instance
|
||||
module "ec2_instance" {
|
||||
source = "terraform-aws-modules/ec2-instance/aws"
|
||||
name = "${local.name}-web-server"
|
||||
|
||||
instance_type = "t2.micro"
|
||||
key_name = module.key_pair.key_pair_name
|
||||
monitoring = true
|
||||
vpc_security_group_ids = [ module.web_server_sg.security_group_id ]
|
||||
subnet_id = module.vpc.public_subnets[0]
|
||||
user_data = file("userdata.sh")
|
||||
|
||||
tags = {
|
||||
Terraform = "true"
|
||||
Environment = "test"
|
||||
creator = "${local.name}"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user