Utilizzo degli aggiornamenti deterministici tramite repository con versioni - Amazon Linux 2023

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à.

Utilizzo degli aggiornamenti deterministici tramite repository con versioni

Uso di un sistema di aggiornamento deterministico

Nota

Il comportamento predefinito del gestore di pacchetti è cambiato da. AL2

Gli aggiornamenti deterministici sono un modo efficace per garantire che tutte le modifiche agli ambienti di produzione possano essere completamente testate prima di un'implementazione su vasta scala. Ogni nuovo AL2 023 AMI è bloccato su una particolare versione di 023. AL2 Ciò fornisce un comportamento deterministico delle versioni dei pacchetti del sistema operativo installate all'avvio di uno specifico. AMI Gli aggiornamenti in loco possono riguardare una versione di rilascio specifica, garantendo un comportamento deterministico in tutta la flotta. Quando passate a versioni nuove AMIs o già aggiornate, potete testarle tutte nella vostra pipeline CI/CD, individuando eventuali problemi potenziali prima di distribuirle negli ambienti di produzione.

Puoi utilizzare strumenti come Amazon EC2 Systems Manager Patch Manager per orchestrare l'applicazione degli aggiornamenti su una flotta. Per le build derivate AMIs quando viene rilasciata una nuova versione AL2 023AMIs, EC2Image Builder può creare, applicare patch e AMIs testare automaticamente, oppure è Ricevi notifiche sui nuovi aggiornamenti possibile sapere quando sono disponibili nuove AMIs basi o attivare pipeline di creazione AMI personalizzate.

Per informazioni su come limitare gli aggiornamenti a quelli di un particolare avviso, consulta Applicazione degli aggiornamenti di sicurezza in loco

Per applicare le patch in loco, è possibile utilizzare il gestore di pacchetti. dnf Quando esegui il comando dnf upgrade, il sistema verifica la presenza di aggiornamenti nel repository specificato dalla variabile releasever. Un valido releasever è uno dei due latest o una versione con data, ad esempio 2023.5.20240624.

È possibile modificare il valore di releasever utilizzando uno dei metodi descritti di seguito. Questi metodi sono elencati con priorità di sistema decrescente. Ciò significa che il metodo 1 sostituisce i metodi 2 e 3, e il metodo 2 sostituisce il metodo 3.

  1. Il valore nel flag della riga di comando, --releasever=latest, se utilizzato.

  2. Il valore specificato nel file della variabile di override, /etc/dnf/vars/releasever, se impostato.

  3. La versione attualmente installata del pacchetto system-release.

Nell'esempio seguente, la versione è 2023.0.20230210:

$ rpm -q system-release system-release-2023.0.20230210-0.amzn2023.noarch

In un sistema appena installato, la variabile di override non è presente. Non sono disponibili aggiornamenti perché il sistema è bloccato sulla versione installata di system-release.

$ cat /etc/dnf/vars/releasever cat: /etc/dnf/vars/releasever: No such file or directory
$ sudo dnf upgrade Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 06:14:12 PM UTC. Dependencies resolved. Nothing to do. Complete!

Puoi ottenere pacchetti di una versione specifica utilizzando il flag releasever per fornire la versione desiderata.

$ rpm -q system-release system-release-2023.0.20230222-0.amzn2023.noarch
$ sudo dnf upgrade --releasever=2023.0.20230329 Amazon Linux 2023 repository 26 MB/s | 12 MB 00:00 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel aarch64 6.1.21-1.45.amzn2023 amazonlinux 26 M Upgrading: amazon-linux-repo-s3 noarch 2023.0.20230329-0.amzn2023 amazonlinux 18 k ca-certificates noarch 2023.2.60-1.0.amzn2023.0.1 amazonlinux 828 k cloud-init noarch 22.2.2-1.amzn2023.1.7 amazonlinux 1.1 M ... [ list edited for clarity ] system-release noarch 2023.0.20230329-0.amzn2023 amazonlinux 29 k ... [ list edited for clarity ] vim-data noarch 2:9.0.1403-1.amzn2023.0.1 amazonlinux 25 k vim-minimal aarch64 2:9.0.1403-1.amzn2023.0.1 amazonlinux 753 k Transaction Summary ================================================================================ Install 1 Package Upgrade 42 Packages Total download size: 56 M

Poiché l'opzione --releasever sostituisce sia system-release che /etc/dnf/vars/releasever, il risultato di questo aggiornamento è il seguente:

  1. L'aggiornamento sostituisce tutti i pacchetti installati che sono stati modificati tra la versione precedente e quella nuova.

  2. L'aggiornamento blocca il sistema nel repository per la nuova versione di system-release.

