通過Terraform創(chuàng)建VPC
更新時間:
本文介紹如何使用Terraform創(chuàng)建專有網(wǎng)絡(luò),交換機以及NAT網(wǎng)關(guān)。
說明
本教程所含示例代碼支持一鍵運行,您可以直接運行代碼。一鍵運行
前提條件
在開始之前,請您確保完成以下操作:
使用Terraform,您需要一個阿里云賬號和訪問密鑰(AccessKey)。 請在阿里云控制臺中的AccessKey管理頁面上創(chuàng)建和查看您的AccessKey。
已經(jīng)安裝并配置了Terraform,具體操作請參見在本地安裝和配置Terraform和在Cloud Shell中使用Terraform。
操作步驟
創(chuàng)建專有網(wǎng)絡(luò)和交換機。
說明當(dāng)前示例代碼支持一鍵運行,您可以直接運行代碼。一鍵運行
創(chuàng)建terraform.tf文件 ,定義專有網(wǎng)絡(luò)和交換機資源,文件內(nèi)容如下。
provider "alicloud" { configuration_source = "terraform-provider-alicloud/examples/vpc" } resource "alicloud_vpc" "main" { # VPC名稱 vpc_name = "alicloud" # VPC地址塊 cidr_block = "10.1.0.0/21" } resource "alicloud_vswitch" "main" { # VPC ID vpc_id = alicloud_vpc.main.id # 交換機地址塊 cidr_block = "10.1.0.0/24" # 可用區(qū) zone_id = "cn-hangzhou-b" # 資源依賴,會優(yōu)先創(chuàng)建該依賴資源 depends_on = [alicloud_vpc.main] }
運行terraform apply開始創(chuàng)建。出現(xiàn)類似下面的日志,說明創(chuàng)建成功。
alicloud_vpc.main: Creating... ...... Apply complete! Resources: 2 added, 0 changed, 0 destroyed
運行terraform show查看已創(chuàng)建的專有和專有網(wǎng)絡(luò)。
創(chuàng)建NAT網(wǎng)關(guān)并配置Snat和Dnat條目。
在terraform.tf文件中增加以下內(nèi)容:
variable "name" { default = "natGatewayExampleName" } resource "alicloud_vpc" "enhanced" { vpc_name = var.name cidr_block = "10.0.0.0/8" } data "alicloud_enhanced_nat_available_zones" "enhanced"{} resource "alicloud_vswitch" "enhanced" { vswitch_name = var.name zone_id = data.alicloud_enhanced_nat_available_zones.enhanced.zones.0.zone_id cidr_block = "10.10.0.0/20" vpc_id = alicloud_vpc.enhanced.id } resource "alicloud_nat_gateway" "main" { vpc_id = alicloud_vpc.enhanced.id nat_gateway_name = var.name payment_type = "PayAsYouGo" vswitch_id = alicloud_vswitch.enhanced.id nat_type = "Enhanced" } resource "alicloud_eip_address" "foo" { address_name = var.name } resource "alicloud_eip_association" "foo" { allocation_id = alicloud_eip_address.foo.id instance_id = alicloud_nat_gateway.main.id } # adding dnat entry resource "alicloud_forward_entry" "default" { forward_table_id = alicloud_nat_gateway.main.forward_table_ids external_ip = alicloud_eip_address.foo.ip_address external_port = "80" ip_protocol = "tcp" internal_ip = "172.16.0.3" internal_port = "8080" } # adding snat entry resource "alicloud_snat_entry" "default" { depends_on = [alicloud_eip_association.foo] snat_table_id = alicloud_nat_gateway.main.snat_table_ids source_vswitch_id = alicloud_vswitch.enhanced.id snat_ip = join(",", alicloud_eip_address.foo.*.ip_address) }
運行terraform apply開始創(chuàng)建。出現(xiàn)下面的日志,說明創(chuàng)建成功。
alicloud_vpc.enhanced: Creating... alicloud_eip_address.foo: Creating... ...... Apply complete! Resources: 7 added, 0 changed, 0 destroyed.
運行terraform show查看已經(jīng)創(chuàng)建的NAT網(wǎng)關(guān)。
文檔內(nèi)容是否對您有幫助?