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 |
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
ouSeverityLevels
. - 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
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.
-
Execute o comando a seguir para executar o runbook
AWS-UpdateWindowsAmi
. Substitua cadaespaç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 paratargetAMIname
. 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
" } -
Para visualizar a automação usando a AWS CLI, execute o seguinte comando:
aws ssm describe-automation-executions
-
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.