Terraform集成示例
本文為您演示如何通過Terraform創(chuàng)建NAT 網(wǎng)關(guān)實(shí)例。
支持的資源列表
以下是支持Terraform編排NAT 網(wǎng)關(guān)的部分資源和數(shù)據(jù)源清單。如果您還不了解Terraform,請參見什么是Terraform。
資源類型 | 資源鏈接 | 說明 |
Resource | 創(chuàng)建NAT 網(wǎng)關(guān)。 | |
創(chuàng)建SNAT條目。 | ||
創(chuàng)建NAT IP。 | ||
創(chuàng)建NAT IP地址段。 | ||
Data Sources | NAT 網(wǎng)關(guān)列表。 | |
SNAT條目列表。 | ||
NAT IP列表。 | ||
NAT IP地址段列表。 |
權(quán)限說明
執(zhí)行Terraform模板需要RAM用戶權(quán)限,我們需要創(chuàng)建一個(gè)RAM用戶,并獲取AccessKey,添加權(quán)限策略。該AccessKey會配置為Terraform工具的環(huán)境變量。您需要為RAM用戶添加以下權(quán)限:
AliyunVPCFullAccess:管理專有網(wǎng)絡(luò) VPC的權(quán)限。
AliyunNATGatewayFullAccess:管理NAT 網(wǎng)關(guān)的權(quán)限。
操作步驟
安裝Terraform
在本地安裝和配置Terraform,請參見在本地安裝和配置Terraform。
安裝完成后,您可以打開命令行終端,輸入
terraform version
,看到返回版本信息表示已成功安裝。如果您不想安裝Terraform,可以使用阿里云提供的在線服務(wù)Cloud Shell,其中內(nèi)置了Terraform的運(yùn)行環(huán)境。
編寫模板
創(chuàng)建一個(gè)名為main.tf
文件,填寫以下內(nèi)容,用于創(chuàng)建NAT 網(wǎng)關(guān)實(shí)例。
variable "name" {
default = "tf_example"
}
data "alicloud_enhanced_nat_available_zones" "default" {
}
resource "alicloud_vpc" "default" {
vpc_name = var.name
cidr_block = "10.0.0.0/8"
}
resource "alicloud_vswitch" "default" {
vswitch_name = var.name
zone_id = data.alicloud_enhanced_nat_available_zones.default.zones.0.zone_id
cidr_block = "10.10.0.0/20"
vpc_id = alicloud_vpc.default.id
}
resource "alicloud_nat_gateway" "default" {
vpc_id = alicloud_vpc.default.id
nat_gateway_name = var.name
payment_type = "PayAsYouGo"
vswitch_id = alicloud_vswitch.default.id
nat_type = "Enhanced"
}
運(yùn)行模板
該示例以Windows操作系統(tǒng)為例,在其他操作系統(tǒng)中,運(yùn)行命令的具體方式可能會有所不同。
初始化加載模塊,包括Provider等模塊。
terraform init
驗(yàn)證模板語法是否正確。
terraform validate
創(chuàng)建執(zhí)行計(jì)劃。
terraform plan
本案例部署時(shí)的部分返回日志。
部署模板。
terraform apply
本案例部署時(shí)的部分返回日志。
輸入
yes
,按Enter鍵,實(shí)例創(chuàng)建成功。您也可以通過OpenAPI、SDK或者在公網(wǎng)NAT 網(wǎng)關(guān)控制臺,查看創(chuàng)建的公網(wǎng)NAT 網(wǎng)關(guān)實(shí)例。