Uso de actualizaciones deterministas a través de repositorios versionados - Amazon Linux 2023

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de actualizaciones deterministas a través de repositorios versionados

Uso de un sistema determinista mejorado

nota

El comportamiento predeterminado del administrador de paquetes ha cambiado deAL2.

Las actualizaciones deterministas son una forma eficaz de garantizar que todos los cambios en los entornos de producción puedan probarse exhaustivamente antes de una implementación generalizada. Cada AL2 023 nuevo AMI está vinculado a una versión concreta del AL2 023. Esto proporciona un comportamiento determinista de las versiones de los paquetes del sistema operativo que se instalan al lanzar el paquete específico. AMI Las actualizaciones locales pueden ser para una versión de lanzamiento específica, lo que garantiza un comportamiento determinista en toda la flota. A medida que vaya pasando a versiones de actualización nuevas AMIs o existentes, podrá probar cada una de ellas en su cartera de CI/CD y detectar cualquier posible problema antes de implementarlas en entornos de producción.

Puede utilizar herramientas como Amazon EC2 Systems Manager Patch Manager para organizar la aplicación de actualizaciones en una flota. En el AMIs caso de los edificios derivados del lanzamiento de AMIs los nuevos AL2 023, EC2Image Builder puede crear, Reciba notificaciones sobre nuevas actualizaciones parchear y probar automáticamenteAMIs, o bien puede saber cuándo AMIs hay nuevas bases disponibles o activar sus propios procesos de AMI creación.

Para obtener información sobre cómo restringir las actualizaciones a las de un aviso en particular, consulte Aplicación de actualizaciones de seguridad in situ

Para aplicar los parches in situ, puede utilizar el administrador de dnf paquetes. Al ejecutar el comando dnf upgrade, el sistema comprueba si hay actualizaciones en el repositorio que especifica la variable releasever. Una válida releasever es una de las siguientes: latest o una versión con fecha sellada, como 2023.5.20240730.

Puede cambiar el valor de releasever mediante uno de los métodos siguientes. Estos métodos se muestran en orden descendente de prioridad del sistema. Esto significa que el método 1 anula los métodos 2 y 3, y el método 2 anula el método 3.

  1. El valor de la marca de línea de comandos, --releasever=latest, si se usa.

  2. El valor que se especifica en el archivo de variables de anulación /etc/dnf/vars/releasever, si está establecido.

  3. La versión del paquete system-release actualmente instalado.

En el siguiente ejemplo, la versión es 2023.0.20230210:

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

En un sistema recién instalado, la variable de anulación no está presente. No hay actualizaciones disponibles porque el sistema está bloqueado en la versión instalada de 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!

Puede obtener paquetes de una versión específica con la marca releasever para proporcionar la versión que desee.

$ 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

Como la opción --releasever anula ambas, system-release y /etc/dnf/vars/releasever, el resultado de esta actualización es el siguiente:

  1. La actualización reemplaza todos los paquetes instalados que cambiaron entre la versión anterior y la nueva.

  2. La actualización bloquea el sistema en el repositorio de la nueva versión desystem-release.

Al especificar siempre a qué se debe actualizar releasever (es decir, a la versión AL2 023), se obtiene un conjunto determinista de cambios en la flota. Has lanzado la versión A, actualizada a B, y luego se actualizó a C.

Actualización selectiva de un sistema determinista actualizado

nota

Se recomienda instalar todas las actualizaciones de una nueva versión en lugar de seleccionar actualizaciones específicas. Aplicar solo una parte de una actualización al sistema operativo debería ser una excepción a la práctica habitual de realizar la actualización completa.

Es posible que desee instalar algunos paquetes de una versión reciente y, al mismo tiempo, dejar el sistema bloqueado en la versión original.

Puede utilizar dnf check-update para identificar los paquetes que desee actualizar.

$ 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

Instale los paquetes que desee actualizar. Utilice sudo dnf upgrade --releasever=latest y los nombres de los paquetes para asegurarse de que el paquete system-release permanezca inalterado.

$ 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

El uso de sudo dnf upgrade --releasever=latest actualiza todos los paquetes, incluido system-release. Después, la versión permanece bloqueada con el nuevo system-release a menos que establezca la anulación persistente.

Uso de la anulación persistente con una actualización determinista

nota

Con las actualizaciones deterministas, puede integrar los cambios del sistema operativo en su proceso de CI/CD. Al deshabilitar las actualizaciones deterministas, se elimina la posibilidad de realizar pruebas antes de implementarlas.

En lugar de añadirlas--releasever=latest, puede utilizar la anulación persistente para desbloquear el sistema estableciendo el valor de la variable en latest. Si se utiliza siemprelatest, se revierte el comportamiento del AL2 023 al modelo de AL2 actualización, en el que cualquier llamada al administrador de paquetes siempre tendrá en cuenta la última versión y no estará limitada a ninguna versión específica del sistema operativo.

aviso

Al desbloquear el administrador de paquetes mediante una anulación persistente de las actualizaciones deterministas, se corre el riesgo de descubrir cualquier posible incompatibilidad entre la aplicación y una actualización del sistema operativo en fase de producción.

Si bien las incompatibilidades son poco frecuentes, con una actualización del sistema operativo se integran nuevos cambios de código en el entorno, las pruebas de integración pueden impedir la implementación de cambios de código que tengan un impacto negativo en los entornos de producción.

$ 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

Si ha utilizado la variable de anulación /etc/dnf/vars/releasever, utilice el siguiente comando para restablecer el comportamiento de bloqueo predeterminado borrando el valor de anulación.

$ sudo rm /etc/dnf/vars/releasever

El uso de una modificación persistente del uso de una versión específica latest en lugar de una versión específica es similar al comportamiento predeterminado de. AL2 Hay servicios que se crean en AMIs función de los AL2 cuales se deshabilita este comportamiento y se limitan a versiones de paquetes específicas, como las que se obtienen de forma predeterminada en la versión 023. AL2

En lugar de deshabilitar las actualizaciones deterministas, recomendamos reemplazar las instancias por otras que se lancen desde una nueva versión. AMI Si el reemplazo de instancias no es una opción, recomendamos usar herramientas como Amazon EC2 Systems Manager Patch Manager para organizar la aplicación de actualizaciones en toda la flota. EC2Image Builder también puede crear, parchear y probar automáticamente sus propias imágenes AMIs derivadas de AL2 023 imágenes base. También puedes usarlo Reciba notificaciones sobre nuevas actualizaciones para activar tus propios oleoductos de AMI construcción.

Su uso latest en un entorno de preproducción y, posteriormente, su implementación en producción latest no proporciona protección contra ningún problema entre una actualización del sistema operativo y la aplicación. Una nueva versión de la AL2 023 puede publicarse en cualquier momento y, por lo tanto, todos los usos latest en producción conllevan riesgos.