From 01cad92cb6075f562b6dda0bdc2cf92112886f9f Mon Sep 17 00:00:00 2001 From: Stuart Stent Date: Wed, 23 Oct 2019 14:04:51 -0400 Subject: [PATCH] example ebs mapper --- deploy/main.tf | 13 +++++++++++ module/main.tf | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 deploy/main.tf create mode 100644 module/main.tf diff --git a/deploy/main.tf b/deploy/main.tf new file mode 100644 index 0000000..32e76c6 --- /dev/null +++ b/deploy/main.tf @@ -0,0 +1,13 @@ +provider "aws" { + version = "~> 2.0" + region = "us-east-2" +} + +module "servers" { + source = "../test" + num_instances = 2 + enable_mysql = false + enable_mongo = true + #mongo_disk_size = [300,100,100] +} + diff --git a/module/main.tf b/module/main.tf new file mode 100644 index 0000000..355509f --- /dev/null +++ b/module/main.tf @@ -0,0 +1,58 @@ +variable "ebs_kms_key" { default = null} + +variable "mongo_disk_size_default" { default = 100} +variable "mongo_disk_size" { default = null} + +variable "mongo_disk_type_default" { default = 100} +variable "mongo_disk_type" { default = null} + +variable "mongo_disk_encryption" { default = null} +variable "mongo_disk_kms_key" { default = null} + +variable "mongo_mount_default" { default = "mongo"} +variable "mongo_device_name" { default = "/dev/sdh"} + +variable "mysql_disk_size" { default = null} +variable "ifs_disk_size" { default = null} + +variable "num_instances" { default = 2} +variable "enable_mysql" { default = false} +variable "enable_mongo" { default = false} +variable "enable_ifs" { default = false} + +provider "aws" { + version = "~> 2.0" + region = "us-east-2" +} + +resource "aws_instance" "test" { + count = var.num_instances + ami = "ami-05c1fa8df71875112" + instance_type = "t2.micro" + availability_zone = "us-east-2a" + tags = { + Name = "test${count.index}" + Count = count.index + } +} + +resource "aws_ebs_volume" "mongo" { + count = var.enable_mongo == true ? var.num_instances : 0 + availability_zone = "us-east-2a" + size = var.mongo_disk_size != null ? var.mongo_disk_size : var.mongo_disk_size_default + encrypted = var.mongo_disk_encryption != null ? var.mongo_disk_size[count.index] : true + type = var.mongo_disk_type != null ? var.mongo_disk_size[count.index] : var.mongo_disk_type_default + kms_key_id = var.mongo_disk_kms_key != null ? var.mongo_disk_kms_key : var.ebs_kms_key + tags = { + Name = "Mongo${count.index}" + Count = count.index + Mount = "mongo" + } +} + +resource "aws_volume_attachment" "mongo_att" { + count = var.enable_mongo == true ? var.num_instances : 0 + device_name = var.mongo_device_name + volume_id = aws_ebs_volume.mongo[count.index].id + instance_id = aws_instance.test[count.index].id +} \ No newline at end of file