Aggiornamento di un'AMI Linux
Questa procedura guidata di Automazione Systems Manager illustra come utilizzare la console o la AWS CLI e il runbook AWS-UpdateLinuxAmi
per aggiornare un'AMI Linux con le patch più recenti dei pacchetti specificati. Il servizio di automazione è una funzionalità di AWS Systems Manager. Il runbook AWS-UpdateLinuxAmi
automatizza l'installazione anche di altri pacchetti e configurazioni specifici del sito. È possibile aggiornare un'ampia gamma di distribuzioni Linux utilizzando questa procedura guidata, tra cui Ubuntu Server, CentOS, RHEL, SLES o AMIs di Amazon Linux. Per un elenco completo delle versioni Linux supportate, consulta Prerequisiti di Patch Manager.
Il runbook AWS-UpdateLinuxAmi
ti 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.
-
Aggiornamento di tutti i pacchetti di distribuzione e del software Amazon su Amazon Linux, Red Hat Enterprise Linux, Ubuntu Server, SUSE Linux Enterprise Server, o CentOS Amazon Machine Image (AMI). Questo è il comportamento predefinito del runbook.
-
Installazione di AWS Systems Manager SSM Agent su un'immagine esistente in modo da abilitare le funzionalità di Systems Manager, ad esempio l'esecuzione remota dei comandi tramite AWS Systems Manager Run Command oppure la raccolta dell'inventario software tramite Inventory.
-
Installazione di pacchetti software aggiuntivi.
Prima di iniziare
Prima di iniziare a utilizzare i runbook, devi configurare i ruoli e, facoltativamente, EventBridge per il servizio di automazione. Per ulteriori informazioni, consultare Configurazione del servizio di automazione. Questa procedura dettagliata richiede inoltre di specificare il nome di un profilo dell'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) L'ID origine di AMI. |
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. Se si specifica l'Amazon Resource Name (ARN), l'automazione ha esito negativo. |
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 permette al servizio di automazione di creare una nuova AMI quando viene eseguita l'operazione |
TargetAmiName |
Stringa |
(Facoltativo) Nome della nuova AMI dopo la creazione. Il nome predefinito è una stringa generata dal sistema contenente l'ID dell'AMI di origine e la data/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
Il runbook AWS-UpdateLinuxAmi
include le seguenti operazioni di automazione, per impostazione predefinita.
- Fase 1: launchInstance (operazione
aws:runInstances
) -
Questa fase avvia un'istanza utilizzando i dati utente di Amazon Elastic Compute Cloud (Amazon EC2) e un ruolo del profilo dell'istanza IAM. I dati utente installano l'SSM Agent appropriato, in base al sistema operativo. L'installazione di SSM Agent consente di utilizzare le funzionalità di Systems Manager, ad esempio Run Command, State Manager e Inventory.
- Fase 2: updateOSSoftware (operazione
aws:runCommand
) -
Questa fase esegue i comandi seguenti sull'istanza avviata:
-
Scarica uno script di aggiornamento da 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
) -
Questa fase crea una nuova AMI con un nome dettagliato che lo lega all'ID di origine e all'ora di creazione. Ad esempio: "AMI generata dal servizio di automazione di EC2 in data {{global:DATE_TIME}} da {{SourceAmiId}}" dove DATE_TIME e SourceID rappresentano le variabili del servizio 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 ID dell'AMI 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, consultare VPC not defined 400 (VPC non definito 400).
Per creare un'AMI con patch applicate utilizzando il servizio di automazione (AWS Systems Manager)
Aprire la console di AWS Systems Manager all'indirizzo https://console.aws.amazon.com/systems-manager/
. Nel pannello di navigazione, scegliere Automation (Automazione).
-
Scegliere Execute automation (Esegui automazione).
-
Nell'elenco Automation document (Documento di automazione) scegliere
AWS-UpdateLinuxAmi
. -
Nella sezione Document details (Dettagli documento) verificare che l'opzione Document version (Versione documento) sia impostata su Default version at runtime (Versione predefinita al tempo di esecuzione).
-
Scegliere Next (Successivo).
-
Nella sezione Execution Mode (Modalità esecuzione), scegliere Simple Execution (Esecuzione semplice).
-
Nella sezione Input parameters (Inserisci parametri) inserire le informazioni raccolte nella sezione Before you begin (Prima di iniziare).
-
Scegliere Execute (Esegui). La console visualizza lo stato dell'esecuzione del servizio di automazione.
Al termine dell'automazione, avviare un'istanza di test dall'AMI aggiornata 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.