{"id":5048,"date":"2021-06-28T14:29:38","date_gmt":"2021-06-28T12:29:38","guid":{"rendered":"https:\/\/diocesanos.es\/blogs\/equipotic\/?p=5048"},"modified":"2021-06-28T14:30:54","modified_gmt":"2021-06-28T12:30:54","slug":"unattended-upgrades-como-automatizar-las-actualizaciones-de-nuestro-linux","status":"publish","type":"post","link":"https:\/\/diocesanos.es\/blogs\/equipotic\/2021\/06\/28\/unattended-upgrades-como-automatizar-las-actualizaciones-de-nuestro-linux\/","title":{"rendered":"unattended-upgrades: C\u00f3mo automatizar las actualizaciones de nuestro linux"},"content":{"rendered":"\n<p>Una de las tareas m\u00e1s \u00abpesadas\u00bb para el responsable TIC es mantener actualizado y al d\u00eda tanto los sistemas operativos como las aplicaciones de los equipos del colegio. Si tienes servidores o equipos basados en Debian\/Ubuntu (que usen el gestor de paquetes apt) puedes actualizarlos de forma autom\u00e1tica y desatendida.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Update-Linux.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Update-Linux-1024x536.jpg\" alt=\"\" class=\"wp-image-5049\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Update-Linux-1024x536.jpg 1024w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Update-Linux-300x157.jpg 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Update-Linux-768x402.jpg 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Update-Linux.jpg 1268w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>El proceso es sencillo y si adem\u00e1s lo combinas con \u00ab<strong><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2016\/11\/11\/instalacion-y-actualizacion-de-apt-cacher\/\">Apt-cacher<\/a><\/strong>\u00bb no sobrecargar\u00e1s la red durante el proceso. Todo depende del servicio \u00ab<strong>unattended-upgrades<\/strong>\u00ab&#8230;<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2>[1] Instalaci\u00f3n y activaci\u00f3n del servicio<\/h2>\n<pre>sudo apt install unattended-upgrades<br>sudo dpkg-reconfigure -plow unattended-upgrades<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-38-01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"491\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-38-01.png\" alt=\"\" class=\"wp-image-5050\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-38-01.png 766w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-38-01-300x192.png 300w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><\/a><\/figure>\n\n\n\n<h2>[2] Opciones y configuraci\u00f3n b\u00e1sica<\/h2>\n<p>El fichero de configuraci\u00f3n de las actualizaciones desatendidas o autom\u00e1ticas es el siguiente:<\/p>\n<p><em><strong>\/etc\/apt\/apt.conf.d\/50unattended-upgrades<\/strong><\/em><\/p>\n<p>En Debian y en Ubuntu la configuraci\u00f3n est\u00e1ndar de <em>unattended-upgrades<\/em> solo aplicar\u00e1 las actualizaciones de seguridad. Si quieres modificar este comportamiento deber\u00e1s editar el archivo y modificar algunos par\u00e1metros. En particular, si observas el contenido del fichero, dentro de la secci\u00f3n <em><strong>Unattended-Upgrade::Allowed-Origins {<\/strong><\/em> ver\u00e1s algo similar a esto:<\/p>\n<pre style=\"font-size: 70%;\">Unattended-Upgrade::Allowed-Origins {<br>\"${distro_id}:${distro_codename}\";<br>\"${distro_id}:${distro_codename}-security\";<br><em>\/\/ Extended Security Maintenance; doesn't necessarily exist for<\/em><br><em>\/\/ every release and this system may not have it installed, but if<\/em><br><em>\/\/ available, the policy for updates is such that unattended-upgrades<\/em><br><em>\/\/ should also install from here by default.<\/em><br>\"${distro_id}ESMApps:${distro_codename}-apps-security\";<br>\"${distro_id}ESM:${distro_codename}-infra-security\";<br><em>\/\/ \"${distro_id}:${distro_codename}-updates\";<\/em><br><em>\/\/ \"${distro_id}:${distro_codename}-proposed\";<\/em><br><em>\/\/ \"${distro_id}:${distro_codename}-backports\";<\/em><br>};<\/pre>\n<p>Si os fij\u00e1is, la totalidad de l\u00edneas est\u00e1n comentadas a excepci\u00f3n de las l\u00edneas que hacen referencia a las <strong>actualizaciones de seguridad<\/strong>. Para a\u00f1adir m\u00e1s tipos de actualizaciones tan solo tienes que descomentar las l\u00edneas correspondientes:<\/p>\n<ul>\n<li><strong>\u00ab${distro_id}:${distro_codename}-updates\u00bb;<\/strong> Al hacerlo se aplicar\u00e1n actualizaciones no cr\u00edticas no relacionadas con actualizaciones de seguridad. Activando esta opci\u00f3n se mantendr\u00e1 el sistema operativo m\u00e1s actualizado y minimizaremos el riesgo que se rompan dependencias.<\/li>\n<li><strong>\u00ab${distro_id}:${distro_codename}-proposed\u00bb;<\/strong> No recomendada para servidores. Si aplicas esta opci\u00f3n se instalar\u00e1n paquetes que a\u00fan no han sido aun aceptados para trabajar en una versi\u00f3n estable.<\/li>\n<li><strong>\u00ab${distro_id}:${distro_codename}-backports\u00bb;<\/strong> No recomendada para servidores que est\u00e9n en producci\u00f3n. Si la activan es posible que se actualicen paquetes y programas a una versi\u00f3n m\u00e1s actual. Pero con el riesgo de romper dependencias y crear inestabilidad en el sistema.<\/li>\n<\/ul>\n\n\n\n<h2>[3] A\u00f1adir repositorios adicionales a las actualizaciones autom\u00e1ticas<\/h2>\n<p>Aparte de los repositorios oficiales a m\u00ed personalmente me gusta contar en mis equipos con las versiones m\u00e1s recientes de algunos programas de los que previamente he a\u00f1adido sus or\u00edgenes v\u00eda \u00abPPA\u00bb o \u00abHTML\u00bb a la lista de \u00abapt\u00bb para que los tenga en cuenta.<\/p>\n<p>Ejecuta el siguiente comando para averiguar los datos de \u00aborigen:etiqueta\u00bb y crear su entrada personalizada en el archivo de configuraci\u00f3n (en mi caso descarto los oficiales de Ubuntu):<\/p>\n<pre style=\"font-size: 70%;\">sudo apt update<br>sudo grep -R 'Origin: \\|Label: ' \/var\/lib\/apt\/lists | grep -v Ubuntu<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-54-15.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-54-15-1024x474.png\" alt=\"\" class=\"wp-image-5051\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-54-15-1024x474.png 1024w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-54-15-300x139.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-54-15-768x356.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2021\/06\/Captura-de-pantalla-2021-06-28-13-54-15.png 1060w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>En mi caso particular la secci\u00f3n me quedar\u00eda como sigue:<\/p>\n<pre style=\"font-size: 70%;\">Unattended-Upgrade::Allowed-Origins {<br>\"${distro_id}:${distro_codename}\";<br>\"${distro_id}:${distro_codename}-security\";<br>\/\/ Extended Security Maintenance; doesn't necessarily exist for<br>\/\/ every release and this system may not have it installed, but if<br>\/\/ available, the policy for updates is such that unattended-upgrades<br>\/\/ should also install from here by default.<br>\"${distro_id}ESMApps:${distro_codename}-apps-security\";<br>\"${distro_id}ESM:${distro_codename}-infra-security\";<br>\"${distro_id}:${distro_codename}-updates\";<br>\"${distro_id}:${distro_codename}-proposed\";<br>\"${distro_id}:${distro_codename}-backports\";<br>\"LP-PPA-oibaf-graphics-drivers:Updated Open Graphics Drivers\";<br>\"dl.winehq.org:winehq\";<br>\"Canonical:Partner archive\";<br>\"LP-PPA-openshot.developers:Stable PPA - Official Releases\";<br>\"LP-PPA-ubuntuhandbook1-audacity:Audacity Audio Editor and Recorder\";<br>\"Google LLC:Google\";<br>\"LP-PPA-ubuntuhandbook1-gimp:GIMP Image Editor\";<br>\"LP-PPA-obsproject-obs-studio:OBS Studio\";<br>\"LP-PPA-libreoffice:LibreOffice Fresh\";<br>\"LP-PPA-inkscape.dev-stable:Inkscape Stable\";<br>\"LP-PPA-kdenlive-kdenlive-stable:Kdenlive release\";<br>};<\/pre>\n\n\n\n<h2>[4] Kernels, paquetes no necesarios, reinicios y otras opciones<\/h2>\n<p>Si contin\u00faan observando el contenido del fichero de configuraci\u00f3n ver\u00e1s que la secci\u00f3n <strong>Unattended-Upgrade::Package-Blacklist {<\/strong> permite definir los paquetes que no queremos que se actualicen de forma autom\u00e1tica. A modo de ejemplo, si descomentamos las siguientes l\u00edneas:<\/p>\n<pre style=\"font-size: 70%;\">Unattended-Upgrade::Package-Blacklist {<br>\/\/ The following matches all packages starting with linux-<br>\"linux-\";<br><br>\/\/ Use $ to explicitely define the end of a package name. Without<br>\/\/ the $, \"libc6\" would match all of them.<br>\"libc6$\";<br>\"libc6-dev$\";<br>\"libc6-i686$\";<br>...<\/pre>\n<p>No se actualizar\u00eda ning\u00fan paquete cuyo nombre empiece por \u00ablinux-\u00ab. Por lo tanto por ejemplo no se actualizar\u00e1 el Kernel. Tampoco se actualizar\u00eda ning\u00fan paquete cuyo nombre termine por \u00ablibc6\u00bb, \u00ablibc6-dev\u00bb o \u00ablibc6-i686\u00bb.<\/p>\n<p>M\u00e1s adelante aparecen (entre otras)las siguientes opciones interesantes:<\/p>\n<ul>\n<li><strong>Unattended-Upgrade::DevRelease \u00abfalse\u00bb;<\/strong>&nbsp; Permite actualizar todo el sistema a la siguiente versi\u00f3n disponible. Salvo que est\u00e9s muy seguro deber\u00edas dejarla en \u00abfalse\u00bb.&nbsp;<\/li>\n<li><strong>Unattended-Upgrade::AutoFixInterruptedDpkg \u00abtrue\u00bb;&nbsp;<\/strong> D\u00e9jala en \u00abtrue\u00bb para recuperar el proceso de actualizaci\u00f3n la pr\u00f3xima vez si este termina con errores o es interrumpido.<\/li>\n<li><strong>Unattended-Upgrade::InstallOnShutdown \u00abfalse\u00bb;<\/strong> Si est\u00e1 en \u00abtrue\u00bb las actualizaciones se aplicar\u00e1n al apagar nuestro servidor u ordenador. Esto har\u00e1 el apagado del ordenador m\u00e1s lento.<\/li>\n<li><strong>Unattended-Upgrade::MinimalSteps \u00abtrue\u00bb;<\/strong> Si es \u00abtrue\u00bb las actualizaciones se dividir\u00e1n en grupos m\u00e1s peque\u00f1os m\u00e1s f\u00e1ciles de interrumpir si fuera necesario. M\u00e1s lento pero m\u00e1s seguro.<\/li>\n<li><strong>Unattended-Upgrade::InstallOnShutdown \u00abfalse\u00bb;<\/strong> Si es \u00abtrue\u00bb las actualizaciones se aplicar\u00edan al apagar el equipo.<\/li>\n<li><strong>Unattended-Upgrade::Remove-Unused-Dependencies \u00abfalse\u00bb;<\/strong> Si el valor es true despu\u00e9s de actualizar el sistema operativo se desinstalaran de forma autom\u00e1tica todas las dependencias que no necesitamos.<\/li>\n<li><strong>Unattended-Upgrade::Remove-Unused-Kernel-Packages \u00abtrue\u00bb;<\/strong> Permite desinstalar los Kernel antiguos que no usamos de forma autom\u00e1tica.<\/li>\n<li><strong>Unattended-Upgrade::Automatic-Reboot \u00abfalse\u00bb;<\/strong> Si el valor es true permite reiniciar el servidor de forma autom\u00e1tica en el caso que una actualizaci\u00f3n lo requiera.<\/li>\n<li><strong>Unattended-Upgrade::Automatic-Reboot-Time \u00ab02:00\u00bb;<\/strong> En conjunci\u00f3n con el par\u00e1metro anterior, permite que el reinicio del servidor se haga a la hora que nosotros queramos. Por lo tanto si despu\u00e9s de actualizar el ordenador se tiene que reiniciar, no lo har\u00e1 hasta que sean las 2 de la madrugada.<\/li>\n<li><strong>Acquire::http::Dl-Limit \u00ab70\u00bb;<\/strong> Para limitar el ancho de banda consumido en la actualizaci\u00f3n. Si fijamos 70, la velocidad de descarga de las actualizaciones ser\u00e1 70kb\/segundo.<\/li>\n<\/ul>\n\n\n\n<h2>[5] Configurar la periodicidad de las actualizaciones<\/h2>\n<p>Edita el archivo de configuraci\u00f3n<\/p>\n<p><em><strong>\/etc\/apt\/apt.conf.d\/20auto-upgrades<\/strong><\/em><\/p>\n<p>y aseg\u00farate de que contenga las siguientes l\u00edneas:<\/p>\n<pre>APT::Periodic::Update-Package-Lists \"1\";<br>APT::Periodic::Unattended-Upgrade \"1\";<br>APT::Periodic::Download-Upgradeable-Packages \"1\";<br>APT::Periodic::AutocleanInterval \"7\";<\/pre>\n<p>El significado de cada una de las l\u00edneas de forma respectiva es el siguiente:<\/p>\n<ul>\n<li>Como m\u00ednimo una vez al d\u00eda se refrescar\u00e1n los repositorios de nuestra distribuci\u00f3n.<\/li>\n<li>Una vez al d\u00eda se intentar\u00e1 actualizar el sistema operativo en funci\u00f3n de la configuraci\u00f3n que tengamos en el fichero <em>\/etc\/apt\/apt.conf.d\/50unattended-upgrades.<\/em><\/li>\n<li>A diario se comprobar\u00e1n si existen actualizaciones y se descargar\u00e1n los paquetes binarios de la actualizaci\u00f3n. Los paquetes descargados quedar\u00e1n almacenados en la cache de apt y de este modo cuando realicemos una actualizaci\u00f3n manual ser\u00e1 mucho m\u00e1s r\u00e1pida.<\/li>\n<li>Cada 7 d\u00edas se borrar\u00e1 la totalidad de paquetes que est\u00e9n obsoletos en la cache del gestor de paquetes apt. De este modo la cache del gestor de paquetes apt no crecer\u00e1 desmesuradamente y se mantendr\u00e1 actualizada.<\/li>\n<\/ul>\n\n\n\n<h2>[6] Comprobaci\u00f3n final<\/h2>\n<p>Para asegurar que la configuraci\u00f3n aplicada es la correcta puedes ejecutar el siguiente comando:<\/p>\n<pre>sudo unattended-upgrade -d -v --dry-run<\/pre>\n<p>Esto simula el proceso de una actualizaci\u00f3n autom\u00e1tica. Si durante la simulaci\u00f3n no se producen errores entonces las actualizaciones autom\u00e1ticas se deber\u00edan realizar sin problema.<\/p>\n<p><em><strong>Nota<\/strong>: Si en vez de simular el comportamiento quieren forzar el proceso de actualizaci\u00f3n autom\u00e1tico tan solo tiene que ejecutar el comando borrando el par\u00e1metro &#8211;dry-run<\/em><\/p>\n\n\n\n<p>Art\u00edculo original:<a href=\"https:\/\/geekland.eu\/actualizaciones-automaticas-en-nuestro-equipo-con-unattended-upgrades\/\"> https:\/\/geekland.eu\/actualizaciones-automaticas-en-nuestro-equipo-con-unattended-upgrades\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una de las tareas m\u00e1s \u00abpesadas\u00bb para el responsable TIC es mantener actualizado y al d\u00eda tanto los sistemas operativos como las aplicaciones de los equipos del colegio. Si tienes servidores o equipos basados en Debian\/Ubuntu (que usen el gestor de paquetes apt) puedes actualizarlos de forma autom\u00e1tica y desatendida. El proceso es sencillo y &hellip; <a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2021\/06\/28\/unattended-upgrades-como-automatizar-las-actualizaciones-de-nuestro-linux\/\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">unattended-upgrades: C\u00f3mo automatizar las actualizaciones de nuestro linux<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":292,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4,148,195],"class_list":["post-5048","post","type-post","status-publish","format-standard","hentry","category-sin-categoria","tag-linux","tag-mantenimiento","tag-sistema"],"_links":{"self":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/5048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/users\/292"}],"replies":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/comments?post=5048"}],"version-history":[{"count":3,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/5048\/revisions"}],"predecessor-version":[{"id":5054,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/5048\/revisions\/5054"}],"wp:attachment":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/media?parent=5048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/categories?post=5048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/tags?post=5048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}