脚本库
概览
脚本库:脚本库集中存储和管理自动化脚本文件。对云主机执行脚本,可以完成复杂的运维操作和自动化任务。
如图 1所示:图 1. 脚本库


功能优势
ZStack Cloud脚本库功能具有以下优势:
- 简单易用
- 支持以可视化方式快速创建脚本,并通过自定义参数实现脚本灵活配置。
- 脚本内可以包含复杂命令,为云主机一键执行脚本,即可完成复杂的运维操作,例如:应用健康检查、平台电源负载均衡 (节能) 与调度、应用程序批量更新、灰度发布等,提高管理便利性,降低人工运维成本。
- 便捷运维
- 提供专门的脚本库页面,对脚本进行集中生命周期管理。用户可以在脚本库中灵活地创建、修改或删除脚本。
- 创建好的脚本可以长期保存,重复使用;一个脚本可以同时在多台云主机执行、互不影响,有效提升大规模场景运维效率。
- 提供丰富、详细的脚本执行记录,包括运行过该脚本的云主机、运行时间、结束时间、运行时配置和结果返回,便于操作回溯和问题定位。
- 类型丰富:支持多种命令类型,包括:Shell、Python、Perl、Bat、Powershell,用户可根据实际需求,灵活选用。
清单
属性 (Properties)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 资源的UUID,唯一标示该资源 | 5.2.0 | ||
| name | 资源名称 | 5.2.0 | ||
| description | 资源的详细描述 | 5.2.0 | ||
| scriptContent | 脚本内容 | 5.2.0 | ||
| renderParams | 参数 | 5.2.0 | ||
| platform | 平台 | 5.2.0 | ||
| scriptType | 类型 | 5.2.0 | ||
| scriptTimeout | 超时时间 | 5.2.0 | ||
| createDate | 创建时间 | 5.2.0 | ||
| lastOpDate | 最后操作时间 | 5.2.0 | ||
| userTags | 用户标签 | 5.2.0 | ||
| systemTags | 系统标签 | 5.2.0 | ||
| groupBy | 5.2.0 |
脚本执行记录清单 (Guest VM Script Execution Record Inventory)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 资源的UUID,唯一标示该资源 | 5.2.0 | ||
| scriptUuid | 脚本uuid | 5.2.0 | ||
| recordName | 记录名称 | 5.2.0 | ||
| scriptTimeout | 超时时间 | 5.2.0 | ||
| status | 状态 | 5.2.0 | ||
| executor | 执行人 | 5.2.0 | ||
| executionCount | 执行次数 | 5.2.0 | ||
| version | 版本 | 5.2.0 | ||
| scriptContent | 脚本内容 | 5.2.0 | ||
| startTime | 开始时间 | 5.2.0 | ||
| endTime | 结束时间 | 5.2.0 | ||
| tagUuid | 标签UUID列表 | 5.2.0 | ||
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 5.2.0 | ||
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 5.2.0 | ||
| groupBy | 5.2.0 |
示例
{
"inventories": [
{
"endTime": "Sep 4, 2024 5:42:39 PM",
"executionCount": 1,
"executor": "admin",
"recordName": "20240904053437_system_info.ps1",
"scriptTimeout": 480,
"scriptUuid": "94e251dbd63f43d79077d62edfc694f0",
"startTime": "Sep 4, 2024 5:34:37 PM",
"status": "Failed",
"uuid": "de2ea20623b545699d4f8d7561f8dd8f",
"version": 3
}
],
"success": true
}
脚本执行记录明细清单 (Guest VM Script Execution Record Details Inventory)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| recordUuid | 记录UUID | 5.2.0 | ||
| vmInstanceUuid | 云主机UUID | 5.2.0 | ||
| vmName | 云主机名称 | 5.2.0 | ||
| status | 状态 | 5.2.0 | ||
| exitCode | 退出code | 5.2.0 | ||
| stdout | 标准输出 | 5.2.0 | ||
| errCause | 错误原因 | 5.2.0 | ||
| stderr | 错误输出 | 5.2.0 | ||
| startTime | 开始时间 | 5.2.0 | ||
| endTime | 结束时间 | 5.2.0 | ||
| tagUuid | 标签UUID列表 | 5.2.0 | ||
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 5.2.0 | ||
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 5.2.0 | ||
| groupBy | 5.2.0 |
示例
{
"inventories": [
{
"recordUuid": "ab90a0142aef36fd97c3c759bc7e459d",
"vmInstanceUuid": "4708f0f6f76e39e882886241761d0c27",
"status": "Completed",
"stdout": "helloworld",
"errCause": "",
"stderr": "1/0 is not a goodScript",
"startTime": "Sep 23, 2024 11:53:03 AM",
"endTime": "Sep 23, 2024 11:53:03 AM"
}
]
}
操作 (Operations)
创建脚本(CreateGuestVmScript)
用户可以使用CreateGuestVmScript创建脚本。例如:
CreateGuestVmScript name=script1 scriptContent=ZWNobyBoZWxsb3dvcmxkCg== platform=Linux scriptType=Shell scriptTimeout=30参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| name | 资源名称 | 5.2.0 | ||
| description | 资源的详细描述 | 是 | 5.2.0 | |
| scriptContent | 脚本内容 | 5.2.0 | ||
| renderParams | 参数 | 是 | 5.2.0 | |
| platform | 平台 | 5.2.0 | ||
| scriptType | 脚本类型 | 5.2.0 | ||
| scriptTimeout | 超时时间 | 是 | 5.2.0 | |
| resourceUuid | 资源UUID | 是 | 5.2.0 | |
| tagUuids | 标签UUID列表 | 是 | 5.2.0 | |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 5.2.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 5.2.0 | |
| timeout | 是 |
删除脚本(DeleteGuestVmScript)
用户可以使用DeleteGuestVmScript删除脚本。例如:
DeleteGuestVmScript uuid=ed1ef717239e37c29163dcad7576b8d4参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| name | 资源名称 | 5.2.0 | ||
| deleteMode | 删除模式 | 是 |
|
5.2.0 |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 5.2.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 5.2.0 | |
| timeout | 是 |
更新脚本(UpdateGuestVmScript)
用户可以使用UpdateGuestVmScript更新脚本。例如:
UpdateGuestVmScript uuid=110b774720573fd6aec8ec70b669ffb8 scriptContent=ls参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 资源的UUID,唯一标示该资源 | 5.2.0 | ||
| name | 资源名称 | 是 | 5.2.0 | |
| description | 资源的详细描述 | 是 | 5.2.0 | |
| scriptContent | 脚本内容 | 是 | 5.2.0 | |
| renderParams | 参数 | 是 | 5.2.0 | |
| platform | 平台 | 是 | 5.2.0 | |
| scriptType | 脚本类型 | 是 | 5.2.0 | |
| scriptTimeout | 超时时间 | 是 | 5.2.0 | |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 5.2.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 5.2.0 | |
| timeout | 是 |
执行脚本(ExecuteGuestVmScript)
用户可以使用ExecuteGuestVmScript执行脚本。例如:
ExecuteGuestVmScript uuid=f9f25df251013694bbbf68bb42b1bde1 vmInstanceUuids=c9cc2aa748383595b144d9d12ff3abb2参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 资源的UUID,唯一标示该资源 | 5.2.0 | ||
| vmInstanceUuids | 云主机UUID | 5.2.0 | ||
| scriptTimeout | 超时时间 | 是 | 5.2.0 | |
| logPath | 日志路径 | 是 | 5.2.0 | |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 5.2.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 5.2.0 | |
| timeout | 是 |
查询脚本(QueryGuestVmScript)
用户可以使用QueryGuestVmScript查询脚本。例如:
QueryGuestVmScript name=script1原生域查询(Primitive Fields of Query)
查询脚本执行记录(QueryGuestVmScriptExecutedRecord)
用户可以使用QueryGuestVmScriptExecutedRecord查询脚本执行记录。例如:
QueryGuestVmScriptExecutedRecord scriptUuid=94e251dbd63f43d79077d62edfc694f0原生域查询(Primitive Fields of Query)
查询脚本执行记录明细(QueryGuestVmScriptExecutedRecordDetail)
用户可以使用QueryGuestVmScriptExecutedRecordDetail查询脚本执行记录明细。例如:
QueryGuestVmScriptExecutedRecordDetail原生域查询(Primitive Fields of Query)
请参见脚本执行记录明细清单 (Guest VM Script Execution Record Details Inventory)。
