-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" {
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
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
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
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
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
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
# 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
+ 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
}
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
+ 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
}
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
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
}
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 {
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
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 {
file_path = var.ansible_file_path
force_handlers = true
}
- hosts = ["sut_aws"]
+ hosts = ["sut_aws"]
extra_vars = {
ansible_ssh_pass = var.ansible_provision_pwd
ansible_python_interpreter = var.ansible_python_executable
provisioner "remote-exec" {
on_failure = continue
- inline = ["sudo reboot"]
+ 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
file_path = var.ansible_file_path
force_handlers = true
}
- hosts = ["sut_aws"]
+ hosts = ["sut_aws"]
extra_vars = {
ansible_ssh_pass = var.ansible_provision_pwd
ansible_python_interpreter = var.ansible_python_executable
provisioner "remote-exec" {
on_failure = continue
- inline = ["sudo reboot"]
+ 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