1
- // VPC NAT 网关有默认的 NAT IP; 公网NAT实例 绑定的是EIP
2
1
variable "region" {
3
2
default = " cn-beijing"
4
3
}
@@ -11,6 +10,12 @@ variable "name" {
11
10
variable "password" {
12
11
default = " Test123@"
13
12
}
13
+ variable "master_zone" {
14
+ default = " cn-beijing-h"
15
+ }
16
+ variable "slave_zone" {
17
+ default = " cn-beijing-k"
18
+ }
14
19
// 查询ECS镜像
15
20
data "alicloud_images" "default" {
16
21
most_recent = true
@@ -33,9 +38,7 @@ data "alicloud_vpc_nat_ips" "nat_ips_b" {
33
38
nat_gateway_id = alicloud_nat_gateway. b . id
34
39
}
35
40
locals {
36
- master_zone = " cn-beijing-h"
37
- slave_zone = " cn-beijing-k"
38
- image_id = " aliyun_3_x64_20G_alibase_20241103.vhd"
41
+ image_id = " aliyun_3_x64_20G_alibase_20241103.vhd"
39
42
// 筛选出默认的 NAT IP
40
43
default_nat_ip_a = [for ip in data . alicloud_vpc_nat_ips . nat_ips_a . ips : ip if ip . is_default ][0 ]
41
44
default_nat_ip_b = [for ip in data . alicloud_vpc_nat_ips . nat_ips_b . ips : ip if ip . is_default ][0 ]
@@ -60,14 +63,14 @@ resource "alicloud_vpc_ipv4_cidr_block" "a" {
60
63
resource "alicloud_vswitch" "a1" {
61
64
vpc_id = alicloud_vpc. a . id
62
65
cidr_block = " 192.168.10.0/24"
63
- zone_id = local . master_zone
66
+ zone_id = var . master_zone
64
67
vswitch_name = " VS_A1"
65
68
}
66
69
// 创建Vswitch_A2 CIDR 块为 172.16.20.0/24
67
70
resource "alicloud_vswitch" "a2" {
68
71
vpc_id = alicloud_vpc_ipv4_cidr_block. a . vpc_id
69
72
cidr_block = " 172.16.20.0/24"
70
- zone_id = local . slave_zone
73
+ zone_id = var . slave_zone
71
74
vswitch_name = " VS_A2"
72
75
}
73
76
// 创建 VPC_B 主网段
@@ -84,14 +87,14 @@ resource "alicloud_vpc_ipv4_cidr_block" "b" {
84
87
resource "alicloud_vswitch" "b1" {
85
88
vpc_id = alicloud_vpc. b . id
86
89
cidr_block = " 192.168.10.0/24"
87
- zone_id = local . master_zone
90
+ zone_id = var . master_zone
88
91
vswitch_name = " VS_B1"
89
92
}
90
93
// 创建Vswitch_B2 CIDR 块为 10.0.20.0/24
91
94
resource "alicloud_vswitch" "b2" {
92
95
vpc_id = alicloud_vpc_ipv4_cidr_block. b . vpc_id
93
96
cidr_block = " 10.0.20.0/24"
94
- zone_id = local . slave_zone
97
+ zone_id = var . slave_zone
95
98
vswitch_name = " VS_B2"
96
99
}
97
100
// 安全组 VPC_A
@@ -141,7 +144,7 @@ resource "alicloud_instance" "a" {
141
144
internet_max_bandwidth_out = " 0"
142
145
# 启动实例的可用区
143
146
// availability_zone = data.alicloud_instance_types.default.instance_types.0.availability_zones.0
144
- availability_zone = local . master_zone
147
+ availability_zone = var . master_zone
145
148
# 有效值为 PrePaid、PostPaid,默认值为 PostPaid。
146
149
instance_charge_type = " PostPaid"
147
150
# 仅对一些非 I/O 优化实例使用。
@@ -170,7 +173,7 @@ resource "alicloud_instance" "b" {
170
173
internet_max_bandwidth_out = " 0"
171
174
# 启动实例的可用区
172
175
// availability_zone = data.alicloud_instance_types.default.instance_types.0.availability_zones.0
173
- availability_zone = local . master_zone
176
+ availability_zone = var . master_zone
174
177
# 有效值为 PrePaid、PostPaid,默认值为 PostPaid。
175
178
instance_charge_type = " PostPaid"
176
179
# 仅对一些非 I/O 优化实例使用。
@@ -209,11 +212,11 @@ resource "alicloud_cen_transit_router_vpc_attachment" "a" {
209
212
auto_publish_route_enabled = true
210
213
# 交换机
211
214
zone_mappings {
212
- zone_id = local . master_zone
215
+ zone_id = var . master_zone
213
216
vswitch_id = alicloud_vswitch. a1 . id
214
217
}
215
218
zone_mappings {
216
- zone_id = local . slave_zone
219
+ zone_id = var . slave_zone
217
220
vswitch_id = alicloud_vswitch. a2 . id
218
221
}
219
222
# 是否强制删除
@@ -232,11 +235,11 @@ resource "alicloud_cen_transit_router_vpc_attachment" "b" {
232
235
auto_publish_route_enabled = true
233
236
# 交换机
234
237
zone_mappings {
235
- zone_id = local . master_zone
238
+ zone_id = var . master_zone
236
239
vswitch_id = alicloud_vswitch. b1 . id
237
240
}
238
241
zone_mappings {
239
- zone_id = local . slave_zone
242
+ zone_id = var . slave_zone
240
243
vswitch_id = alicloud_vswitch. b2 . id
241
244
}
242
245
# 是否强制删除
@@ -326,7 +329,7 @@ resource "alicloud_forward_entry" "default" {
326
329
external_port = " 22"
327
330
# IP协议,有效值为tcp、udp或其他。
328
331
ip_protocol = " tcp"
329
- # 内部IP,必须是私有IP。ECS_B 的私有ip
332
+ # 内部IP,必须是私有IP。ECS_B 的私有ip
330
333
internal_ip = alicloud_instance. b . private_ip
331
334
# 内部端口,有效值为1~65535或其他。
332
335
internal_port = " 22"
@@ -384,7 +387,7 @@ resource "alicloud_route_entry" "aa" {
384
387
destination_cidrblock = " 10.0.20.0/24"
385
388
# 下一跳类型 NAT网关
386
389
nexthop_type = " NatGateway"
387
- # 下一跳 ID
390
+ # 下一跳 ID
388
391
nexthop_id = alicloud_nat_gateway. a . id
389
392
}
390
393
// 配置自定义路由表 路由条目 VPC_B
@@ -453,4 +456,4 @@ output "transit_router_id" {
453
456
output "transit_router_System_route_table_id" {
454
457
// 传输路由器系统路由表ID
455
458
value = data. alicloud_cen_transit_router_route_tables . cen_route_table_id . tables [0 ]. transit_router_route_table_id
456
- }
459
+ }
0 commit comments