Skip to content
This repository was archived by the owner on Mar 3, 2022. It is now read-only.

Commit b8ad33c

Browse files
author
John Lodini
committed
removing external dependency for secondary vnic script.
removing external dependency for secondary vnic script.
1 parent c8bbc57 commit b8ad33c

File tree

9 files changed

+1597
-141
lines changed

9 files changed

+1597
-141
lines changed
Lines changed: 80 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,111 @@
1-
// Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
1+
resource "oci_core_instance_configuration" "bridge_instance_configuration" {
2+
compartment_id = "${var.compartment_ocid}"
3+
display_name = "BridgeInstance"
4+
instance_details {
5+
instance_type = "compute"
6+
launch_details {
7+
source_details {
8+
source_type = "image"
9+
image_id = "${var.InstanceImageOCID[var.region]}"
10+
}
11+
create_vnic_details {
12+
skip_source_dest_check = true
13+
}
214

3-
# Creating the Bridge Instance
4-
resource "oci_core_instance" "BridgeInstance" {
5-
availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[var.AD - 1],"name")}"
6-
compartment_id = "${var.compartment_ocid}"
7-
display_name = "BridgeInstance"
8-
image = "${var.InstanceImageOCID[var.region]}"
9-
shape = "${var.InstanceShape}"
15+
compartment_id = "${var.compartment_ocid}"
16+
display_name = "BridgeInstance"
17+
shape = "${var.InstanceShape}"
18+
metadata {
19+
ssh_authorized_keys = "${file(var.ssh_public_key_path)}"
20+
user_data = "${base64encode(file("user_data.tpl"))}"
21+
}
22+
timeouts {
23+
create = "10m"
24+
}
25+
}
26+
secondary_vnics {
27+
display_name = "SecondaryVNIC"
28+
create_vnic_details {
29+
skip_source_dest_check = true
30+
assign_public_ip = false
31+
}
32+
}
33+
}
34+
}
1035

11-
create_vnic_details {
12-
subnet_id = "${oci_core_subnet.MgmtSubnet.id}"
13-
skip_source_dest_check = true
14-
}
36+
resource "oci_core_instance_pool" "bridge_instance_pool" {
37+
display_name = "BridgeInstancePool"
38+
compartment_id = "${var.compartment_ocid}"
39+
instance_configuration_id = "${oci_core_instance_configuration.bridge_instance_configuration.id}"
40+
placement_configurations {
41+
availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[var.AD - 1],"name")}"
42+
primary_subnet_id = "${oci_core_subnet.MgmtSubnet.id}"
43+
secondary_vnic_subnets {
44+
subnet_id = "${oci_core_subnet.MgmtSubnet2.id}"
45+
display_name = "SecondaryVNIC"
46+
}
47+
}
48+
size = "1"
49+
}
1550

16-
metadata {
17-
ssh_authorized_keys = "${var.ssh_public_key}"
18-
user_data = "${base64encode(file("user_data.tpl"))}"
19-
}
51+
data "oci_core_instance_pool_instances" "bridge_instance_pool_instances" {
2052

21-
timeouts {
22-
create = "10m"
23-
}
53+
compartment_id = "${var.compartment_ocid}"
54+
instance_pool_id = "${oci_core_instance_pool.bridge_instance_pool.id}"
2455
}
2556

26-
# Gets a list of VNIC attachments on the instance
27-
data "oci_core_vnic_attachments" "BridgeInstanceVnics" {
28-
compartment_id = "${var.compartment_ocid}"
29-
availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[var.AD - 1],"name")}"
30-
instance_id = "${oci_core_instance.BridgeInstance.id}"
57+
data "oci_core_instance" "bridge_instance" {
58+
59+
instance_id = "${lookup(data.oci_core_instance_pool_instances.bridge_instance_pool_instances.instances[0],"id")}"
3160
}
3261

33-
# Create PrivateIP
62+
# Gets a list of private IPs on the second VNIC
63+
3464
resource "oci_core_private_ip" "BridgeInstancePrivateIP" {
35-
vnic_id = "${lookup(data.oci_core_vnic_attachments.BridgeInstanceVnics.vnic_attachments[0],"vnic_id")}"
65+
vnic_id = "${data.oci_core_vnic.BridgeInstanceVnic1.id}"
3666
display_name = "BridgeInstancePrivateIP"
3767
}
38-
39-
# Get the OCID of the first (default) VNIC
40-
data "oci_core_vnic" "BridgeInstanceVnic1" {
41-
vnic_id = "${lookup(data.oci_core_vnic_attachments.BridgeInstanceVnics.vnic_attachments[0],"vnic_id")}"
68+
data "oci_core_private_ips" "BridgeInstancePrivateIP2" {
69+
vnic_id = "${data.oci_core_vnic.BridgeInstanceVnic2.id}"
4270
}
4371

44-
# Creating secondary VNIC on BridgeInstance and attaching it to Second VCN Mgmt subnet
45-
resource "oci_core_vnic_attachment" "SecondaryVnicAttachment" {
46-
create_vnic_details {
47-
subnet_id = "${oci_core_subnet.MgmtSubnet2.id}"
48-
display_name = "SecondaryVNIC"
49-
skip_source_dest_check = true
50-
}
51-
52-
instance_id = "${oci_core_instance.BridgeInstance.id}"
53-
}
5472

55-
# Gets a list of VNIC attachments on the instance
56-
data "oci_core_vnic_attachments" "BridgeInstanceVnics2" {
57-
compartment_id = "${var.compartment_ocid}"
58-
availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[var.AD - 1],"name")}"
59-
instance_id = "${oci_core_instance.BridgeInstance.id}"
73+
# Get the OCID of the primary VNIC
74+
data "oci_core_vnic" "BridgeInstanceVnic1" {
75+
vnic_id = "${lookup(data.oci_core_vnic_attachments.BridgeInstanceVnics.vnic_attachments[0],"vnic_id")}"
6076
}
6177

