Ao usar imagens personalizadas, mantenha-as atualizadas para garantir a segurança. As atualizações regulares incluem a instalação dos patches mais recentes do sistema operacional (SO), a atualização de middleware e a adição das versões mais recentes de softwares de terceiros. O modelo público do OOS ajuda a automatizar as atualizações de imagem e reduzir os custos operacionais.
Como funciona
O OOS oferece um modelo público que automatiza totalmente o processo de atualização de imagem. Para começar, selecione um modelo do OOS, forneça os parâmetros necessários, como comandos Shell para uma instância Linux, e crie uma execução para gerar uma nova imagem. Com o ECS, não é necessário instalar ferramentas adicionais, gerenciar o ciclo de vida das instâncias do OOS (criação, login, modificação e liberação) ou configurar variáveis de ambiente e pares de AccessKey. Também é possível personalizar modelos do OOS para agendar atualizações automáticas ou atualizar imagens em lotes.
Comparação com outros métodos de atualização de imagem
|
Método |
Ferramentas e dependências |
Vantagens |
Desvantagens |
|
Usar o OOS para criar e atualizar imagens personalizadas |
Ativar o OOS. Sem outras dependências. |
|
Nenhuma |
|
Sem outras dependências |
Fácil de usar no console do ECS |
|
|
Usar o Packer para criar uma imagem personalizada |
Instalação do Packer necessária. |
Código aberto com suporte multicloud |
|
Procedimento
Faça login no console do CloudOps Orchestration Service.
No painel de navegação à esquerda, escolha .
-
Localize o modelo Update Image e clique em Create an execution.

-
Clique em Next Step: Parameter Settings.

-
Configure os seguintes parâmetros:
Select Source Image: selecione a imagem de source a ser atualizada.
Image Settings: defina o nome e as tags da nova imagem.
Transit Instance Settings: configure o tipo de instância e outras definições do ECS.
Update Image Configuration: especifique o método de atualização, o tipo de comando e o conteúdo do script.
Advanced Options: por padrão, o OOS executa ações com as permissões do usuário atual. Se você especificar uma função do OOS, o OOS assumirá essa função para executar as ações.

-
Clique em Next Step: Confirm e, em seguida, clique em Confirm and Create.

-
Acesse para visualizar a execução recém-criada. Se o status da execução for Running, a atualização da imagem está em andamento.

-
Quando o status da execução mudar para Success, a atualização da imagem estará concluída. Encontre o ID da nova imagem na página de detalhes da execução.

Para obter mais informações sobre o processo de atualização, clique em Details na execução e visualize a aba Execution Logs para monitorar o progresso e o status em tempo real.
Apêndice 1: Modelo público e lógica
O conteúdo do modelo público ACS-ECS-UpdateImage é apresentado abaixo:
FormatVersion: OOS-2019-06-01
Description: Updates an existing ECS image via ECS Cloud Assistant then creates a
ECS image.
Parameters:
sourceImageId:
Description: The image ID for the ECS instances, centos_6_10_64_20G_alibase_20190326.vhd,
for example.
Type: String
AllowedPattern: '[A-Za-z0-9_\-\.]*'
MinLength: 1
MaxLength: 40
instanceType:
Description: The instance type for the ECS instances, ecs.g5.large, for example.
Type: String
AllowedPattern: ecs\.[A-Za-z0-9\.\-]*
MinLength: 1
MaxLength: 30
securityGroupId:
Description: The security group ID for the ECS instances, sg-xxxxxxxxxxxxxxxxxxxx,
for example.
Type: String
AllowedPattern: sg-[A-Za-z0-9]*
MinLength: 1
MaxLength: 30
vSwitchId:
Description: The virtual switch ID for the ECS instances, vsw-xxxxxxxxxxxxxxxxxxxx,
for example.
Type: String
AllowedPattern: vsw-[A-Za-z0-9]*
MinLength: 1
MaxLength: 30
commandContent:
Description: The content of command.
Type: String
commandType:
Description: The type of command to run in ECS instance.
Type: String
AllowedValues:
- RunBatScript
- RunPowerShellScript
- RunShellScript
MinLength: 1
MaxLength: 30
targetImageName:
Description: The name of image.
Type: String
AllowedPattern: '[A-Za-z0-9\-_]*'
MinLength: 1
MaxLength: 30
OOSAssumeRole:
Description: The RAM role to be assumed by OOS.
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: checkNewImageName
Action: ACS::CheckFor
Description: Check image name is available.
Properties:
Service: ECS
API: DescribeImages
Parameters:
ImageName: '{{ targetImageName }}'
DesiredValues:
- 0
PropertySelector: TotalCount
- Name: runInstances
Action: ACS::ECS::RunInstances
Description: Create a ECS instance for the cloud assistant.
Properties:
imageId: '{{ sourceImageId }}'
instanceType: '{{ instanceType }}'
securityGroupId: '{{ securityGroupId }}'
vSwitchId: '{{ vSwitchId }}'
Outputs:
instanceId:
ValueSelector: instanceIds[0]
Type: String
- Name: installCloudAssistant
Action: ACS::ECS::InstallCloudAssistant
Description: Install cloud assostant for ECS instance.
OnError: deleteInstance
Properties:
instanceId: '{{ runInstances.instanceId }}'
- Name: runCommand
Action: ACS::ECS::RunCommand
Description: Run command on ECS instance.
OnError: deleteInstance
Properties:
commandContent: '{{ commandContent }}'
commandType: '{{ commandType }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: stopInstance
Action: ACS::ECS::StopInstance
Description: Stops the ECS instance by the instance ID.
Properties:
instanceId: '{{ runInstances.instanceId }}'
- Name: createImage
Action: ACS::ECS::CreateImage
Description: Create image with the specified image name and instance ID.
OnError: deleteInstance
Properties:
imageName: '{{ targetImageName }}'
instanceId: '{{ runInstances.instanceId }}'
Outputs:
imageId:
ValueSelector: imageId
Type: String
- Name: deleteInstance
Action: ACS::ExecuteAPI
Description: Deletes the ECS instance by the instance ID.
Properties:
Service: ECS
API: DeleteInstance
Risk: Normal
Parameters:
InstanceId: '{{ runInstances.instanceId }}'
Force: true
Outputs:
imageId:
Type: String
Value: '{{ createImage.imageId }}'
Este modelo executa as seguintes tarefas:
Verifica se o nome especificado para a nova imagem está disponível.
Cria e inicia uma instância temporária a partir da imagem de source, configurada com os parâmetros fornecidos.
Instala o cliente Cloud Assistant na instância temporária, caso ainda não esteja presente.
Executa os comandos de atualização na instância temporária por meio do Cloud Assistant e aguarda a conclusão bem-sucedida dos comandos.
Interrompe a instância temporária após a finalização dos comandos de atualização.
Cria uma imagem personalizada a partir da instância interrompida e aguarda a conclusão da criação.
Exclui a instância temporária.