diff --git a/terraform/aws/asg-elb/data.tf b/terraform/aws/asg-elb/data.tf new file mode 100644 index 0000000..57bf5e5 --- /dev/null +++ b/terraform/aws/asg-elb/data.tf @@ -0,0 +1,16 @@ +data "aws_ami" "atomic_ami" { + most_recent = true + owners = ["410186602215"] + filter { + name = "name" + values = ["CentOS Atomic Host 7*"] + } + filter { + name = "virtualization-type" + values = ["hvm"] + } +} + +data "aws_vpc" "default_vpc" { + default = true +} diff --git a/terraform/aws/asg-elb/main.tf b/terraform/aws/asg-elb/main.tf new file mode 100644 index 0000000..0c650b2 --- /dev/null +++ b/terraform/aws/asg-elb/main.tf @@ -0,0 +1,47 @@ +# Create an ELB +resource "aws_elb" "elb" { + name = "elb-test" + subnets = ["subnet-69e39630","subnet-e0702d97","subnet-c4e9d6a1"] + cross_zone_load_balancing = true + connection_draining = true + security_groups = ["${var.secgrp}"] + + listener { + instance_port = "22" + instance_protocol = "tcp" + lb_port = "22" + lb_protocol = "tcp" + } + + tags { + Name = "elb-test" + } +} + +# Create a launch configuration +resource "aws_launch_configuration" "lc" { + name = "lc-test" + image_id = "${data.aws_ami.atomic_ami.id}" + instance_type = "${var.flavor}" + security_groups = ["${var.secgrp}"] + key_name = "${var.keypair}" + + lifecycle { + create_before_destroy = true + } +} + +# Create an Auto Scaling group +resource "aws_autoscaling_group" "asg" { + name = "asg-test" + availability_zones = ["us-west-2a","us-west-2b","us-west-2c"] + min_size = "2" + max_size = "2" + desired_capacity = "2" + launch_configuration = "${aws_launch_configuration.lc.name}" + load_balancers = ["elb-test"] + + lifecycle { + create_before_destroy = true + } +} diff --git a/terraform/aws/asg-elb/provider.tf b/terraform/aws/asg-elb/provider.tf new file mode 100644 index 0000000..d7c130e --- /dev/null +++ b/terraform/aws/asg-elb/provider.tf @@ -0,0 +1,3 @@ +provider "aws" { + region = "${var.user_region}" +} diff --git a/terraform/aws/asg-elb/variables.tf b/terraform/aws/asg-elb/variables.tf new file mode 100644 index 0000000..5108f1c --- /dev/null +++ b/terraform/aws/asg-elb/variables.tf @@ -0,0 +1,19 @@ +variable "user_region" { + type = "string" + description = "AWS region in which all resources will be created" +} + +variable "keypair" { + type = "string" + description = "AWS SSH keypair to use to connect to instances" +} + +variable "flavor" { + type = "string" + description = "AWS type to use when creating instances" +} + +variable "secgrp" { + type = "string" + description = "ID of VPC security group to use" +}