Specificando sempre a cosa releasever (ad esempio la versione AL2 023) eseguire l'aggiornamento, si ottiene una serie deterministica di modifiche in tutta la flotta. Hai lanciato la versione A, aggiornato a B, e quindi aggiornato a C.

Aggiornamento selettivo di un sistema con aggiornamento deterministico

Nota

È consigliabile installare tutti gli aggiornamenti di una nuova versione anziché selezionare aggiornamenti specifici. L'applicazione solo di una parte di un aggiornamento al sistema operativo dovrebbe costituire un'eccezione alla prassi standard di eseguire l'intero aggiornamento.

Potresti voler installare pacchetti selezionati da un rilascio recente, lasciando al contempo il sistema bloccato sulla versione di rilascio originale.

Puoi utilizzare dnf check-update per identificare i pacchetti di cui vuoi eseguire l'aggiornamento.

$ sudo dnf check-update --releasever=latest --security Amazon Linux 2023 repository 13 MB/s | 10 MB 00:00 Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 02:52:21 AM UTC. bind-libs.aarch64 32:9.16.27-1.amzn2023.0.1 amazonlinux bind-license.noarch 32:9.16.27-1.amzn2023.0.1 amazonlinux bind-utils.aarch64 32:9.16.27-1.amzn2023.0.1 amazonlinux cryptsetup.aarch64 2.4.3-2.amzn2023.0.1 amazonlinux cryptsetup-libs.aarch64 2.4.3-2.amzn2023.0.1 amazonlinux curl-minimal.aarch64 7.85.0-1.amzn2023.0.1 amazonlinux glibc.aarch64 2.34-40.amzn2023.0.2 amazonlinux glibc-all-langpacks.aarch64 2.34-40.amzn2023.0.2 amazonlinux glibc-common.aarch64 2.34-40.amzn2023.0.2 amazonlinux glibc-locale-source.aarch64 2.34-40.amzn2023.0.2 amazonlinux gmp.aarch64 1:6.2.1-2.amzn2023.0.1 amazonlinux gnupg2-minimal.aarch64 2.3.7-1.amzn2023.0.2 amazonlinux gzip.aarch64 1.10-5.amzn2023.0.1 amazonlinux kernel.aarch64 6.1.12-17.42.amzn2023 amazonlinux kernel-tools.aarch64 6.1.12-17.42.amzn2023 amazonlinux libarchive.aarch64 3.5.3-2.amzn2023.0.1 amazonlinux libcurl-minimal.aarch64 7.85.0-1.amzn2023.0.1 amazonlinux libsepol.aarch64 3.4-3.amzn2023.0.2 amazonlinux libsolv.aarch64 0.7.22-1.amzn2023.0.1 amazonlinux libxml2.aarch64 2.9.14-1.amzn2023.0.1 amazonlinux logrotate.aarch64 3.20.1-2.amzn2023.0.2 amazonlinux lua-libs.aarch64 5.4.4-3.amzn2023.0.1 amazonlinux lz4-libs.aarch64 1.9.4-1.amzn2023.0.1 amazonlinux openssl.aarch64 1:3.0.5-1.amzn2023.0.3 amazonlinux openssl-libs.aarch64 1:3.0.5-1.amzn2023.0.3 amazonlinux pcre2.aarch64 10.40-1.amzn2023.0.1 amazonlinux pcre2-syntax.noarch 10.40-1.amzn2023.0.1 amazonlinux rsync.aarch64 3.2.6-1.amzn2023.0.2 amazonlinux vim-common.aarch64 2:9.0.475-1.amzn2023.0.1 amazonlinux vim-data.noarch 2:9.0.475-1.amzn2023.0.1 amazonlinux vim-enhanced.aarch64 2:9.0.475-1.amzn2023.0.1 amazonlinux vim-filesystem.noarch 2:9.0.475-1.amzn2023.0.1 amazonlinux vim-minimal.aarch64 2:9.0.475-1.amzn2023.0.1 amazonlinux xz.aarch64 5.2.5-9.amzn2023.0.1 amazonlinux xz-libs.aarch64 5.2.5-9.amzn2023.0.1 amazonlinux zlib.aarch64 1.2.11-32.amzn2023.0.3 amazonlinux

Installa i pacchetti di cui vuoi eseguire l'aggiornamento. Usa sudo dnf upgrade --releasever=latest e i nomi dei pacchetti per assicurarti che il pacchetto system-release rimanga invariato.

