A Alibaba Cloud CLI é uma ferramenta de gerenciamento baseada na OpenAPI da Alibaba Cloud que permite chamar operações da OpenAPI para gerenciar services da Alibaba Cloud. Neste tutorial, você usa a Alibaba Cloud CLI para executar uma tarefa de atualização contínua nas instâncias ECS em um grupo de dimensionamento. Você também aprende como reverter uma tarefa de atualização contínua quando a atualização não é concluída conforme o esperado.
Pré-requisitos
A Alibaba Cloud CLI está instalada. Para mais informações, consulte o guia de instalação em Alibaba Cloud CLI documentation.
Um grupo de dimensionamento foi criado e instâncias ECS foram adicionadas a ele.
(Aplica-se apenas à atualização de imagens de instância) A source de configuração de instância do grupo de dimensionamento é uma configuração de dimensionamento.
(Aplica-se apenas à instalação de um pacote OOS) Os pacotes OOS que você deseja instalar nas instâncias ECS já foram criados no OOS. Para mais informações, consulte Gerencie extensões personalizadas em lotes.
Informações básicas
Uma atualização contínua atualiza as configurações de várias instâncias ECS em lotes. Ao executar uma tarefa de atualização contínua pela Alibaba Cloud CLI, a tarefa roda como uma execução de um modelo público do Operation Orchestration Service (OOS). Para mais informações, consulte Rolling updates.
Cenários
Este tutorial possui três marcos sequenciais e uma ramificação condicional de reversão, executada apenas quando necessário. Cada cenário de atualização contínua roda como uma execução de um modelo público do OOS. Para os parâmetros do modelo usado em cada cenário, consulte as referências a seguir:
Etapa 1: Criar um usuário RAM e conceder permissões
Faça logon no console do Resource Access Management (RAM).
-
Crie um usuário RAM.
Esta etapa usa um usuário RAM chamado example como usuário de amostra. Para mais informações, consulte Crie um usuário RAM.
No painel de navegação à esquerda, escolha IdentitiesUsers.
Clique em Create User.
-
Na página Create User, especifique as configurações do usuário e clique em OK.
A tabela a seguir descreve as configurações de amostra.
Item de configuração
Configuração de amostra
Logon Name
example@sample.com
Display name
example
Access Mode
Selecione Using permanent AccessKey to access. Um par de AccessKey é gerado automaticamente para o usuário RAM, permitindo o acesso à Alibaba Cloud por meio de APIs ou outras ferramentas de desenvolvimento.
-
Na página User Information, clique em Download CSV File.
NotaO AccessKey secret é exibido apenas no momento da criação e não pode ser consultado posteriormente. Mantenha-o confidencial. Se um par de AccessKey for exposto ou perdido, crie um novo par de AccessKey.
-
Conceda ao usuário RAM permissões para operar resources.
No painel de navegação à esquerda, escolha IdentitiesUsers.
Localize o usuário RAM example que você criou. Na coluna Actions, clique em Add Permissions.
-
Na página Add Permissions, selecione as permissões necessárias para executar tarefas de atualização contínua e clique em OK.
A tabela a seguir descreve as configurações de amostra.
Item de configuração
Configuração de amostra
Resource Range
Mantenha o valor padrão Account.
Principal
Mantenha o valor padrão example@sample.com.
Policies
Selecione as seguintes políticas de sistema:
AliyunECSFullAccess: permissões para operar resources do ECS, incluindo instâncias ECS e outros resources relacionados.AliyunESSFullAccess: permissões para operar resources do Auto Scaling, incluindo grupos de dimensionamento e outros resources relacionados.AliyunOOSFullAccess: permissões para operar resources do CloudOps Orchestration Service, incluindo execuções e outros resources relacionados.AliyunOSSFullAccess: permissões para operar resources do Object Storage Service, incluindo buckets e outros resources relacionados.
Etapa 2: Configurar e verificar a Alibaba Cloud CLI
Abra um terminal ou prompt de comando no seu computador local.
-
Configure a Alibaba Cloud CLI.
-
Execute o seguinte comando para abrir o arquivo de configuração:
aliyun configure -
Insira o AccessKey ID, o AccessKey secret, a região padrão e outras informações conforme solicitado.

