阿里云CLI是基于阿里云OpenAPI建立的管理工具,您可以通过阿里云CLI调用OpenAPI来管理阿里云产品,灵活性高且易于扩展。本教程介绍如何使用阿里云CLI执行滚动升级任务。
前提条件
背景信息
滚动升级是指通过任务形式批量更新ECS实例配置。更多信息,请参见滚动升级。
操作步骤
本教程介绍如何使用阿里云CLI更新伸缩组内ECS实例的镜像、在ECS实例中执行脚本以及为ECS实例安装OOS软件包。步骤如下:
步骤一:创建RAM用户并添加权限
步骤二:配置并验证阿里云CLI
更多配置项的说明,请参见阿里云CLI文档中的配置阿里云CLI部分。
步骤三:通过阿里云CLI执行滚动升级任务
本步骤提供示例命令,演示更新伸缩组内ECS实例的镜像、在ECS实例中执行脚本以及为ECS实例安装OOS软件包。
执行回滚任务:滚动升级异常时的处理
如果滚动升级过程中出现异常,或者滚动升级后又需要使用历史配置,您可以执行回滚任务为伸缩组内ECS实例恢复配置。本步骤提供示例命令,演示如何回滚已经执行的滚动升级任务。
模板参数说明
本节列出示例中使用的公共模板的参数。
参数 | 说明 |
---|---|
invokeType | 任务类型。取值范围:
|
scalingGroupId | 待执行任务的伸缩组的ID。 |
scalingConfigurationId | 伸缩组生效中的伸缩配置的ID。 |
imageId | 替换当前镜像时使用的镜像的ID。 |
sourceImageId | 回滚操作时使用的镜像的ID。 |
OOSAssumeRole | 执行任务时使用的RAM角色,默认为OOSServiceRole。 |
enterProcess | 开始执行任务时暂停的伸缩组流程。 |
exitProcess | 结束任务时需要恢复的伸缩组流程。 |
batchNumber | 执行任务时,将伸缩组内ECS实例分成几个批次,每批次至少包括一台ECS实例。 |
batchPauseOption | 执行任务时的暂停设置。取值范围:
|
sourceExecutionId | 执行回滚任务时,源滚动升级任务的执行ID。 |
说明 您也可以在OOS控制台查看更多参数说明,以华东1(杭州)地域为例,请参见ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup。
参数 | 说明 |
---|---|
invokeType | 任务类型。取值范围:
|
scalingGroupId | 待执行任务的伸缩组的ID。 |
commandType | 待执行的脚本类型,取值RunShellScript代表Shell脚本。 |
invokeScript | 执行滚动升级任务时,在ECS实例中执行的脚本。 |
rollbackScript | 执行回滚任务时,在ECS实例中执行的脚本。 |
OOSAssumeRole | 执行任务时使用的RAM角色,默认为OOSServiceRole。 |
enterProcess | 开始执行任务时暂停的伸缩组流程。 |
exitProcess | 结束任务时需要恢复的伸缩组流程。 |
batchNumber | 执行任务时,将伸缩组内ECS实例分成几个批次,每批次至少包括一台ECS实例。 |
batchPauseOption | 执行任务时的暂停设置。取值范围:
|
sourceExecutionId | 执行回滚任务时,源滚动升级任务的执行ID。 |
说明 您也可以在OOS控制台查看更多参数说明,以华东1(杭州)地域为例,请参见ACS-ESS-RollingUpdateByRunCommandInScalingGroup。
参数 | 说明 |
---|---|
invokeType | 任务类型。取值范围:
|
scalingGroupId | 待执行任务的伸缩组的ID。 |
packageName | 软件包的名称。 |
packageVersion | 软件包的版本。 |
action | 配置软件包的方式。取值范围:
|
OOSAssumeRole | 执行任务时使用的RAM角色,默认为OOSServiceRole。 |
enterProcess | 开始执行任务时暂停的伸缩组流程。 |
exitProcess | 结束任务时需要恢复的伸缩组流程。 |
batchNumber | 执行任务时,将伸缩组内ECS实例分成几个批次,每批次至少包括一台ECS实例。 |
batchPauseOption | 执行任务时的暂停设置。取值范围:
|
sourceExecutionId | 执行回滚任务时,源滚动升级任务的执行ID。 |
说明 您也可以在OOS控制台查看更多参数说明,以华东1(杭州)地域为例,请参见ACS-ESS-RollingUpdateByConfigureOOSPackage。