Aggiornamento in corso AMIs - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiornamento in corso AMIs

I seguenti tutorial spiegano come eseguire l'aggiornamento Amazon Machine Image (AMIs) per includere le patch più recenti.

Aggiorna un Linux AMI (AWS CLI)

Questa procedura dettagliata di AWS Systems Manager automazione mostra come utilizzare il AWS-UpdateLinuxAmi runbook AWS Command Line Interface (AWS CLI) e Systems Manager per applicare automaticamente le patch a un Linux Amazon Machine Image (AMI) con le versioni più recenti dei pacchetti specificati. L'automazione è uno strumento in AWS Systems Manager. Il runbook AWS-UpdateLinuxAmi automatizza l'installazione anche di altri pacchetti e configurazioni specifici del sito. È possibile aggiornare diverse distribuzioni Linux utilizzando questa procedura dettagliata, tra cui Ubuntu Server, CentOS, RHEL, SLES o Amazon Linux AMIs. Per un elenco completo delle versioni Linux supportate, consultaPatch Manager prerequisiti.

Il runbook AWS-UpdateLinuxAmi permette di automatizzare i processi di manutenzione delle immagini senza dover creare il runbook in JSON o YAML. È possibile utilizzare il runbook AWS-UpdateLinuxAmi per eseguire i tipi di processi seguenti.

  • Aggiorna tutti i pacchetti di distribuzione e il software Amazon su Amazon Linux, Red Hat Enterprise Linux, Ubuntu Server, SLES o Cent OS Amazon Machine Image (AMI). Questo è il comportamento predefinito del runbook.

  • Installa AWS Systems Manager SSM Agent su un'immagine esistente per abilitare le funzionalità di Systems Manager, come l'esecuzione di comandi remoti utilizzando AWS Systems Manager Run Command o raccolta dell'inventario software utilizzando Inventory.

  • Installazione di pacchetti software aggiuntivi.

Prima di iniziare

Prima di iniziare a lavorare con i runbook, configurate i ruoli e, facoltativamente, EventBridge per l'automazione. Per ulteriori informazioni, consulta Configurazione del servizio di automazione. Questa procedura dettagliata richiede inoltre di specificare il nome di un profilo di istanza AWS Identity and Access Management (IAM). Per ulteriori informazioni sulla creazione di un profilo dell'istanza IAM, consulta la pagina Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager.

Il runbook AWS-UpdateLinuxAmi accetta i parametri di input seguenti.

Parametro Tipo Descrizione

SourceAmiId

Stringa

(Obbligatorio) La fonte AMI ID. Puoi fare riferimento automaticamente all'ID più recente di un Amazon EC2 AMI per Linux utilizzando un AWS Systems Manager Parameter Store parametro pubblico. Per ulteriori informazioni, consulta Query per la versione più recente di Amazon Linux AMI IDs utilizzando AWS Systems Manager Parameter Store.

IamInstanceProfileName

Stringa

(Obbligatorio) Il nome del ruolo del profilo dell'istanza IAM creato in Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager. Il ruolo del profilo dell'istanza concede le autorizzazioni al servizio di automazione per eseguire operazioni sulle istanze, ad esempio l'esecuzione di comandi o l'avvio e l'arresto dei servizi. Il runbook utilizza solo il nome del ruolo del profilo dell'istanza.

AutomationAssumeRole

Stringa

(Obbligatorio) Nome del ruolo di servizio IAM creato in Configurazione del servizio di automazione. Il ruolo di servizio (definito anche ruolo presunto) concede l'autorizzazione al servizio di automazione di assumere il ruolo IAM e di eseguire operazioni a nome dell'utente. Ad esempio, il ruolo di servizio consente ad Automation di crearne uno nuovo AMI quando si esegue l'aws:createImageazione in un runbook. Per questo parametro, è necessario specificare l'ARN completo.

TargetAmiName

Stringa

(Facoltativo) Il nome del nuovo AMI dopo che è stato creato. Il nome predefinito è una stringa generata dal sistema che include il codice sorgente AMI ID e data e ora di creazione.

InstanceType

Stringa

(Facoltativo) Tipo di istanza da avviare come host del workspace. I tipi di istanza variano in base alla regione. Il tipo predefinito è t2.micro.

PreUpdateScript

Stringa

