thedumbtechguy.unattended-upgrades
Rol de Ansible: Actualizaciones Automáticas
Un rol de Ansible para configurar actualizaciones automáticas en Ubuntu. Solo las actualizaciones de seguridad están habilitadas por defecto.
Requisitos
Este rol ha sido probado solo en
Ubuntu 16.04
yUbuntu 16.10
.
Para Debian, es posible que necesites cambiar el valor de unattended_origins_patterns
ya que por defecto está dirigido a Ubuntu.
Correo Nocturno
Si configuras unattended_mail
con una dirección de correo electrónico, asegúrate de que el comando mailx
esté disponible y que tu sistema pueda enviar correos electrónicos.
Reinicio Automático
Si activas la función de reinicio automático (unattended_automatic_reboot
), el rol intentará instalar el paquete update-notifier-common
, que es necesario en algunos sistemas para detectar y ejecutar el reinicio después de la actualización. Opcionalmente, puedes definir un tiempo específico para reiniciar (unattended_automatic_reboot_time
).
Variables
unattended_origins_patterns
: array de patrones de origen para determinar si el paquete puede ser instalado automáticamente. Para más detalles, consulta Patrones de Origen a continuación.- Predeterminado:
['origin=Ubuntu,archive=${distro_codename}-security']
- Predeterminado:
unattended_package_blacklist
: paquetes que no se actualizarán automáticamente.- Predeterminado:
[]
- Predeterminado:
unattended_autofix_interrupted_dpkg
: si en caso de una salida sucia de dpkg, ejecutardpkg --force-confold --configure -a
.- Predeterminado:
true
- Predeterminado:
unattended_minimal_steps
: dividir la actualización en partes más pequeñas para poder interrumpirlas con SIGUSR1.- Predeterminado:
false
- Predeterminado:
unattended_install_on_shutdown
: instalar todas las actualizaciones automáticas cuando la máquina se está apagando.- Predeterminado:
false
- Predeterminado:
unattended_mail
: dirección de correo electrónico para enviar información sobre actualizaciones o problemas con las actualizaciones automáticas.- Predeterminado:
false
(no enviar ningún correo)
- Predeterminado:
unattended_mail_only_on_error
: enviar correo solo en errores; de lo contrario, se enviará un correo cada vez que haya una actualización de paquete.- Predeterminado:
false
- Predeterminado:
unattended_remove_unused_dependencies
: eliminación automática de nuevas dependencias no utilizadas después de la actualización.- Predeterminado:
false
- Predeterminado:
unattended_automatic_reboot
: reiniciar automáticamente el sistema si algún paquete actualizado lo requiere, inmediatamente después de la actualización.- Predeterminado:
false
- Predeterminado:
unattended_automatic_reboot_time
: reiniciar automáticamente el sistema si algún paquete actualizado lo requiere, a una hora específica (HH:MM) en lugar de inmediatamente después de la actualización.- Predeterminado:
false
- Predeterminado:
unattended_ignore_apps_require_restart
: las actualizaciones automáticas no actualizarán automáticamente algunos paquetes críticos que requieren reinicio después de una actualización (es decir, si hay una directivaXB-Upgrade-Requires: app-restart
en su archivo debian/control). Si estableces esta opción entrue
, las actualizaciones automáticas actualizarán estos paquetes independientemente de la directiva.- Predeterminado:
false
- Predeterminado:
Patrones de Origen
El Patrón de Origen es una alternativa más poderosa a la opción de Orígenes Permitidos usada en versiones anteriores de las actualizaciones automáticas.
Un patrón se compone de palabras clave específicas:
a
,archive
,suite
– ej.stable
,trusty-security
(archive=stable
)c
,component
– ej.main
,crontrib
,non-free
(component=main
)l
,label
– ej.Debian
,Debian-Security
,Ubuntu
o
,origin
– ej.Debian
,Paquetes Multimedia no Oficiales
,Ubuntu
n
,codename
– ej.jessie
,jessie-updates
,trusty
(esto solo es compatible conunattended-upgrades
>= 0.80)site
– ej.http.debian.net
Puedes revisar los repositorios disponibles usando apt-cache policy
y depurar tu elección usando el comando unattended-upgrades -d
en un sistema objetivo.
Además, las actualizaciones automáticas soportan dos macros (variables), derivadas de /etc/debian_version
:
${distro_id}
– Nombre de la distribución instalada, ej.Debian
oUbuntu
.${distro_codename}
– Nombre en código instalado, ej.jessie
otrusty
.
Utilizar ${distro_codename}
se debe preferir sobre usar stable
o oldstable
como selectores, ya que cuando stable
pasa a oldstable
, no se instalarán actualizaciones de seguridad en absoluto. Lo mismo ocurre al actualizar tu instalación de oldstable
a stable
; si olvidas cambiar esto en tus patrones de origen, puedes no recibir actualizaciones de seguridad para tu nueva versión de la distribución. Con ${distro_codename}
, estos casos nunca pueden ocurrir.
Ejemplo de Uso
- hosts: all
vars:
unattended_origins_patterns:
- 'origin=Ubuntu,archive=${distro_codename}-security'
- 'o=Ubuntu,a=${distro_codename}-updates'
unattended_package_blacklist: [cowsay, vim]
unattended_mail: '[email protected]'
roles:
- setup_unattended_upgrades
Ejemplos de Patrones
Por defecto, sólo se permiten actualizaciones de seguridad. Puedes agregar más patrones para permitir que las actualizaciones automáticas instalen más paquetes automáticamente, sin embargo, ten en cuenta que las actualizaciones mayores automatizadas pueden potencialmente romper tu sistema.
En Ubuntu, el archivo siempre contiene el nombre en código de la distribución.
unattended_origins_patterns:
- 'origin=Ubuntu,archive=${distro_codename}-security'
- 'o=Ubuntu,a=${distro_codename}'
- 'o=Ubuntu,a=${distro_codename}-updates'
- 'o=Ubuntu,a=${distro_codename}-proposed-updates'
Licencia
MIT / BSD
Información del Autor
Este rol fue creado por TheDumbTechGuy (twitter | blog | galaxy)
Créditos
Este rol fue construido sobre el trabajo original de:
ansible-galaxy install thedumbtechguy.unattended-upgrades