本文为您介绍模板测试工具Iact3(Infrastructure as Code Template Test Tool)工具安装、配置及使用指南,用于阿里云资源编排ROS模板和Terraform测试。
为什么使用模板测试工具Iact3?
当您编写好ROS或者Terraform模板时,可以使用Iact3测试模板是否能成功创建资源栈。如某个时间点,系统能否成功地创建或更新模板中涉及到的资源,如实例组、虚拟私有云(VPC)、安全组等。
前提条件
安装Iact3
通过pip安装
执行以下命令,安装模板测试工具。
pip install alibabacloud-ros-iact3
通过源码安装
下载模板测试工具源码。
git clone https://github.com/aliyun/alibabacloud-ros-tool-iact3.git
进入
alibabacloud-ros-tool-iact3
目录cd alibabacloud-ros-tool-iact3
安装模板转换工具。
python setup.py install
配置身份凭据
阿里云CLI
如果您已经安装了CLI工具,可以直接使用其配置文件,默认配置文件位置为~/.aliyun/config.json
,配置示例信息如下:
{
"current": "default",
"profiles":
[
{
"name": "default",
"mode": "AK",
"access_key_id": "***",
"access_key_secret": "***",
},
],
"meta_path": ""
}
阿里云 SDK
使用阿里云 SDK 凭证的配置文件,默认存储位置为~/.alibabacloud/credentials.ini
或~/.aliyun/credentials.ini
,也可以使用ALIBABA_CLOUD_CREDENTIALS_FILE
环境变量来指定具体配置文件位置。配置示例信息如下:
[default]
enable=true
type=access_key
access_key_id=<ALIBABA_CLOUD_ACCESS_KEY_ID>
access_key_secret=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
[client1]
enable=true
type=ecs_ram_role
role_name=<ecs_ram_role_name>
[client2]
enable=true
type=ram_role_arn
policy=<policy>
access_key_id=<ALIBABA_CLOUD_ACCESS_KEY_ID>
access_key_secret=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
role_arn=<ram_role_arn>
role_session_name=<role_session_name>
[client3]
enable=true
type=oidc_role_arn
policy=<policy>
oidc_provider_arn=<ALIBABA_CLOUD_ACCESS_KEY_ID>
oidc_token_file_path=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
role_arn=<ram_role_arn>
role_session_name=<role_session_name>
环境变量
在环境变量中使用配置阿里云 AK 和 SK,对应环境变量名称为:ALIBABA_CLOUD_ACCESS_KEY_ID
和 ALIBABA_CLOUD_ACCESS_KEY_SECRET
准备配置文件
Iact3通过测试配置文件来指定需要测试的模板和参数信息,测试配置文件为 YAML
格式,示例配置如下:
project:
name: my-first-test
template_config:
template_url: 'https://xxx/create-ecs.yaml'
regions:
- cn-hangzhou
- cn-beijing
tests:
test-name-1:
parameters:
ZoneId: $[iact3-auto]
InstanceType: ecs.g6e.large
test-name-2:
parameters:
ZoneId: $[iact3-auto]
InstanceType: ecs.c6.large
参数说明
project
表示项目的基本信息,包括:name
用于指定配置名称。template_config
用于指定具体的模板,其中template_url
表示模板链接地址。regions
用于指定配置文件作用的地域,支持以列表形式指定多个地域。
tests
表示测试用例信息,该配置文件包含了test-name-1
和test-name-2
两个测试用例parameters
用于指定模板中参数值,其中参数值$[iact3-auto]
表示自动生成一个合适的参数。说明仅以下 2 种场景支持自动生成参数:
参数对应的资源属性支持ROS
GetTemplateParameterConstraints
接口,请参见参数约束查询。参数名称具有特定含义的参数。 例如
VpcId
一般表示专有网络的 Id,$[iact3-auto]
会自动在当前账户的当前地域随机获取一个 VPC 的实例 ID。
更多的配置文件详情可以参考 Iact3 的配置文档。
对模板进行测试
进入到配置文件所在目录,执行 CLI 命令即可开始对模板进行测试。
iact3 test run
Iact3 会根据配置文件中设置的模板和参数,实际去创建资源栈,测试完成后会自动删除资源栈。
测试完成之后,会自动生成测试报告。
单击View Logs即可查看每个报告的详细日志。
日志中云服务的资源创建和状态更新的日志
更多功能
Iact3有很多其他的功能,可以使用iact3 -h
命令查询工具的帮助信息,了解到所有支持的命令与功能。
模板询价
Iact3 支持模板的询价能力,您可以执行以下命令了解到模板中涉及资源的价格信息。
iact3 cost
模板资源预览
Iact3支持资源预览能力,您可以执行以下命令了解到模板将会创建哪些资源的信息。
iact3 preview
模板RAM策略查询
Iact3支持RAM策略查询能力,您可以执行以下命令了解子账号创建模板时所需要的权限信息。
iact3 policy
相关文档
关于Iact3更多信息,请参见ROS Tool Iact3。