|
@@ -2,11 +2,11 @@
|
|
|
* AUTO SCALING GROUP FOR NUXEO INSTANCE
|
|
|
****************************************************/
|
|
|
|
|
|
-resource "aws_launch_configuration" "asg_launch_nuxeo" {
|
|
|
- name = "asg_launch_nuxeo"
|
|
|
- image_id = "ami-2b10bc4b"
|
|
|
- instance_type = "t2.micro"
|
|
|
- key_name = "packer_5832e178-3196-2110-e869-232a71aa6853"
|
|
|
+resource "aws_launch_configuration" "main" {
|
|
|
+ name = "${var.stack_name}-${var.instance_role}"
|
|
|
+ image_id = "${var.ami}"
|
|
|
+ instance_type = "${var.ami_type}"
|
|
|
+ key_name = "${var.keyname}"
|
|
|
security_groups = ["${var.alb_secgroups}"]
|
|
|
enable_monitoring = false
|
|
|
ebs_optimized = false
|
|
@@ -23,24 +23,78 @@ resource "aws_launch_configuration" "asg_launch_nuxeo" {
|
|
|
|
|
|
}
|
|
|
|
|
|
-resource "aws_autoscaling_group" "asg_nuxeo" {
|
|
|
- name = "asg_nuxeo"
|
|
|
+resource "aws_autoscaling_group" "main" {
|
|
|
+ name = "${var.stack_name}-${var.instance_role}"
|
|
|
|
|
|
health_check_grace_period = 60
|
|
|
health_check_type = "EC2"
|
|
|
- launch_configuration = "${aws_launch_configuration.asg_launch_nuxeo.name}"
|
|
|
+ launch_configuration = "${aws_launch_configuration.main}"
|
|
|
|
|
|
max_size = "${var.asg_max}"
|
|
|
min_size = "${var.asg_min}"
|
|
|
desired_capacity = "${var.asg_desired}"
|
|
|
|
|
|
vpc_zone_identifier = ["${var.app_subnets}"]
|
|
|
- target_group_arns = ["${aws_alb_target_group.nuxeo.arn}"]
|
|
|
+ target_group_arns = ["${aws_alb_target_group.main.arn}"]
|
|
|
|
|
|
tag {
|
|
|
key = "role"
|
|
|
- value = "nuxeo"
|
|
|
+ value = "${var.instance_role}"
|
|
|
propagate_at_launch = true
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+# Create an IAM role for the Servers.
|
|
|
+resource "aws_iam_role" "main" {
|
|
|
+ name = "${var.stack_name}-${var.instance_role}"
|
|
|
+ assume_role_policy = <<EOF
|
|
|
+{
|
|
|
+ "Version": "2012-10-17",
|
|
|
+ "Statement": [
|
|
|
+ {
|
|
|
+ "Action": "sts:AssumeRole",
|
|
|
+ "Principal": {
|
|
|
+ "Service": "ec2.amazonaws.com"
|
|
|
+ },
|
|
|
+ "Effect": "Allow",
|
|
|
+ "Sid": ""
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+EOF
|
|
|
+}
|
|
|
+
|
|
|
+resource "aws_iam_instance_profile" "main" {
|
|
|
+ name = "${var.stack_name}"
|
|
|
+ roles = ["${var.stack_name}-${var.instance_role}"]
|
|
|
+}
|
|
|
+
|
|
|
+resource "aws_iam_role_policy" "main" {
|
|
|
+ name = "${var.stack_name}-${var.instance_role}"
|
|
|
+ role = "${aws_iam_role.main.id}"
|
|
|
+ policy = <<EOF
|
|
|
+{
|
|
|
+ "Version": "2012-10-17",
|
|
|
+ "Statement": [
|
|
|
+ {
|
|
|
+ "Effect": "Allow",
|
|
|
+ "Action": ["s3:ListBucket"],
|
|
|
+ "Resource": ["arn:aws:s3:::bucket-name"]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "Effect": "Allow",
|
|
|
+ "Action": [
|
|
|
+ "s3:PutObject",
|
|
|
+ "s3:GetObject",
|
|
|
+ "s3:DeleteObject"
|
|
|
+ ],
|
|
|
+ "Resource": [
|
|
|
+ "arn:aws:s3:::nuxeo-${sha1("${var.stack_name}")}/*",
|
|
|
+ "arn:aws:s3:::nuxeo-backup-${sha1("${var.stack_name}")}/*"
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+EOF
|
|
|
+}
|