Skip to content

Commit 91de764

Browse files
lsy1968shanye997
authored andcommitted
201-use-case-implement-vpc-nat-gateway
1 parent dd40dcb commit 91de764

File tree

2 files changed

+23
-18
lines changed

2 files changed

+23
-18
lines changed

quickstarts/VPC/201-use-case-implement-vpc-nat-gateway/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,11 @@ No modules.
7070

7171
| Name | Description | Type | Default | Required |
7272
|------|-------------|------|---------|:--------:|
73+
| <a name="input_master_zone"></a> [master\_zone](#input\_master\_zone) | n/a | `string` | `"cn-beijing-h"` | no |
7374
| <a name="input_name"></a> [name](#input\_name) | n/a | `string` | `"nat-test"` | no |
7475
| <a name="input_password"></a> [password](#input\_password) | n/a | `string` | `"Test123@"` | no |
75-
| <a name="input_region"></a> [region](#input\_region) | VPC NAT 网关有默认的 NAT IP; 公网NAT实例 绑定的是EIP | `string` | `"cn-beijing"` | no |
76+
| <a name="input_region"></a> [region](#input\_region) | n/a | `string` | `"cn-beijing"` | no |
77+
| <a name="input_slave_zone"></a> [slave\_zone](#input\_slave\_zone) | n/a | `string` | `"cn-beijing-k"` | no |
7678
<!-- END_TF_DOCS -->
7779

7880
## Documentation

quickstarts/VPC/201-use-case-implement-vpc-nat-gateway/main.tf

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// VPC NAT 网关有默认的 NAT IP; 公网NAT实例 绑定的是EIP
21
variable "region" {
32
default = "cn-beijing"
43
}
@@ -11,6 +10,12 @@ variable "name" {
1110
variable "password" {
1211
default = "Test123@"
1312
}
13+
variable "master_zone" {
14+
default = "cn-beijing-h"
15+
}
16+
variable "slave_zone" {
17+
default = "cn-beijing-k"
18+
}
1419
// 查询ECS镜像
1520
data "alicloud_images" "default" {
1621
most_recent = true
@@ -33,9 +38,7 @@ data "alicloud_vpc_nat_ips" "nat_ips_b" {
3338
nat_gateway_id = alicloud_nat_gateway.b.id
3439
}
3540
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"
3942
// 筛选出默认的 NAT IP
4043
default_nat_ip_a = [for ip in data.alicloud_vpc_nat_ips.nat_ips_a.ips : ip if ip.is_default][0]
4144
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" {
6063
resource "alicloud_vswitch" "a1" {
6164
vpc_id = alicloud_vpc.a.id
6265
cidr_block = "192.168.10.0/24"
63-
zone_id = local.master_zone
66+
zone_id = var.master_zone
6467
vswitch_name = "VS_A1"
6568
}
6669
// 创建Vswitch_A2 CIDR 块为 172.16.20.0/24
6770
resource "alicloud_vswitch" "a2" {
6871
vpc_id = alicloud_vpc_ipv4_cidr_block.a.vpc_id
6972
cidr_block = "172.16.20.0/24"
70-
zone_id = local.slave_zone
73+
zone_id = var.slave_zone
7174
vswitch_name = "VS_A2"
7275
}
7376
// 创建 VPC_B 主网段
@@ -84,14 +87,14 @@ resource "alicloud_vpc_ipv4_cidr_block" "b" {
8487
resource "alicloud_vswitch" "b1" {
8588
vpc_id = alicloud_vpc.b.id
8689
cidr_block = "192.168.10.0/24"
87-
zone_id = local.master_zone
90+
zone_id = var.master_zone
8891
vswitch_name = "VS_B1"
8992
}
9093
// 创建Vswitch_B2 CIDR 块为 10.0.20.0/24
9194
resource "alicloud_vswitch" "b2" {
9295
vpc_id = alicloud_vpc_ipv4_cidr_block.b.vpc_id
9396
cidr_block = "10.0.20.0/24"
94-
zone_id = local.slave_zone
97+
zone_id = var.slave_zone
9598
vswitch_name = "VS_B2"
9699
}
97100
// 安全组 VPC_A
@@ -141,7 +144,7 @@ resource "alicloud_instance" "a" {
141144
internet_max_bandwidth_out = "0"
142145
# 启动实例的可用区
143146
// 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
145148
# 有效值为 PrePaid、PostPaid,默认值为 PostPaid。
146149
instance_charge_type = "PostPaid"
147150
# 仅对一些非 I/O 优化实例使用。
@@ -170,7 +173,7 @@ resource "alicloud_instance" "b" {
170173
internet_max_bandwidth_out = "0"
171174
# 启动实例的可用区
172175
// 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
174177
# 有效值为 PrePaid、PostPaid,默认值为 PostPaid。
175178
instance_charge_type = "PostPaid"
176179
# 仅对一些非 I/O 优化实例使用。
@@ -209,11 +212,11 @@ resource "alicloud_cen_transit_router_vpc_attachment" "a" {
209212
auto_publish_route_enabled = true
210213
# 交换机
211214
zone_mappings {
212-
zone_id = local.master_zone
215+
zone_id = var.master_zone
213216
vswitch_id = alicloud_vswitch.a1.id
214217
}
215218
zone_mappings {
216-
zone_id = local.slave_zone
219+
zone_id = var.slave_zone
217220
vswitch_id = alicloud_vswitch.a2.id
218221
}
219222
# 是否强制删除
@@ -232,11 +235,11 @@ resource "alicloud_cen_transit_router_vpc_attachment" "b" {
232235
auto_publish_route_enabled = true
233236
# 交换机
234237
zone_mappings {
235-
zone_id = local.master_zone
238+
zone_id = var.master_zone
236239
vswitch_id = alicloud_vswitch.b1.id
237240
}
238241
zone_mappings {
239-
zone_id = local.slave_zone
242+
zone_id = var.slave_zone
240243
vswitch_id = alicloud_vswitch.b2.id
241244
}
242245
# 是否强制删除
@@ -326,7 +329,7 @@ resource "alicloud_forward_entry" "default" {
326329
external_port = "22"
327330
# IP协议,有效值为tcp、udp或其他。
328331
ip_protocol = "tcp"
329-
# 内部IP,必须是私有IP。ECS_B 的私有ip
332+
# 内部IP,必须是私有IP。ECS_B 的私有ip
330333
internal_ip = alicloud_instance.b.private_ip
331334
# 内部端口,有效值为1~65535或其他。
332335
internal_port = "22"
@@ -384,7 +387,7 @@ resource "alicloud_route_entry" "aa" {
384387
destination_cidrblock = "10.0.20.0/24"
385388
# 下一跳类型 NAT网关
386389
nexthop_type = "NatGateway"
387-
# 下一跳 ID
390+
# 下一跳 ID
388391
nexthop_id = alicloud_nat_gateway.a.id
389392
}
390393
// 配置自定义路由表 路由条目 VPC_B
@@ -453,4 +456,4 @@ output "transit_router_id" {
453456
output "transit_router_System_route_table_id" {
454457
// 传输路由器系统路由表ID
455458
value = data.alicloud_cen_transit_router_route_tables.cen_route_table_id.tables[0].transit_router_route_table_id
456-
}
459+
}

0 commit comments

Comments
 (0)