Atualizar uma AMIWindows Server - AWS Systems Manager

Atualizar uma AMIWindows Server

O runbook AWS-UpdateWindowsAmi permite automatizar tarefas de manutenção de imagens em Amazon Machine Image (AMI) do Amazon Windows, sem precisar criar o runbook em JSON ou YAML. Este runbook tem suporte para o Windows Server 2008 R2 ou posterior. Você pode usar o runbook AWS-UpdateWindowsAmi para realizar os seguintes tipos de tarefas:

  • Instalar todas as atualizações do Windows e atualizar softwares da Amazon (comportamento padrão).

  • Instalar atualizações específicas do Windows e atualizar softwares da Amazon.

  • Personalize uma AMI usando seus scripts.

Antes de começar

Antes de começar a trabalhar com runbooks, configure funções para o Automation a fim de adicionar uma política iam:PassRole que referencia o ARN do perfil da instância ao qual você deseja conceder acesso. Opcionalmente, configure o Amazon EventBridge para o Automation, um recurso do AWS Systems Manager. Para ter mais informações, consulte Configurar a automação. Esta demonstração também requer que você especifique o nome de um perfil de instância do AWS Identity and Access Management (IAM). Para obter mais informações sobre como criar um perfil de instância do IAM, consulte Configurar permissões de instância obrigatórias para o Systems Manager.

nota

As atualizações do AWS Systems Manager SSM Agent são normalmente implementadas em regiões diferentes e em momentos distintos. Quando você personalizar ou atualizar uma AMI, use apenas AMIs de origem publicadas para a região na qual você está trabalhando. Isso garante que você trabalhe com o SSM Agent mais recente lançado nessa região e evite problemas de compatibilidade.

O runbook AWS-UpdateWindowsAmi aceita os seguintes parâmetros de entrada:

Parâmetro Tipo Descrição

SourceAmiId

String

(Obrigatório) O ID da AMI de origem. Você pode fazer referência automaticamente ao ID de uma AMI do Windows Server mais recente, ID usando um parâmetro público Parameter Store do Systems Manager. Para obter mais informações, consulte Consultar os mais recentes IDs da AMI do Windows usando o Parameter Store do AWS Systems Manager.

SubnetId

String

(Opcional) A sub-rede na qual você deseja iniciar a instância temporária. Você deve especificar um valor para esse parâmetro se tiver excluído a VPC padrão.

IamInstanceProfileName

String

(Obrigatório) O nome do perfil para o perfil de instância do IAM criado em Configurar permissões de instância obrigatórias para o Systems Manager. A função de perfil de instância concede ao Automation permissão para realizar ações em suas instâncias, como executar comandos ou iniciar e interromper serviços. O runbook usa apenas o nome da função de perfil da instância.

AutomationAssumeRole

String

(Obrigatório) O nome da função de serviço do IAM que você criou em Configurar a automação. A função de serviço (também chamada de função assumida) concede ao Automation permissão para assumir sua função do IAM e realizar ações em seu nome. Por exemplo, a função de serviço permite que o Automation crie uma nova AMI ao executar a ação aws:createImage em um runbook. Para esse parâmetro, o ARN completo deve ser especificado.

TargetAmiName

String

(Opcional) O nome da nova AMI após a sua criação. O nome padrão é uma string gerada pelo sistema que inclui o ID da AMI de origem, bem como a data e a hora de criação.

InstanceType

String

(Opcional) O tipo de instância a ser executada como o host do espaço de trabalho. Os tipos de instância variam de acordo com a região. O tipo padrão é t2.medium.

PreUpdateScript

String

(Opcional) Um script a ser executado antes de atualizar a AMI. Insira um script no runbook ou no runtime como um parâmetro.

PostUpdateScript

String

(Opcional) Um script a ser executado depois de atualizar a AMI. Insira um script no runbook ou no runtime como um parâmetro.

IncludeKbs

String

(Opcional) Especifique um ou mais IDs de artigo da Base de Dados de Conhecimento Microsoft (KB) para incluir. Você pode instalar vários IDs usando valores separados por vírgulas. Formatos válidos: KB9876543 ou 9876543.

ExcludeKbs

String

(Opcional) Especifique um ou mais IDs de artigo da Base de Dados de Conhecimento Microsoft (KB) para excluir. Você pode excluir vários IDs usando valores separados por vírgulas. Formatos válidos: KB9876543 ou 9876543.

Categorias

String

(Opcional) Especifique uma ou mais categorias de atualização. Você pode filtrar categorias usando valores separados por vírgulas. Opções: Atualização crítica, Atualização de segurança, Atualização de definição, Pacote de atualizações, Pacote de serviços, Ferramenta, Atualização ou Driver. Os formatos válidos incluem uma única entrada, por exemplo: Atualização crítica. Como alternativa, você pode especificar uma lista separada por vírgulas: Atualização crítica, Atualização de segurança, Atualização de definição.

SeverityLevels

String

(Opcional) Especifique um ou mais níveis de gravidade MSRC associados a uma atualização. Você pode filtrar os níveis de gravidade usando valores separados por vírgulas. Opções: Crítica, Importante, Baixa, Moderada ou Não especificada. Os formatos válidos incluem uma única entrada, por exemplo: Crítica. Como alternativa, você pode especificar uma lista separada por vírgulas: Crítica, Importante, Baixa.