Os comandos de amostra na Etapa 3 não incluem um parâmetro de região. Certifique-se de que a região padrão configurada seja a mesma onde seu grupo de dimensionamento está localizado.
-
-
Execute o seguinte comando para verificar se a Alibaba Cloud CLI está disponível:
aliyun ecs DescribeRegions
Para mais informações sobre outros itens de configuração, consulte a seção sobre como configurar a Alibaba Cloud CLI em Alibaba Cloud CLI documentation.
Etapa 3: Executar uma tarefa de atualização contínua usando a Alibaba Cloud CLI
Os comandos de amostra usam as convenções de aspas e continuação de linha de um shell POSIX, como bash no Linux ou macOS. Se você usar Windows PowerShell ou Prompt de Comando, ajuste as aspas e caracteres de escape para corresponder a esse shell.
Todos os comandos de amostra definem batchPauseOption como Automatic, o que executa todos os lotes sem pausas. Para pausar a tarefa após a execução do primeiro lote, defina batchPauseOption como FirstBatchPause.
-
Insira um comando da Alibaba Cloud CLI para executar uma tarefa de atualização contínua.
Para descrições dos parâmetros do modelo OOS usados no código de amostra, consulte OOS rolling update template parameters.
-
O seguinte comando de amostra atualiza as imagens das instâncias ECS no grupo de dimensionamento para Alibaba Cloud Linux 2.1903 LTS 64 bits:
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup --Parameters "{ \"invokeType\": \"invoke\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"scalingConfigurationId\": \"asc-bp1bx8mzur534edp****\", \"imageId\": \"aliyun_2_1903_x64_20G_alibase_20200529.vhd\", \"sourceImageId\": \"centos_7_8_x64_20G_alibase_20200717.vhd\", \"OOSAssumeRole\": \"\", \"enterProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"exitProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }" -
O comando de exemplo para execução de script é apresentado abaixo. Ele executa os comandos shell
df -heifconfignas instâncias ECS do grupo de dimensionamento para visualizar informações de disco e configuração de rede das instâncias.aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByRunCommandInScalingGroup --Parameters "{ \"invokeType\": \"invoke\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"commandType\": \"RunShellScript\", \"invokeScript\": \"df -h\nifconfig\", \"rollbackScript\": \"df -h\nifconfig\", \"OOSAssumeRole\": \"\", \"exitProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"enterProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }" -
O comando de exemplo para instalação do pacote OOS é mostrado a seguir. Ele instala uniformemente o pacote WordPress criado no OOS nas instâncias ECS do grupo de dimensionamento.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByConfigureOOSPackage --Parameters "{ \"invokeType\": \"invoke\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"packageName\": \"wordpress\", \"packageVersion\": \"v4\", \"action\": \"install\", \"OOSAssumeRole\": \"\", \"enterProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"exitProcess\": [ \"ScaleIn\", \"ScaleOut\", \"HealthCheck\", \"AlarmNotification\", \"ScheduledAction\" ], \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"
-
-
Visualize os detalhes da execução para confirmar o resultado da tarefa de atualização contínua.
Ao executar o comando CLI para uma tarefa de atualização contínua, uma execução é criada automaticamente no OOS. Use o ID de execução retornado para visualizar detalhes como resultado e saída da execução. O exemplo a seguir mostra como encontrar o ID de execução e visualizar os detalhes de uma execução de script.
-
Encontre o ID de execução da tarefa de atualização contínua nas informações retornadas pelo comando.
Um ID de execução de amostra é mostrado na figura a seguir.

-
Substitua o ID de execução de amostra pelo seu próprio e execute o seguinte comando da Alibaba Cloud CLI para visualizar os detalhes da execução:
aliyun oos ListExecutions --ExecutionId exec-40e2e17ef7e04****
-
Reverter uma tarefa de atualização contínua: Tratamento de anormalidades durante atualizações contínuas
Se ocorrer uma exceção durante o processo de atualização contínua, ou se você precisar usar a configuração anterior após a atualização, execute uma tarefa de reversão para restaurar a configuração das instâncias ECS no grupo de dimensionamento. Esta etapa fornece um comando de exemplo que demonstra como reverter uma tarefa de atualização contínua já executada.
-
Encontre o ID de execução da tarefa de atualização contínua nas informações retornadas pelo comando.
Um ID de execução de amostra é mostrado na figura a seguir.

