全部产品

使用Terraform操作OOS

更新时间:2020-08-20 09:55:50

Terraform是一种开源工具,用于安全高效地预览,配置和管理云基础架构和资源、构建、变更、和安全有效的版本化管理基础设施的工具,可以管理已存在和流行的服务提供商以及定制的内部解决方案。并且支持操作阿里云部分的OpenApi。

OOS是一个以模板的方式来操作阿里云的OpenApi的一种服务,方便您管理已经购买阿里云的资源,或者自动扩充资源等操作。相信读此文章的大家已经大致了解OOS的基本操作。基于以上所述以下是我们为您提供一个简单的教程来展示通过Terraform来操作OOS服务。

安装并配置Terraform

  1. 前往Terraform官网,下载适用于您的操作系统的程序包。本文以Linux系统为例。如果您还没有Linux环境,可购买阿里云ECS实例,详情请参见步骤一:创建ECS实例

  2. 将程序包解压到/usr/local/bin目录。如果您需要将可执行文件解压到其他目录,请按照以下方法为其定义全局路径:

3. 执行terraform命令验证路径配置。

terraform
Usage: terraform [-version] [-help] <command> [args]

4. 安装Golang,在安装以下模块前需要先安装Golang语言。

yum install golang

5. 安装terraform-provider-alicloud,执行以下命令,或者参考详细操作请参考安装简介文档。

yum install git
go get golang.org/x/tools/cmd/goimports
mkdir -p $GOPATH/src/github.com/aliyun
cd $GOPATH/src/github.com/aliyun
git clone https://github.com/aliyun/terraform-provider-alicloud
cd $GOPATH/src/github.com/aliyun/terraform-provider-alicloud
make build
注意

在环境中配置以下变量

export ALICLOUD_ACCESS_KEY=xxx

export ALICLOUD_SECRET_KEY=xxx

export ALICLOUD_REGION=xxx

Terraform支持OOS的资源模块

资源类型模块使用场景
datealicloud_oos_templates查询模版
alicloud_oos_executions查询执行
resourcealicloud_oos_template创建模版、更新模版
alicloud_oos_execution创建执行

Terraform操作OOS模板的创建、更新、查询、删除

1、创建模版

1.1 首先创建一个测试testTerraform文件夹,进入此文件夹,初始化Terraform后,在此文件夹内创建一个createTemplate.tf文件,并进入此文件的编辑模式,如下命令。

mkdir testTerraform
cd testTerraform
terraform init
vi createTemplate.tf

1.2 在编辑模式下,将以下内容复制进createTemplate.tf文件中。

resource "alicloud_oos_template" "example" {
	tags={
	  "Created" = "TF",
	  "For" = "template Test"
	}
	content= <<EOF
	{
        "FormatVersion": "OOS-2019-06-01",
        "Description": "Update Describe instances of given status",
        "Parameters":{
            "Status":{
                "Type": "String",
                "Description": "(Required) The status of the Ecs instance."
            }
        },
        "Tasks": [
            {
                "Properties" :{
                    "Parameters":{
                        "Status": "{{ Status }}"
                    },
                    "API": "DescribeInstances",
                    "Service": "Ecs"
                },
                "Name": "foo",
                "Action": "ACS::ExecuteApi"
            }]
	}
	EOF
	template_name="terraform-test"
}

1.3 保存并退出。

1.4 执行以下命令,使用Terraform创建OOS模板。

terraform plan
terraform apply

1.5 在OOS控制台查看模板是否创建成功,如下所示根据上面提供的例子发现根据自定义的参数,模板创建成功。

terraform-tem

2、更新模版

2.1 在执行创建模板操作后,找上面的已经创建完成的createTemplate.tf文件,并编辑此文件。

vi createTemplate.tf

2.2 进入编辑模式,将需要修改的文件内容复制到文件内。如下例子:

resource "alicloud_oos_template" "example" {
	tags={
	  "Created" = "TF",
	  "For" = "template Test"
	}
	content= <<EOF
	{
        "FormatVersion": "OOS-2019-06-01",
        "Description": "Update Describe instances of given status",
        "Parameters":{},
        "Tasks": [
            {
                "Properties" :{
                    "Parameters":{
                        "Status": "Running"
                    },
                    "API": "DescribeInstances",
                    "Service": "Ecs"
                },
                "Name": "foo",
                "Action": "ACS::ExecuteApi"
            }]
	}
	EOF
	template_name="terraform-test"
}

2.3 将更改的文件输入完毕,保存并退出。

2.4 执行以下命令进行更新资源。

terraform plan
terraform apply

3、查看模版

3.1 参考此文档,或官方文档来查看搜索操作其它具体的参数。

3.2 创建一个dataTest.tf的文件,进入编辑模式。

vi dataTest.tf

3.3 将以下查看资源的内容复制进入dataTest.tf文件内,保存并退出。

data "alicloud_oos_templates" "example" {
  ids=["terraform-test"]
}

output "first_template" {
  value = "${data.alicloud_oos_templates.example.templates.0}"
}

3.4 完成上述操作后,输入以下命令来查看资源的具体信息。

terraform plan
terraform apply

3.5 如下图所示,将上述命令输入完成后,显示的结果为当前资源的具体信息。

terraform-tem02

4、删除模版

4.1 使用上面的操作命令创建完成模板后,如果想要删除创建的模板,请参考以下命令来删除模板。

terraform show
terraform destroy

Terraform操作OOS模板的执行

1、创建执行

1.1 在上面提供的创建模版的例子基础上,首先创建一个测试testExecution.tf的文件,并进入编辑模式

vi createTemplate.tf

1.2 在编辑模式下,将以下内容复制进testExecution.tf文件中。

resource "alicloud_oos_execution" "exampleExecution"{
        template_name = "terraform-test"
        description = "From TF Test"
        parameters = <<EOF
          {"Status":"Running"}
        EOF
}

1.3 编辑完成后保存并退出。

1.4 执行以下命令,使用Terraform执行OOS已经创建完成的模版。

terraform plan
terraform apply

1.5 在OOS控制台查看执行是否启动,如下图所示发现执行创建成功。

terraform-03 2、查看执行

2.1 参考此文档,或官方文档来查看搜索操作其它具体的参数。

2.2 创建一个dataExecutionTest.tf的文件,进入编辑模式。

vi dataTest.tf

2.3 将以下查看资源的内容复制进入dataExecutionTest.tf文件内,保存并退出。

data "alicloud_oos_executions" "example" {
  ids = ["execution_id"]
  template_name = "name"
}

output "first_execution_id" {
  value = "${data.alicloud_oos_executions.example.executions.0.id}"
}

2.4 完成上述操作后,输入以下命令来查看资源的具体信息。

terraform plan
terraform apply

2.5 如下图所示,将上述命令输入完成后,在您执行命令的控制台显示的结果为当前资源的具体信息。

terraform-04

3、删除执行

3.1 在使用Terraform创建完执行后,如果想要删除OOS上的执行资源,使用以下命令即可。

terraform show
terraform destroy