123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- provider "aws" {
- region = var.region
- profile = var.profile
- }
- module "vpc" {
- source = "../tfmodule-aws-2tier-vpc"
- region = var.region
- profile = var.profile
- vpc-name = var.vpc-name
- vpc-cidr = var.vpc-cidr
- vpc-azs = var.vpc-azs
- enable-private = false
- common-tags = {
- "Owner" = "maguec"
- "Project" = "example_terraform"
- }
- }
- module "nodes" {
- source = "../tfmodule-aws-redis-enterprise"
- region = var.region
- profile = var.profile
- open-nets = ["76.14.80.208/32"]
- data-node-count = 3
- re-volume-size = 250
- re-instance-type = "m5.4xlarge"
- vpc-cidr = var.vpc-cidr
- vpc-azs = var.vpc-azs
- vpc-name = var.vpc-name
- vpc-id = module.vpc.vpc-id
- vpc-subnets = module.vpc.subnets-public
- enable-flash = true
- common-tags = {
- "Owner" = "maguec"
- "Project" = "example_terraform"
- }
- }
- # Start CP Redis Testernode
- resource "aws_instance" "re" {
- ami = data.aws_ami.re-ami.id
- instance_type = "m5.4xlarge"
- availability_zone = "${element(var.vpc-azs, 1)}"
- subnet_id = "${element(module.vpc.subnets-public, 1)}"
- vpc_security_group_ids = [module.nodes.re-security-group]
- source_dest_check = false
- key_name = var.vpc-name
- tags = merge({ Name = "Tester-${var.vpc-name}-1" }, var.common-tags)
- }
- resource "aws_eip" "re-eip" {
- vpc = true
- tags = merge({ Name = "${var.vpc-name}-node-eip-1" }, var.common-tags)
- }
- resource "aws_eip_association" "re-eip-assoc" {
- instance_id = "${element(aws_instance.re.*.id, 1)}"
- allocation_id = "${element(aws_eip.re-eip.*.id, 1)}"
- depends_on = ["aws_instance.re", "aws_eip.re-eip"]
- }
- resource "null_resource" "remote-config" {
- provisioner "remote-exec" {
- connection {
- user = "ubuntu"
- host = aws_eip.re-eip.public_ip
- private_key = "${file("~/.ssh/${var.vpc-name}.pem")}"
- agent = true
- }
- inline = ["sudo apt update > /dev/null && sudo apt install -y python python-pip > /dev/null"]
- }
- depends_on = ["aws_instance.re", "aws_eip_association.re-eip-assoc"]
- }
- output "node-ips" {
- value = formatlist("ssh -i ~/.ssh/${var.vpc-name}.pem -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ubuntu@%s", module.nodes.node-ips)
- }
- output "tester-ips" {
- value = formatlist("ssh -i ~/.ssh/${var.vpc-name}.pem -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ubuntu@%s", aws_eip.re-eip.public_ip)
- }
|