X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=fdio.infra.terraform%2F3n_aws_c5n%2Fdeploy%2Fmain.tf;h=073768d5b0f05f9114750825dd9d395ef9e2b0c5;hb=refs%2Fchanges%2F65%2F34065%2F1;hp=7c029c6c549e793915027b32d0222641bea176cf;hpb=c318223fcd266c0ee2982e803c44e193c2023054;p=csit.git diff --git a/fdio.infra.terraform/3n_aws_c5n/deploy/main.tf b/fdio.infra.terraform/3n_aws_c5n/deploy/main.tf index 7c029c6c54..073768d5b0 100644 --- a/fdio.infra.terraform/3n_aws_c5n/deploy/main.tf +++ b/fdio.infra.terraform/3n_aws_c5n/deploy/main.tf @@ -1,5 +1,6 @@ -provider "aws" { - region = var.region +data "vault_aws_access_credentials" "creds" { + backend = "${var.vault-name}-path" + role = "${var.vault-name}-role" } resource "aws_vpc" "CSITVPC" { @@ -134,7 +135,7 @@ resource "aws_network_interface" "dut1_if1" { private_ip = var.dut1_if1_ip private_ips = [var.dut1_if1_ip] security_groups = [aws_security_group.CSITSG.id] - depends_on = [aws_vpc.CSITVPC, aws_subnet.b] + depends_on = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.dut1] attachment { instance = aws_instance.dut1.id @@ -152,7 +153,7 @@ resource "aws_network_interface" "dut1_if2" { private_ip = var.dut1_if2_ip private_ips = [var.dut1_if2_ip] security_groups = [aws_security_group.CSITSG.id] - depends_on = [aws_vpc.CSITVPC] + depends_on = [aws_vpc.CSITVPC, aws_subnet.c, aws_instance.dut1] attachment { instance = aws_instance.dut1.id @@ -170,7 +171,7 @@ resource "aws_network_interface" "dut2_if1" { private_ip = var.dut2_if1_ip private_ips = [var.dut2_if1_ip] security_groups = [aws_security_group.CSITSG.id] - depends_on = [aws_vpc.CSITVPC, aws_subnet.c] + depends_on = [aws_vpc.CSITVPC, aws_subnet.c, aws_instance.dut2] attachment { instance = aws_instance.dut2.id @@ -188,7 +189,7 @@ resource "aws_network_interface" "dut2_if2" { private_ip = var.dut2_if2_ip private_ips = [var.dut2_if2_ip] security_groups = [aws_security_group.CSITSG.id] - depends_on = [aws_vpc.CSITVPC, aws_subnet.d] + depends_on = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.dut2] attachment { instance = aws_instance.dut2.id @@ -206,7 +207,7 @@ resource "aws_network_interface" "tg_if1" { private_ip = var.tg_if1_ip private_ips = [var.tg_if1_ip] security_groups = [aws_security_group.CSITSG.id] - depends_on = [aws_vpc.CSITVPC, aws_subnet.b] + depends_on = [aws_vpc.CSITVPC, aws_subnet.b, aws_instance.tg] attachment { instance = aws_instance.tg.id @@ -224,7 +225,7 @@ resource "aws_network_interface" "tg_if2" { private_ip = var.tg_if2_ip private_ips = [var.tg_if2_ip] security_groups = [aws_security_group.CSITSG.id] - depends_on = [aws_vpc.CSITVPC, aws_subnet.d] + depends_on = [aws_vpc.CSITVPC, aws_subnet.d, aws_instance.tg] attachment { instance = aws_instance.tg.id @@ -262,18 +263,23 @@ data "aws_network_interface" "tg_if2" { # Instances resource "aws_instance" "tg" { - depends_on = [aws_vpc.CSITVPC, aws_placement_group.CSITPG] - ami = var.ami_image - availability_zone = var.avail_zone - instance_type = var.instance_type - key_name = aws_key_pair.CSITKP.key_name - associate_public_ip_address = true - subnet_id = aws_subnet.mgmt.id - private_ip = var.tg_mgmt_ip - vpc_security_group_ids = [aws_security_group.CSITSG.id] - placement_group = aws_placement_group.CSITPG.id - source_dest_check = false - # host_id = "1" + ami = var.ami_image_tg + availability_zone = var.avail_zone + instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior + instance_type = var.instance_type + key_name = aws_key_pair.CSITKP.key_name + associate_public_ip_address = true + subnet_id = aws_subnet.mgmt.id + private_ip = var.tg_mgmt_ip + vpc_security_group_ids = [aws_security_group.CSITSG.id] + placement_group = aws_placement_group.CSITPG.id + source_dest_check = false + # host_id = "1" + + depends_on = [ + aws_vpc.CSITVPC, + aws_placement_group.CSITPG, + ] root_block_device { volume_size = 50 @@ -286,18 +292,24 @@ resource "aws_instance" "tg" { } resource "aws_instance" "dut1" { - depends_on = [aws_vpc.CSITVPC, aws_placement_group.CSITPG] - ami = var.ami_image - availability_zone = var.avail_zone - instance_type = var.instance_type - key_name = aws_key_pair.CSITKP.key_name - associate_public_ip_address = true - subnet_id = aws_subnet.mgmt.id - private_ip = var.dut1_mgmt_ip - vpc_security_group_ids = [aws_security_group.CSITSG.id] - placement_group = aws_placement_group.CSITPG.id - source_dest_check = false - # host_id = "2" + ami = var.ami_image_sut + availability_zone = var.avail_zone + instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior + instance_type = var.instance_type + key_name = aws_key_pair.CSITKP.key_name + associate_public_ip_address = true + subnet_id = aws_subnet.mgmt.id + private_ip = var.dut1_mgmt_ip + vpc_security_group_ids = [aws_security_group.CSITSG.id] + placement_group = aws_placement_group.CSITPG.id + source_dest_check = false + # host_id = "2" + + depends_on = [ + aws_vpc.CSITVPC, + aws_placement_group.CSITPG, + aws_instance.tg + ] root_block_device { volume_size = 50 @@ -310,18 +322,25 @@ resource "aws_instance" "dut1" { } resource "aws_instance" "dut2" { - depends_on = [aws_vpc.CSITVPC, aws_placement_group.CSITPG] - ami = var.ami_image - availability_zone = var.avail_zone - instance_type = var.instance_type - key_name = aws_key_pair.CSITKP.key_name - associate_public_ip_address = true - subnet_id = aws_subnet.mgmt.id - private_ip = var.dut2_mgmt_ip - vpc_security_group_ids = [aws_security_group.CSITSG.id] - placement_group = aws_placement_group.CSITPG.id - source_dest_check = false - # host_id = "3" + ami = var.ami_image_sut + availability_zone = var.avail_zone + instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior + instance_type = var.instance_type + key_name = aws_key_pair.CSITKP.key_name + associate_public_ip_address = true + subnet_id = aws_subnet.mgmt.id + private_ip = var.dut2_mgmt_ip + vpc_security_group_ids = [aws_security_group.CSITSG.id] + placement_group = aws_placement_group.CSITPG.id + source_dest_check = false + # host_id = "3" + + depends_on = [ + aws_vpc.CSITVPC, + aws_placement_group.CSITPG, + aws_instance.tg, + aws_instance.dut1 + ] root_block_device { volume_size = 50 @@ -358,7 +377,13 @@ resource "null_resource" "deploy_tg" { depends_on = [ aws_instance.tg, aws_network_interface.tg_if1, - aws_network_interface.tg_if2 + aws_network_interface.tg_if2, + aws_instance.dut1, + aws_network_interface.dut1_if1, + aws_network_interface.dut1_if2, + aws_instance.dut2, + aws_network_interface.dut2_if1, + aws_network_interface.dut2_if2 ] connection { @@ -377,7 +402,7 @@ resource "null_resource" "deploy_tg" { file_path = var.ansible_file_path force_handlers = true } - hosts = ["tg_aws"] + hosts = ["tg_aws"] extra_vars = { ansible_ssh_pass = var.ansible_provision_pwd ansible_python_interpreter = var.ansible_python_executable @@ -388,15 +413,21 @@ resource "null_resource" "deploy_tg" { provisioner "remote-exec" { on_failure = continue - inline = ["sudo reboot"] + inline = ["sudo reboot"] } } resource "null_resource" "deploy_dut1" { depends_on = [ + aws_instance.tg, + aws_network_interface.tg_if1, + aws_network_interface.tg_if2, aws_instance.dut1, aws_network_interface.dut1_if1, - aws_network_interface.dut1_if2 + aws_network_interface.dut1_if2, + aws_instance.dut2, + aws_network_interface.dut2_if1, + aws_network_interface.dut2_if2 ] connection { @@ -405,33 +436,39 @@ resource "null_resource" "deploy_dut1" { private_key = tls_private_key.CSITTLS.private_key_pem } - provisioner "remote-exec" { - inline = var.first_run_commands - } - - provisioner "ansible" { - plays { - playbook { - file_path = var.ansible_file_path - force_handlers = true - } - hosts = ["sut_aws"] - extra_vars = { - ansible_ssh_pass = var.ansible_provision_pwd - ansible_python_interpreter = var.ansible_python_executable - aws = true - } - } - } - - provisioner "remote-exec" { - on_failure = continue - inline = ["sudo reboot"] - } +# provisioner "remote-exec" { +# inline = var.first_run_commands +# } +# +# provisioner "ansible" { +# plays { +# playbook { +# file_path = var.ansible_file_path +# force_handlers = true +# } +# hosts = ["sut_aws"] +# extra_vars = { +# ansible_ssh_pass = var.ansible_provision_pwd +# ansible_python_interpreter = var.ansible_python_executable +# aws = true +# } +# } +# } +# +# provisioner "remote-exec" { +# on_failure = continue +# inline = ["sudo reboot"] +# } } resource "null_resource" "deploy_dut2" { depends_on = [ + aws_instance.tg, + aws_network_interface.tg_if1, + aws_network_interface.tg_if2, + aws_instance.dut1, + aws_network_interface.dut1_if1, + aws_network_interface.dut1_if2, aws_instance.dut2, aws_network_interface.dut2_if1, aws_network_interface.dut2_if2 @@ -443,40 +480,40 @@ resource "null_resource" "deploy_dut2" { private_key = tls_private_key.CSITTLS.private_key_pem } - provisioner "remote-exec" { - inline = var.first_run_commands - } - - provisioner "ansible" { - plays { - playbook { - file_path = var.ansible_file_path - force_handlers = true - } - hosts = ["sut_aws"] - extra_vars = { - ansible_ssh_pass = var.ansible_provision_pwd - ansible_python_interpreter = var.ansible_python_executable - aws = true - } - } - } - - provisioner "remote-exec" { - on_failure = continue - inline = ["sudo reboot"] - } +# provisioner "remote-exec" { +# inline = var.first_run_commands +# } +# +# provisioner "ansible" { +# plays { +# playbook { +# file_path = var.ansible_file_path +# force_handlers = true +# } +# hosts = ["sut_aws"] +# extra_vars = { +# ansible_ssh_pass = var.ansible_provision_pwd +# ansible_python_interpreter = var.ansible_python_executable +# aws = true +# } +# } +# } +# +# provisioner "remote-exec" { +# on_failure = continue +# inline = ["sudo reboot"] +# } } resource "null_resource" "deploy_topology" { - depends_on = [ aws_instance.tg, aws_instance.dut1, aws_instance.dut2 ] + depends_on = [aws_instance.tg, aws_instance.dut1, aws_instance.dut2] provisioner "ansible" { plays { playbook { file_path = var.ansible_topology_path } - hosts = ["local"] + hosts = ["local"] extra_vars = { ansible_python_interpreter = var.ansible_python_executable testbed_name = var.testbed_name