$ sudo dnf upgrade --releasever=latest openssl openssl-libs Last metadata expiration check: 0:01:28 ago on Wed 15 Feb 2023 02:52:21 AM UTC. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Upgrading: openssl aarch64 1:3.0.5-1.amzn2023.0.3 amazonlinux 1.1 M openssl-libs aarch64 1:3.0.5-1.amzn2023.0.3 amazonlinux 2.1 M Transaction Summary ================================================================================ Upgrade 2 Packages Total download size: 3.2 M
Nota

Usando sudo dnf upgrade --releasever=latest vengono aggiornati tutti i pacchetti, incluso system-release. Quindi, la versione rimane bloccata sul nuovo system-release a meno che non imposti l'override persistente.

Uso dell'override persistente con aggiornamento deterministico

Nota

Con gli aggiornamenti deterministici, è possibile integrare le modifiche del sistema operativo nella pipeline CI/CD. La disabilitazione degli aggiornamenti deterministici elimina la possibilità di eseguire test prima della distribuzione.

Invece di aggiungere--releasever=latest, è possibile utilizzare l'override persistente per sbloccare il sistema impostando il valore della variabile su latest. Utilizzandolo semprelatest, questo ripristina il comportamento di AL2 023 nel modello di AL2 aggiornamento, in cui qualsiasi chiamata al gestore di pacchetti esaminerà sempre l'ultima versione e non è vincolata a nessuna versione specifica del sistema operativo.

avvertimento

Sbloccando il gestore di pacchetti utilizzando una sovrascrittura persistente degli aggiornamenti deterministici, correte il rischio di scoprire ogni possibile incompatibilità tra l'applicazione e un aggiornamento del sistema operativo in produzione.

Sebbene le incompatibilità siano rare, con un aggiornamento del sistema operativo si integrano nuove modifiche al codice nell'ambiente, i test di integrazione possono impedire l'implementazione di modifiche al codice che hanno un impatto negativo sugli ambienti di produzione.

