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
}
文档内容是否对您有帮助?