(Facoltativo) URL di uno script da eseguire prima dell'applicazione degli aggiornamenti. L'impostazione predefinita (\"none\") non prevede l'esecuzione di uno script.

PostUpdateScript

Stringa

(Facoltativo) URL di uno script da eseguire dopo l'applicazione degli aggiornamenti ai pacchetti. L'impostazione predefinita (\"none\") non prevede l'esecuzione di uno script.

IncludePackages

Stringa

(Facoltativo) Vengono aggiornati solo i pacchetti specificati. Per impostazione predefinita (\"all\"), vengono applicati tutti gli aggiornamenti disponibili.

ExcludePackages

Stringa

(Facoltativo) Nomi dei pacchetti da non aggiornare, in tutte le condizioni. Per impostazione predefinita (\"none\"), non viene escluso alcun pacchetto.

Fasi di automazione

Per impostazione predefinita, il runbook AWS-UpdateLinuxAmi include le seguenti fasi.

Fase 1: launchInstance (operazione aws:runInstances)

Questo passaggio avvia un'istanza utilizzando i dati utente di Amazon Elastic Compute Cloud EC2 (Amazon) e un ruolo di profilo dell'istanza IAM. I dati utente installano l'SSM Agent appropriato, in base al sistema operativo. Installazione SSM Agent consente di utilizzare strumenti di Systems Manager come Run Command, State Managere Inventory.

Fase 2: aggiornamento OSSoftware (aws:runCommandazione)

Questa fase esegue i comandi seguenti sull'istanza avviata:

  • Scarica uno script di aggiornamento da Amazon Simple Storage Service (Amazon S3).

  • Esegue uno script facoltativo prima dell'aggiornamento.

  • Aggiorna i pacchetti di distribuzione e il software di Amazon.

  • Esegue uno script facoltativo dopo l'aggiornamento.

Il log di esecuzione viene memorizzato nella cartella /tmp in modo che l'utente possa visualizzarlo in un secondo momento.

Se si desidera aggiornare uno specifico set di pacchetti, è possibile specificare l'elenco di pacchetti utilizzando il parametro IncludePackages. Quando tale elenco viene specificato, il sistema tenta di aggiornare solo i pacchetti specificati e le relative dipendenze. Non verrà eseguito alcun altro aggiornamento. Per impostazione predefinita, quando non vengono specificati pacchetti da includere, il programma aggiorna tutti i pacchetti disponibili.

Se si desidera escludere dall'aggiornamento uno specifico set di pacchetti, è possibile specificare l'elenco di pacchetti utilizzando il parametro ExcludePackages. Quando tale elenco viene specificato, questi pacchetti conservano la propria versione corrente, indipendente dalle altre opzioni specificate. Per impostazione predefinita, quando non sono vengono specificati pacchetti da escludere, non verrà escluso alcun pacchetto.

Fase 3: stopInstance (operazione aws:changeInstanceState)

Questa fase arresta l'istanza aggiornata.

Fase 4: createImage (operazione aws:createImage)

Questo passaggio crea un nuovo AMI con un nome descrittivo che lo collega all'ID di origine e all'ora di creazione. Ad esempio: «AMI generato dall' EC2 automazione su {{global:DATE_time}} da {{}}» dove DATE_TIME e SourceAmiId SourceID rappresentano le variabili di automazione.

Fase 5: terminateInstance (operazione aws:changeInstanceState)

Questa fase esegue la pulizia dell'automazione mediante l'arresto dell'istanza in esecuzione.

Output

L'automazione restituisce il nuovo AMI ID come output.

Nota

Per impostazione predefinita, quando il servizio di automazione esegue il runbook AWS-UpdateLinuxAmi, il sistema crea un'istanza temporanea nel VPC predefinito (172.30.0.0/16). Se il VPC predefinito è stato eliminato, verrà restituito l'errore seguente:

VPC not defined 400

Per risolvere questo problema, è necessario creare una copia del runbook AWS-UpdateLinuxAmi e specificare un ID di sottorete. Per ulteriori informazioni, consulta VPC not defined 400 (VPC non definito 400).

Per creare un file patchato AMI utilizzando l'automazione
  1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  2. Eseguire il comando seguente per eseguire il runbook AWS-UpdateLinuxAmi. Sostituisci ogni example resource placeholder con le tue informazioni.

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

    Il comando restituisce un ID di esecuzione. Copia questo ID negli appunti. L'ID può essere utilizzato per visualizzare lo stato dell'automazione.

    { "AutomationExecutionId": "automation execution ID" }
  3. Per visualizzare l'automazione utilizzando il AWS CLI, esegui il seguente comando:

    aws ssm describe-automation-executions
  4. Eseguire il comando seguente per visualizzare i dettagli relativi al progresso dell'automazione. Sostituiscila automation execution ID con le tue informazioni.

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

    Il completamento del processo di aggiornamento può richiedere 30 minuti o un intervallo maggiore.

    Nota

    È inoltre possibile monitorare lo stato dell'automazione nella console. Nell'elenco, scegliere l'automazione appena eseguita e quindi scegliere la scheda Steps (Fasi). In questa scheda è riportato lo stato delle operazioni dell'automazione.

Al termine dell'automazione, avvia un'istanza di test dall'aggiornamento AMI per verificare le modifiche.

Nota

Se una fase qualsiasi dell'automazione ha esito negativo, le informazioni sul malfunzionamento vengono elencate nella pagina Automation Executions (Esecuzioni di automazioni). L'automazione è stata progettata per terminare l'istanza temporanea dopo il corretto completamento di tutti i processi. Se una fase ha esito negativo, il sistema potrebbe non terminare l'istanza. Pertanto, se una fase ha esito negativo, terminare manualmente l'istanza temporanea.