-
Insira um comando da Alibaba Cloud CLI para executar uma tarefa de reversão.
Para descrições dos parâmetros do modelo OOS usados no código de amostra, consulte Referência: Parâmetros do modelo OOS.
NotaAo executar uma tarefa de reversão, o OOS realiza automaticamente operações com base na tarefa de atualização contínua, como filtrar as instâncias ECS a serem revertidas, além de suspender e retomar processos de dimensionamento. Portanto, você pode omitir alguns parâmetros.
-
O seguinte comando de amostra reverte as imagens das instâncias ECS para CentOS 7.8 64 bits:
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup --Parameters "{ \"invokeType\": \"rollback\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"scalingConfigurationId\": \"asc-bp1bx8mzur534edp****\", \"sourceImageId\": \"centos_7_8_x64_20G_alibase_20200717.vhd\", \"sourceExecutionId\": \"exec-83dba59be77d430****\", \"OOSAssumeRole\": \"\", \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }" -
O comando de exemplo para execução do script de reversão é apresentado abaixo. Ele executa o script de reversão nas instâncias ECS. Aqui, os comandos Shell
df -heifconfigainda são usados como exemplos; substitua o script conforme necessário.aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByRunCommandInScalingGroup --Parameters "{ \"invokeType\": \"rollback\", \"commandType\": \"RunShellScript\", \"rollbackScript\": \"df -h\nifconfig\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"sourceExecutionId\": \"exec-40e2e17ef7e046****\", \"OOSAssumeRole\": \"\", \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }" -
O comando de exemplo para reverter a instalação do pacote OOS é mostrado a seguir. Ele instala uniformemente a versão histórica do pacote WordPress criado no OOS nas instâncias ECS.
aliyun oos StartExecution --TemplateName ACS-ESS-RollingUpdateByConfigureOOSPackage --Parameters "{ \"invokeType\": \"rollback\", \"scalingGroupId\": \"asg-bp18p2yfxow2dloq****\", \"packageVersion\": \"v3\", \"packageName\": \"wordpress\", \"sourceExecutionId\": \"exec-f4e61f2f21fe490****\", \"OOSAssumeRole\": \"\", \"batchNumber\": 2, \"batchPauseOption\": \"Automatic\" }"
-
-
Visualize os detalhes da execução para confirmar o resultado da tarefa de reversão.
Ao executar o comando CLI para uma tarefa de reversão, uma execução também é criada automaticamente no OOS. Siga as etapas descritas na Etapa 3 para visualizar detalhes como resultado e saída da execução.
Referência: Parâmetros do modelo OOS
Esta seção lista os parâmetros dos modelos públicos do OOS usados nos comandos de amostra.
ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup
Parâmetro | Descrição |
invokeType | Tipo da tarefa. Valores válidos:
|
scalingGroupId | ID do grupo de dimensionamento onde a tarefa é executada. |
scalingConfigurationId | ID da configuração de dimensionamento ativa no grupo de dimensionamento. |
imageId | ID da imagem usada para substituir a imagem atual. |
sourceImageId | ID da imagem usada para a reversão. |
OOSAssumeRole | Função RAM usada para executar a tarefa. Valor padrão: OOSServiceRole. |
enterProcess | Processos de dimensionamento suspensos quando a tarefa inicia. |
exitProcess | Processos de dimensionamento que devem ser retomados quando a tarefa termina. |
batchNumber | Número de lotes em que as instâncias ECS do grupo de dimensionamento são divididas durante a execução da tarefa. Cada lote contém pelo menos uma instância ECS. |
batchPauseOption | Configuração de pausa para execução da tarefa. Valores válidos:
|
sourceExecutionId | ID de execução da tarefa de atualização contínua original quando uma tarefa de reversão é executada. |
Você também pode visualizar mais descrições de parâmetros no console do OOS. Por exemplo, para a região China (Hangzhou), consulte ACS-ESS-RollingUpdateByReplaceSystemDiskInScalingGroup.
ACS-ESS-RollingUpdateByRunCommandInScalingGroup
Parâmetro | Descrição |
invokeType | Tipo da tarefa. Valores válidos:
|
scalingGroupId | ID do grupo de dimensionamento onde a tarefa é executada. |
commandType | Tipo de script a ser executado. O valor RunShellScript indica um script shell. |
invokeScript | Script executado nas instâncias ECS durante a tarefa de atualização contínua. |
rollbackScript | Script executado nas instâncias ECS durante a tarefa de reversão. |
OOSAssumeRole | Função RAM usada para executar a tarefa. Valor padrão: OOSServiceRole. |
enterProcess | Processos de dimensionamento suspensos quando a tarefa inicia. |
exitProcess | Processos de dimensionamento que devem ser retomados quando a tarefa termina. |
batchNumber | Número de lotes em que as instâncias ECS do grupo de dimensionamento são divididas durante a execução da tarefa. Cada lote contém pelo menos uma instância ECS. |
batchPauseOption | Configuração de pausa para execução da tarefa. Valores válidos:
|
sourceExecutionId | ID de execução da tarefa de atualização contínua original quando uma tarefa de reversão é executada. |
Você também pode visualizar mais descrições de parâmetros no console do OOS. Por exemplo, para a região China (Hangzhou), consulte ACS-ESS-RollingUpdateByRunCommandInScalingGroup.
ACS-ESS-RollingUpdateByConfigureOOSPackage
Parâmetro | Descrição |
invokeType | Tipo da tarefa. Valores válidos:
|
scalingGroupId | ID do grupo de dimensionamento onde a tarefa é executada. |
packageName | Nome do pacote. |
packageVersion | Versão do pacote. |
action | Método usado para configurar o pacote. Valores válidos:
Valor padrão: install. |
OOSAssumeRole | Função RAM usada para executar a tarefa. Valor padrão: OOSServiceRole. |
enterProcess | Processos de dimensionamento suspensos quando a tarefa inicia. |
exitProcess | Processos de dimensionamento que devem ser retomados quando a tarefa termina. |
batchNumber | Número de lotes em que as instâncias ECS do grupo de dimensionamento são divididas durante a execução da tarefa. Cada lote contém pelo menos uma instância ECS. |
batchPauseOption | Configuração de pausa para execução da tarefa. Valores válidos:
|
sourceExecutionId | ID de execução da tarefa de atualização contínua original quando uma tarefa de reversão é executada. |
Você também pode visualizar mais descrições de parâmetros no console do OOS. Por exemplo, para a região China (Hangzhou), consulte ACS-ESS-RollingUpdateByConfigureOOSPackage.