62-
# Gets the OCID of the second VNIC
78+
# Get the OCID of the secondary VNIC
6379
data "oci_core_vnic" "BridgeInstanceVnic2" {
64-
vnic_id = "${oci_core_vnic_attachment.SecondaryVnicAttachment.vnic_id}"
80+
depends_on = ["oci_core_instance_pool.bridge_instance_pool"]
81+
vnic_id = "${lookup(data.oci_core_vnic_attachments.BridgeInstanceVnics.vnic_attachments[1],"vnic_id")}"
6582
}
6683

67-
# Gets a list of private IPs on the second VNIC
68-
data "oci_core_private_ips" "BridgeInstancePrivateIP2" {
69-
vnic_id = "${data.oci_core_vnic.BridgeInstanceVnic2.id}"
70-
}
84+
data "oci_core_vnic_attachments" "BridgeInstanceVnics" {
85+
compartment_id = "${var.compartment_ocid}"
86+
availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[var.AD - 1],"name")}"
87+
instance_id = "${data.oci_core_instance.bridge_instance.id}"
88+
}
7189

7290
# Configurations for setting up the secondary VNIC
7391
resource "null_resource" "configure-secondary-vnic" {
92+
depends_on = ["oci_core_instance_pool.bridge_instance_pool"]
7493
connection {
7594
type = "ssh"
7695
user = "opc"
77-
private_key = "${var.ssh_private_key}"
78-
host = "${data.oci_core_vnic.BridgeInstanceVnic1.public_ip_address}"
96+
private_key = "${file(var.ssh_private_key_path)}"
97+
host = "${data.oci_core_instance.bridge_instance.public_ip}"
7998
timeout = "30m"
8099
}
81-
82-
provisioner "remote-exec" {
100+
provisioner "file" {
101+
source = "scripts/secondary_vnic_all_configure.sh"
102+
destination = "/tmp/secondary_vnic_all_configure.sh"
103+
}
104+
provisioner "remote-exec" {
83105
inline = [
84-
"sudo wget https://docs.cloud.oracle.com/iaas/Content/Resources/Assets/secondary_vnic_all_configure.sh",
85-
"sudo chmod 777 secondary_vnic_all_configure.sh",
86-
"sudo ./secondary_vnic_all_configure.sh -c ${lookup(data.oci_core_private_ips.BridgeInstancePrivateIP2.private_ips[0],"id")}",
106+
"sudo chmod 777 /tmp/secondary_vnic_all_configure.sh",
107+
"sudo /tmp/secondary_vnic_all_configure.sh -c ${lookup(data.oci_core_private_ips.BridgeInstancePrivateIP2.private_ips[0],"id")}",
87108
"sudo ip route add ${var.vcn_cidr2} dev ens4 via ${oci_core_subnet.MgmtSubnet2.virtual_router_ip}",
88109
]
89110
}
90-
}
111+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
3+
4+
data "oci_identity_availability_domains" "ADs" {
5+
compartment_id = "${var.tenancy_ocid}"
6+
}

examples/oci/connect_vcns_using_multiple_vnics/env-vars

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export TF_VAR_tenancy_ocid=""
33
export TF_VAR_user_ocid=""
44
export TF_VAR_fingerprint=""
55
export TF_VAR_private_key_path=""
6+
export TF_VAR_private_key_password="$(cat .../passwd)"
67

78
### Instance credentials
89
export TF_VAR_ssh_public_key=$(cat .../id_rsa.pub)

examples/oci/connect_vcns_using_multiple_vnics/output.tf

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
// Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
2-
31
# Outputing required info for users
42
output "Bridge Instance Public IP" {
5-
value = "${data.oci_core_vnic.BridgeInstanceVnic1.public_ip_address}"
3+
value = "${data.oci_core_instance.bridge_instance.public_ip}"
64
}
75

86
output "PrivateInstance1 Private IP" {
@@ -14,7 +12,7 @@ output "PrivateInstance2 Private IP" {
1412
}
1513

1614
output "SSH login to the Bridge Instance" {
17-
value = "ssh -A opc@${data.oci_core_vnic.BridgeInstanceVnic1.public_ip_address}"
15+
value = "ssh -A opc@${data.oci_core_instance.bridge_instance.public_ip}"
1816
}
1917

2018
output "SSH login to the Private Instance-1 after logging into Bridge Instance as shown above" {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
provider "oci" {
3+
version = ">= 3.14.1-preview"
4+
tenancy_ocid = "${var.tenancy_ocid}"
5+
user_ocid = "${var.user_ocid}"
6+
fingerprint = "${var.fingerprint}"
7+
private_key_path = "${var.private_key_path}"
8+
private_key_password = "${var.private_key_password}"
9+
region = "${var.region}"
10+
}

0 commit comments

Comments
 (0)