$ echo latest | sudo tee /etc/dnf/vars/releasever latest
$ sudo dnf upgrade Last metadata expiration check: 0:03:36 ago on Wed 15 Feb 2023 02:52:21 AM UTC. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel aarch64 6.1.73-45.135.amzn2023 amazonlinux 24 M Upgrading: acl aarch64 2.3.1-2.amzn2023.0.1 amazonlinux 72 k alternatives aarch64 1.15-2.amzn2023.0.1 amazonlinux 36 k amazon-ec2-net-utils noarch 2.3.0-1.amzn2023.0.1 amazonlinux 16 k at aarch64 3.1.23-6.amzn2023.0.1 amazonlinux 60 k attr aarch64 2.5.1-3.amzn2023.0.1 amazonlinux 59 k audit aarch64 3.0.6-1.amzn2023.0.1 amazonlinux 249 k audit-libs aarch64 3.0.6-1.amzn2023.0.1 amazonlinux 116 k aws-c-auth-libs aarch64 0.6.5-6.amzn2023.0.2 amazonlinux 79 k aws-c-cal-libs aarch64 0.5.12-7.amzn2023.0.2 amazonlinux 34 k aws-c-common-libs aarch64 0.6.14-6.amzn2023.0.2 amazonlinux 119 k aws-c-compression-libs aarch64 0.2.14-5.amzn2023.0.2 amazonlinux 22 k aws-c-event-stream-libs aarch64 0.2.7-5.amzn2023.0.2 amazonlinux 47 k aws-c-http-libs aarch64 0.6.8-6.amzn2023.0.2 amazonlinux 147 k aws-c-io-libs aarch64 0.10.12-5.amzn2023.0.6 amazonlinux 109 k aws-c-mqtt-libs aarch64 0.7.8-7.amzn2023.0.2 amazonlinux 61 k aws-c-s3-libs aarch64 0.1.27-5.amzn2023.0.3 amazonlinux 54 k aws-c-sdkutils-libs aarch64 0.1.1-5.amzn2023.0.2 amazonlinux 26 k aws-checksums-libs aarch64 0.1.12-5.amzn2023.0.2 amazonlinux 50 k awscli-2 noarch 2.7.8-1.amzn2023.0.4 amazonlinux 7.3 M basesystem noarch 11-11.amzn2023.0.1 amazonlinux 7.8 k bash aarch64 5.1.8-2.amzn2023.0.1 amazonlinux 1.6 M bash-completion noarch 1:2.11-2.amzn2023.0.1 amazonlinux 292 k bc aarch64 1.07.1-14.amzn2023.0.1 amazonlinux 120 k bind-libs aarch64 32:9.16.27-1.amzn2023.0.1 amazonlinux 1.2 M bind-license noarch 32:9.16.27-1.amzn2023.0.1 amazonlinux 14 k bind-utils aarch64 32:9.16.27-1.amzn2023.0.1 amazonlinux 206 k binutils aarch64 2.38-20.amzn2023.0.3 amazonlinux 4.6 M boost-filesystem aarch64 1.75.0-4.amzn2023.0.1 amazonlinux 55 k boost-system aarch64 1.75.0-4.amzn2023.0.1 amazonlinux 14 k boost-thread aarch64 1.75.0-4.amzn2023.0.1 amazonlinux 54 k bzip2 aarch64 1.0.8-6.amzn2023.0.1 amazonlinux 53 k bzip2-libs aarch64 1.0.8-6.amzn2023.0.1 amazonlinux 44 k c-ares aarch64 1.17.2-1.amzn2023.0.1 amazonlinux 107 k ca-certificates noarch 2021.2.50-1.0.amzn2023.0.3 amazonlinux 343 k checkpolicy aarch64 3.4-3.amzn2023.0.1 amazonlinux 345 k chkconfig aarch64 1.15-2.amzn2023.0.1 amazonlinux 162 k chrony aarch64 4.2-7.amzn2023.0.4 amazonlinux 314 k cloud-init noarch 22.2.2-1.amzn2023.1.7 amazonlinux 1.1 M cloud-utils-growpart aarch64 0.31-8.amzn2023.0.2 amazonlinux 31 k coreutils aarch64 8.32-30.amzn2023.0.2 amazonlinux 1.1 M coreutils-common aarch64 8.32-30.amzn2023.0.2 amazonlinux 2.0 M cpio aarch64 2.13-10.amzn2023.0.1 amazonlinux 269 k cracklib aarch64 2.9.6-27.amzn2023.0.1 amazonlinux 83 k cracklib-dicts aarch64 2.9.6-27.amzn2023.0.1 amazonlinux 3.6 M crontabs noarch 1.11-24.20190603git.amzn2023.0.1 amazonlinux 19 k crypto-policies noarch 20230128-1.gitdfb10ea.amzn2023.0.1 amazonlinux 61 k crypto-policies-scripts noarch 20230128-1.gitdfb10ea.amzn2023.0.1 amazonlinux 81 k ... Installing dependencies: amazon-linux-repo-cdn noarch 2023.0.20230210-0.amzn2023 amazonlinux 16 k xxhash-libs aarch64 0.8.0-3.amzn2023.0.1 amazonlinux 32 k Installing weak dependencies: amazon-chrony-config noarch 4.2-7.amzn2023.0.4 amazonlinux 14 k gawk-all-langpacks aarch64 5.1.0-3.amzn2023.0.1 amazonlinux 207 k Transaction Summary ================================================================================ Install 5 Packages Upgrade 413 Packages Total download size: 199 M
Nota

Se hai usato la variabile di override /etc/dnf/vars/releasever, utilizza il comando seguente per ripristinare il comportamento di blocco predefinito cancellando il valore di override.

$ sudo rm /etc/dnf/vars/releasever

L'uso di un override persistente latest rispetto a una versione specifica è simile al comportamento predefinito di. AL2 Esistono servizi che AMIs si basano sui AL2 quali disabilitano questo comportamento e si limitano a versioni di pacchetti specifiche, come quelle disponibili di default su 023. AL2

Piuttosto che disabilitare gli aggiornamenti deterministici, consigliamo di sostituire le istanze con altre lanciate da una nuova. AMI Se la sostituzione delle istanze non è un'opzione, consigliamo di utilizzare strumenti come Amazon EC2 Systems Manager Patch Manager per orchestrare l'applicazione degli aggiornamenti su una flotta. EC2Image Builder può anche creare, correggere e testare automaticamente le proprie immagini AMIs derivate da AL2 023 immagini di base. Puoi anche Ricevi notifiche sui nuovi aggiornamenti utilizzarle per attivare le tue pipeline di AMI costruzione.

L'utilizzo latest in un ambiente di preproduzione e la successiva distribuzione in produzione latest non forniscono protezione da eventuali problemi tra un aggiornamento del sistema operativo e l'applicazione. Una nuova versione AL2 023 può essere rilasciata in qualsiasi momento, pertanto tutti gli utilizzi latest in produzione comportano dei rischi.