Etapas da Automação

O runbook AWS-UpdateWindowsAmi inclui as seguintes etapas, por padrão.

Etapa 1: launchInstance (ação aws:runInstances)

Esta etapa executa uma instância com uma função de perfil da instância do IAM no SourceAmiID especificado.

Etapa 2: runPreUpdateScript (ação aws:runCommand)

Essa etapa permite especificar um script como uma string que é executada antes que as atualizações sejam instaladas.

Etapa 3: updateEC2Config (ação aws:runCommand)

Esta etapa usa o runbook AWS-InstallPowerShellModule para baixar um módulo PowerShell público da AWS. O Systems Manager verifica a integridade do módulo usando um hash SHA-256. Em seguida, o Systems Manager verifica o sistema operacional para determinar se deve atualizar EC2Config ou EC2Launch. EC2Config é executado no Windows Server 2008 R2 até o Windows Server 2012 R2. EC2Launch é executado no Windows Server 2016.

Etapa 4: updateSSMAgent (ação aws:runCommand)

Esta etapa atualiza o SSM Agent usando o runbook AWS-UpdateSSMAgent.

Etapa 5: updateAWSPVDriver (ação aws:runCommand)

Esta etapa atualiza os drivers de rede do AWS PV usando o runbook AWS-ConfigureAWSPackage.

Etapa 6: updateAwsEnaNetworkDriver (ação aws:runCommand)

Esta etapa atualiza os drivers de rede do AWS ENA usando o runbook AWS-ConfigureAWSPackage.

Etapa 7: installWindowsUpdates (ação aws:runCommand)

Essa etapa instala atualizações do Windows usando o runbook AWS-InstallWindowsUpdates. Por padrão, o Systems Manager procura e instala todas as atualizações ausentes. Você pode alterar o comportamento padrão especificando um dos seguintes parâmetros: IncludeKbs, ExcludeKbs, Categories ou SeverityLevels.

Etapa 8: runPostUpdateScript (ação aws:runCommand)

Essa etapa permite especificar um script como uma string que é executada após a instalação das atualizações.

Etapa 9: runSysprepGeneralize (ação aws:runCommand)

Esta etapa usa o runbook AWS-InstallPowerShellModule para baixar um módulo PowerShell público da AWS. O Systems Manager verifica a integridade do módulo usando um hash SHA-256. Em seguida, o Systems Manager executa o sysprep usando métodos com suporte da AWS para EC2Launch (Windows Server 2016) ou EC2Config (Windows Server 2008 R2 a 2012 R2).

Etapa 10: stopInstance (ação aws:changeInstanceState)

Essa etapa interrompe a instância atualizada.

Etapa 11: createImage (ação aws:createImage)

Essa etapa cria uma nova AMI com um nome descritivo que a vincula ao ID de origem e ao horário de criação. Por exemplo: “AMI Generated by EC2 Automation on {{global:DATE_TIME}} from {{SourceAmiId}}” em que DATE_TIME e SourceID representam variáveis de Automação.

Etapa 12: TerminateInstance (ação aws:changeInstanceState)

Essa etapa limpa a automação, encerrando a instância em execução.

Saída

Essa seção permite designar as saídas de várias etapas ou valores de qualquer parâmetro como saída da Automação. Por padrão, o resultado é o ID da AMI do Windows atualizada, criada pela automação.

nota

Por padrão, quando o Automation executa o runbook AWS-UpdateWindowsAmi e cria uma instância temporária, o sistema usa a VPC padrão (172.30.0.0/16). Se tiver excluído a VPC padrão, você receberá o seguinte erro:

VPC não definida 400

Para resolver esse problema, você deve fazer uma cópia do runbook AWS-UpdateWindowsAmi e especificar um ID de sub-rede. Para ter mais informações, consulte VPC não definida 400.

Para criar uma AMI Windows com patch aplicado usando o Automation
  1. Instale e configure a AWS Command Line Interface (AWS CLI), caso ainda não o tenha feito.

    Para obter informações, consulte Instalar ou atualizar a versão mais recente da AWS CLI.

  2. Execute o comando a seguir para executar o runbook AWS-UpdateWindowsAmi. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações. O exemplo de comando abaixo usa uma AMI recente do Amazon EC2 para minimizar o número de patches que precisam ser aplicados. Se você executar esse comando mais de uma vez, deverá especificar um valor exclusivo para targetAMIname. Os nomes da AMI deverão ser exclusivos.

    aws ssm start-automation-execution \ --document-name="AWS-UpdateWindowsAmi" \ --parameters SourceAmiId='AMI ID',IamInstanceProfileName='IAM instance profile',AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'

    O comando retorna um ID de execução. Copie esse ID para a área de transferência. Você usará esse ID para visualizar o status da automação.

    {
        "AutomationExecutionId": "automation execution ID"
    }
  3. Para visualizar a automação usando a AWS CLI, execute o seguinte comando:

    aws ssm describe-automation-executions
  4. Para visualizar detalhes sobre o andamento da automação, execute o comando a seguir.

    aws ssm get-automation-execution --automation-execution-id automation execution ID
nota

Dependendo do número de patches aplicados, o processo de aplicação de patches do Windows, executado nessa automação de amostra, poderá demorar 30 minutos ou mais para ser concluído.