|
@@ -1,11 +1,15 @@
|
|
|
/*
|
|
|
* 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
|
|
|
+* 1) Create Subnets for the Stack
|
|
|
+* - On Public with a /24 size.
|
|
|
+* - One private Subnet to run Nuxeo
|
|
|
+* - at least 2 Private Subnets for Databases
|
|
|
* 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
|
|
|
+* 5) Create a Security Group for ELBs that accepts HTTP and HTTPS from anywhere
|
|
|
+* 6) Create a Security Group for Bastion Hosts that accepts SSH from anywhere
|
|
|
+*
|
|
|
* 7) Create a Bastion Host with bastion host SG associated to ti, install NTP and Userify on it
|
|
|
*/
|
|
|
|
|
@@ -20,7 +24,7 @@ module "net" {
|
|
|
source = "./net/"
|
|
|
|
|
|
stack_name = "${var.stack_name}"
|
|
|
- region = "us-west-2"
|
|
|
+ region = "${var.aws_region}"
|
|
|
vpc_id = "${var.vpc_id}"
|
|
|
|
|
|
public_subnets = ["10.0.10.0/24"]
|
|
@@ -30,23 +34,23 @@ module "net" {
|
|
|
|
|
|
|
|
|
#-------------
|
|
|
-# DNS Entry for Cloud Customer
|
|
|
+#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"]
|
|
|
-#}
|
|
|
+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}"
|
|
@@ -54,9 +58,9 @@ module "s3" {
|
|
|
}
|
|
|
|
|
|
|
|
|
-#-------------------------
|
|
|
+# -------------------------
|
|
|
# RDS Postgres Database
|
|
|
-#-------------------------
|
|
|
+# -------------------------
|
|
|
module "rds" {
|
|
|
source = "./rds/"
|
|
|
region = "${var.aws_region}"
|
|
@@ -84,42 +88,19 @@ module "elasticcache" {
|
|
|
private_subnet_ids = ["${module.net.db_private}"]
|
|
|
}
|
|
|
|
|
|
+#-------------------------
|
|
|
+# EC2 Instances
|
|
|
+#-------------------------
|
|
|
+module "nuxeo" {
|
|
|
+ source = "./instance/"
|
|
|
+ # Variables for creating an instance
|
|
|
+ stack_name = "${var.stack_name}-nuxeo"
|
|
|
+ instance_name = "${var.stack_name}-nuxeo-instance"
|
|
|
+ os_release = "xenial"
|
|
|
+ instance_type = "t2.micro"
|
|
|
+ public_key_path ="${var.public_key_path}"
|
|
|
+# public_key_path="/path/to/my/pub_key"
|
|
|
+ subnet_id="${element(module.net.private_subnets, 0)}"
|
|
|
+}
|
|
|
|
|
|
-# #-------------------------------
|
|
|
-# # 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)}"
|
|
|
-# }
|