-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
178 lines (160 loc) · 6.84 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
locals {
# VCN is /16
bastion_subnet_prefix = cidrsubnet(var.vcn_cidr, 6, 0)
lb_subnet_prefix = cidrsubnet(var.vcn_cidr, 6, 1)
app_subnet_prefix = cidrsubnet(var.vcn_cidr, 6, 2)
db_subnet_prefix = cidrsubnet(var.vcn_cidr, 6, 3)
}
# Create Virtual Cloud Network (VCN)
module "create_vcn" {
source = "./modules/network/vcn"
compartment_ocid = var.compartment_ocid
vcn_cidr = var.vcn_cidr
vcn_dns_label = var.vcn_dns_label
}
# Create bastion host subnet
module "bastion_subnet" {
source = "./modules/network/subnets"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
vcn_id = module.create_vcn.vcnid
vcn_subnet_cidr = [
cidrsubnet(local.bastion_subnet_prefix, 2, 0),
cidrsubnet(local.bastion_subnet_prefix, 2, 1),
cidrsubnet(local.bastion_subnet_prefix, 2, 2),
]
dns_label = "bassubad"
dhcp_options_id = module.create_vcn.default_dhcp_id
route_table_id = oci_core_route_table.PublicRT.id
security_list_ids = [oci_core_security_list.BastionSecList.id]
private_subnet = "False"
}
# Create Load balancer subnet
module "lb_subnet" {
source = "./modules/network/subnets"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
vcn_id = module.create_vcn.vcnid
vcn_subnet_cidr = [
cidrsubnet(local.lb_subnet_prefix, 2, 0),
cidrsubnet(local.lb_subnet_prefix, 2, 1),
cidrsubnet(local.lb_subnet_prefix, 2, 2),
]
dns_label = "lbsubad"
dhcp_options_id = module.create_vcn.default_dhcp_id
route_table_id = oci_core_route_table.PrivateRT.id
security_list_ids = [oci_core_security_list.LBSecList.id]
private_subnet = "True"
}
# Create Application subnet
module "app_subnet" {
source = "./modules/network/subnets"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
vcn_id = module.create_vcn.vcnid
vcn_subnet_cidr = [
cidrsubnet(local.app_subnet_prefix, 2, 0),
cidrsubnet(local.app_subnet_prefix, 2, 1),
cidrsubnet(local.app_subnet_prefix, 2, 2),
]
dns_label = "appsubad"
dhcp_options_id = module.create_vcn.default_dhcp_id
route_table_id = oci_core_route_table.PrivateRT.id
security_list_ids = [oci_core_security_list.AppSecList.id]
private_subnet = "True"
}
# Create Database system subnet
module "db_subnet" {
source = "./modules/network/subnets"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
vcn_id = module.create_vcn.vcnid
vcn_subnet_cidr = [
cidrsubnet(local.db_subnet_prefix, 2, 0),
cidrsubnet(local.db_subnet_prefix, 2, 1),
cidrsubnet(local.db_subnet_prefix, 2, 2),
]
dns_label = "dbsubad"
dhcp_options_id = module.create_vcn.default_dhcp_id
route_table_id = oci_core_route_table.PrivateRT.id
security_list_ids = [oci_core_security_list.DBSecList.id]
private_subnet = "True"
}
# Create bastion host
module "create_bastion" {
source = "./modules/bastion"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
bastion_hostname_prefix = "${var.ebs_env_prefix}bas${substr(var.region, 3, 3)}"
bastion_image = data.oci_core_images.InstanceImageOCID.images[0].id
bastion_instance_shape = var.bastion_instance_shape
bastion_subnet = [module.bastion_subnet.subnetid]
bastion_ssh_public_key = var.bastion_ssh_public_key
}
# Create Application server
module "create_app" {
source = "./modules/compute"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
fault_domain = [sort(data.template_file.deployment_fd.*.rendered)]
compute_instance_count = var.ebs_app_instance_count
compute_hostname_prefix = "${var.ebs_env_prefix}app${substr(var.region, 3, 3)}"
compute_image = data.oci_core_images.InstanceImageOCID.images[0].id
compute_instance_shape = var.ebs_app_instance_shape
compute_subnet = [module.app_subnet.subnetid]
compute_ssh_public_key = var.ssh_public_key
compute_ssh_private_key = var.ssh_private_key
bastion_ssh_private_key = var.bastion_ssh_private_key
bastion_public_ip = module.create_bastion.Bastion_Public_IPs[0]
compute_instance_listen_port = var.ebs_app_instance_listen_port
fss_instance_prefix = "${var.ebs_env_prefix}fss${substr(var.region, 3, 3)}"
fss_subnet = [module.app_subnet.subnetid]
fss_primary_mount_path = var.ebs_fss_primary_mount_path
fss_limit_size_in_gb = var.ebs_fss_limit_size_in_gb
compute_instance_user = var.compute_instance_user
bastion_user = var.bastion_user
compute_boot_volume_size_in_gb = var.compute_boot_volume_size_in_gb
timezone = var.timezone
}
# Create Database system
module "create_db" {
source = "./modules/dbsystem"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
db_edition = var.db_edition
db_instance_shape = var.db_instance_shape
db_node_count = var.db_node_count
db_hostname_prefix = "${var.ebs_env_prefix}db${substr(var.region, 3, 3)}"
db_size_in_gb = var.db_size_in_gb
db_license_model = var.db_license_model
db_subnet = [module.db_subnet.subnetid]
db_ssh_public_key = var.ssh_public_key
db_admin_password = var.db_admin_password
db_name = var.db_name
db_characterset = var.db_characterset
db_nls_characterset = var.db_nls_characterset
db_version = var.db_version
db_pdb_name = var.db_pdb_name
}
# Create Load Balancer
module "create_lb" {
source = "./modules/loadbalancer"
compartment_ocid = var.compartment_ocid
AD = var.AD
availability_domain = [data.template_file.deployment_ad.*.rendered]
load_balancer_shape = var.load_balancer_shape
load_balancer_subnet = [module.lb_subnet.subnetid]
load_balancer_name = "${var.ebs_env_prefix}lb${substr(var.region, 3, 3)}"
load_balancer_hostname = var.load_balancer_hostname
load_balancer_listen_port = var.load_balancer_listen_port
compute_instance_listen_port = var.ebs_app_instance_listen_port
compute_instance_count = var.ebs_app_instance_count
be_ip_addresses = [module.create_app.AppsPrvIPs]
}