管理模板
模板用于保存和版本化Terraform代码,供任务和资源栈复用。使用模板可以统一维护基础设施代码,并通过已发布版本控制不同执行对象使用的代码内容。本文说明如何创建模板、编辑和发布版本,以及更新或删除模板。
适用场景
本文适用于在自动化服务台中创建、编辑、发布、更新或删除Terraform模板的场景。创建的模板可以供任务和资源栈引用。
前提条件
当前登录身份已具备管理自动化服务台模板所需的RAM权限。
创建模板
创建模板前,准备Terraform代码或确定代码来源。
选择模板来源
自动化服务台支持以下模板来源:
模板来源 | 适用场景 | 是否支持在线编辑 | 代码更新方式 |
空白模板 | 在控制台中从零编写Terraform代码 | 是 | 编辑草稿并手动发布版本 |
文件上传 | 将本地Terraform代码以ZIP包形式上传 | 是 | 上传后编辑草稿并手动发布版本 |
工作空间 | 复用Registry与工作空间中已有的模块版本 | 否 | 在工作空间中发布模块版本,再更新模板引用的模块版本 |
OSS导入 | 从OSS公网访问地址导入Terraform代码ZIP包 | 否 | 上传新的ZIP包并更新模板的OSS来源路径 |
资源导出 | 使用存量资源导出任务生成的Terraform代码 | 否 | 执行资源导出任务,再更新模板引用的成功导出版本 |
文件上传和OSS导入使用的ZIP包中应包含Terraform代码文件,例如main.tf和variables.tf。避免在ZIP包中增加无必要的顶层目录。OSS导入仅支持OSS公网访问地址,不支持VPC内网访问地址。
在控制台创建模板
登录自动化服务台控制台。
单击新建模板。
选择模板来源,然后单击下一步。
配置模板。
配置项
是否必填
说明
模板名称
是
输入当前账号下唯一的模板名称。
模板描述
否
说明模板的用途。
来源配置
是
根据模板来源上传ZIP包、选择工作空间模块版本、填写OSS来源路径或选择资源导出任务及版本。空白模板无需配置代码来源。
单击提交。
创建成功后,系统生成模板ID并进入模板详情页。空白模板和文件上传模板可以继续编辑草稿;其他来源的代码在模板中只读。
每个阿里云账号默认最多创建50个模板,实际配额以控制台显示为准。达到配额后,在配额中心申请提升配额,或删除不再使用的模板。
编辑代码并发布版本
空白模板和文件上传模板支持在控制台中编辑和发布。工作空间、OSS导入和资源导出来源的代码在模板中只读,需要从相应来源更新代码。
保存草稿
每个可编辑模板维护一份草稿。保存草稿不会生成正式版本,也不会改变任务或资源栈当前使用的代码。
进入模板详情页。
在代码编辑区域打开编辑开关。
修改Terraform代码。
单击保存。
发布新版本
代码完成检查后,将草稿发布为不可修改的版本:
如果关联任务的触发模式为模板新版本触发,发布版本后系统会自动启动该任务。发布前检查关联任务及其执行方式,避免非预期的云资源变更。
在模板详情页单击发布新版本。
配置版本信息。
配置项
是否必填
说明
版本名称
是
输入用于标识本次发布的名称。
版本描述
否
说明本次代码变更。
单击确定。
系统按照v1、v2、v3的顺序生成版本号。发布成功后,可以在版本列表中查看代码和变量信息。
已发布版本不可修改,也不能单独删除。后续代码变更需要修改草稿并发布新版本。
发布动作本身不直接修改云资源。除模板新版本触发的任务外,其他任务继续使用其配置的模板版本;资源栈只有在获取最新配置并部署后,才会使用模板的最新发布版本。
基于历史版本修改
要基于历史版本继续开发,执行以下操作:
在模板详情页的版本列表中选择目标版本。
单击Fork,将该版本的代码复制到当前草稿。
修改并保存草稿。
发布新版本。
Fork不会修改原版本。新版本号继续按照当前模板的版本序列递增。
声明敏感变量
不要在模板代码中写入密码、AccessKey或令牌等敏感值。可以将输入变量声明为敏感变量:
variable "db_password" {
description = "Database password"
type = string
sensitive = true
}sensitive = true用于标识敏感变量和隐藏相关展示内容,不会保护写入代码中的默认值。实际敏感值应由参数集、任务参数或资源栈输入提供。
在自动化服务台中保存敏感参数值前,先在中完成密钥与加密配置。系统可以使用服务密钥或用户管理的KMS密钥。
更新模板
模板创建后,可以更新基本信息。不同来源的代码更新方式不同。
更新基本信息
进入模板详情页的基本信息区域。
单击编辑。
修改模板名称、模板描述或标签。
保存修改。
模板ID、模板来源和所有者创建后不能修改。
更新只读来源
工作空间、OSS导入和资源导出来源不支持直接编辑代码:
工作空间:在工作空间中发布新的模块版本,然后更新模板引用的模块版本。
OSS导入:将新ZIP包上传到新的OSS路径,然后更新模板的OSS来源路径。仅覆盖原路径中的对象不会可靠地产生新的模板版本。
资源导出:执行资源导出任务并生成成功版本,然后更新模板引用的导出版本。
更新来源后,在模板版本列表中确认是否已经生成新版本,再让任务或资源栈使用该版本。
删除模板
删除模板会同时删除草稿和全部已发布版本,但不会销毁由任务或资源栈创建的云资源。
删除前确认任务和资源栈不再需要该模板。模板被任务引用时,系统会拒绝删除;资源栈仍引用该模板时,删除后将无法继续获取该模板的新配置。
在模板列表中找到目标模板。
单击操作列的删除。
在确认对话框中单击确定。
要同时释放云资源,需要在对应任务或资源栈中执行Destroy。删除模板本身不会执行Destroy。