123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /*
- * https://wiki.nuxeo.com/display/INFRA/Cloud+Provisioning
- * 1) Create Public Subnet with a /24 size. One private Subnet to run Nuxeo and at least 2 Private Subnets for Data
- * 2) Create a NAT Gateway in one of the Public Subnets
- * 3) Create a Route with the Internet Gateway as default route, associate it with the Public Subnet(s)
- * 4) Create a Route with the NAT Gateway as default route, *that should be associated to all Private Subnets when they are created*
- * 5) Create a Security Group for Bastion Hosts that accepts SSH from anywhere
- * 6) Create a Security Group for ELBs that accepts HTTP and HTTPS from anywhere
- * 7) Create a Bastion Host with bastion host SG associated to ti, install NTP and Userify on it
- */
- ///////////////////////////////////////////////////////////////////////
- // RESOURCES
- ///////////////////////////////////////////////////////////////////////
- resource "random_id" "customer" {
- byte_length = 8
- }
- module "net" {
- source = "./net/"
- stack_name = "${var.stack_name}"
- region = "us-west-2"
- vpc_id = "${var.vpc_id}"
- public_subnets = ["10.0.10.0/24"]
- private_subnets = ["10.0.11.0/24"]
- private_db_subnets = ["10.0.100.0/24","10.0.101.0/24"]
- }
- #-------------
- # DNS Entry for Cloud Customer
- #-------------
- #resource "aws_route53_record" "dns" {
- # zone_id = "Z1EFT3O5K9NMCJ" // Zone ID for nuxeocloud.com
- # name = "${name}"
- # type = "CNAME"
- # ttl = "300"
- # weighted_routing_policy {
- # weight = 90
- # }
- # set_identifier = "${var.stack_name}"
- # records = ["${var.stack_name}.nuxeocloud.com"]
- #}
- #-------------------------------------
- # S3 buckets:w for Nuxeo and for Backups
- #-------------------------------------
- module "s3" {
- source = "./s3/"
- stack_name = "${var.stack_name}"
- cust_id = "${random_id.customer.b64}"
- }
- #-------------------------
- # RDS Postgres Database
- #-------------------------
- module "rds" {
- source = "./rds/"
- region = "${var.aws_region}"
- stack_name = "${var.stack_name}"
- database_name = "nuxeo"
- rds_allocated_storage = "10"
- rds_engine_version = "9.4.7"
- security_group_ids = ["${module.net.sg_internal_id}"]
- #subnet_ids = ["${aws_subnet.db_private.0.id}", "${aws_subnet.db_private.1.id}"]
- #db_private_subnets = ["${element(module.net.db_private, 0)}", "${element(module.net.db_private, 1)}"]
- subnet_ids = ["${element(module.net.db_private, 0)}", "${element(module.net.db_private, 1)}"]
- }
- #-------------------------
- # Elastic Cache Redis
- #-------------------------
- module "elasticcache" {
- source = "./elasticcache"
- stack_name = "${var.stack_name}-redis"
- engine_version = "3.2.4"
- node_type = "cache.t2.micro"
- security_group_ids = ["${module.net.sg_internal_id}"]
- private_subnet_ids = ["${module.net.db_private}"]
- }
- # #-------------------------------
- # # Create Nuxeo Ubuntu Instance
- # #-------------------------------
- # # Create a new instance of the latest Ubuntu on an
- # # t2.micro node with an AWS Tag naming it "Nuxeo"
- # data "aws_ami" "ubuntu" {
- # most_recent = true
- # filter {
- # name = "name"
- # values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"]
- # }
- # filter {
- # name = "virtualization-type"
- # values = ["hvm"]
- # }
- # owners = ["099720109477"] # Canonical
- # }
- # resource "aws_instance" "nuxeo" {
- # ami = "${data.aws_ami.ubuntu.id}"
- # instance_type = "t2.micro"
- # key_name = "${aws_key_pair.deployer.id}"
- # subnet_id = "${aws_subnet.private.id}"
- # tags {
- # Name = "Nuxeo"
- # billing-category = "customers"
- # billing-subcategory = "${var.stack_name}"
- # role= "nuxeo.instance"
- # }
- # }
- # #---------------------
- # # Deployer SSH keys
- # #--------------------
- # resource "aws_key_pair" "deployer" {
- # key_name = "deployer-key"
- # public_key = "${file(var.public_key_path)}"
- # }
|