ROS不支援傳遞Terraform模板,本文為您介紹如何將Terraform模板轉換為ROS支援的Terraform類型模板。
前提條件
請提前安裝alibabacloud-ros-tran。
具體操作,請參見ROS Template Transformer。
Terraform模板
Terraform模板相關內容,請參見什麼是Terraform。
main.tf
# Configure the AliCloud Provider
provider "alicloud" {}
# Create VPC and VSwitch
resource "alicloud_vpc" "myvpc" {
cidr_block = "172.16.0.0/12"
name = "myvpc"
}
resource "alicloud_vswitch" "myvswitch" {
vpc_id = alicloud_vpc.myvpc.id
cidr_block = "172.16.0.0/21"
availability_zone = "cn-beijing-g"
name = "myvswitch"
}output.tf
output "vpc_id" {
value = alicloud_vpc.myvpc.id
}
output "vswitch_id" {
value = alicloud_vswitch.myvswitch.id
}轉換步驟
您可以通過如下命令將Terraform模板轉換成ROS支援的Terraform類型模板。
rostran transform templates/terraform/alicloud -S terraform --compatible參數說明
templates/terraform/alicloud:本地Terraform模板所在地址。
-S:源模板檔案的格式,這裡指定為Terraform格式。支援auto(預設值)、terraform、excel和cloudformation,預設根據SOURCE_PATH尾碼確定源檔案格式。
--compatible:Terraform模板轉換為ROS支援的Terraform類型模板時是否使用相容模式。如果相容,則將Terraform檔案內容保留在已經產生的ROS模板中,否則轉換為使用ROS文法的模板。此選項只適用於Terraform模板檔案。
Terraform類型模板
Terraform模板轉換成ROS支援的Terraform類型的模板如下所示。Terraform類型模板結構,請參見Terraform類型模板結構。
ROSTemplateFormatVersion: '2015-09-01'
Transform: Aliyun::Terraform-v1.2
Workspace:
main.tf: |
# Configure the AliCloud Provider
provider "alicloud" {}
# Create VPC and VSwitch
resource "alicloud_vpc" "myvpc" {
cidr_block = "172.16.0.0/12"
name = "myvpc"
}
resource "alicloud_vswitch" "myvswitch" {
vpc_id = alicloud_vpc.myvpc.id
cidr_block = "172.16.0.0/21"
availability_zone = "cn-beijing-g"
name = "myvswitch"
}
output.tf: |
output "vpc_id" {
value = alicloud_vpc.myvpc.id
}
output "vswitch_id" {
value = alicloud_vswitch.myvswitch.id
}