unattended-upgrades
Ansible Роль: Несанкционированные Обновления
Роль Ansible для настройки несанкционированных обновлений на Ubuntu. По умолчанию включены только обновления безопасности.
Требования
Эта роль была протестирована только на
Ubuntu 16.04
иUbuntu 16.10
.
Для Debian вам, возможно, придется изменить значение unattended_origins_patterns
, так как по умолчанию оно предназначено для Ubuntu.
Несанкционированная Почта
Если вы укажете unattended_mail
адрес электронной почты, убедитесь, что команда mailx
доступна и ваша система может отправлять электронные письма.
Автоматическая Перезагрузка
Если вы включите функцию автоматической перезагрузки (unattended_automatic_reboot
), роль попытается установить пакет update-notifier-common
, который требуется на некоторых системах для обнаружения и выполнения перезагрузки после обновления. Вы можете дополнительно определить конкретное время для перезагрузки (unattended_automatic_reboot_time
).
Переменные
unattended_origins_patterns
: массив образцов источников, чтобы определить, может ли пакет быть установлен автоматически, подробности см. в Образцах Источников ниже.- По умолчанию:
['origin=Ubuntu,archive=${distro_codename}-security']
- По умолчанию:
unattended_package_blacklist
: пакеты, которые не будут автоматически обновляться- По умолчанию:
[]
- По умолчанию:
unattended_autofix_interrupted_dpkg
: нужно ли при некорректном выходе dpkg выполнять командуdpkg --force-confold --configure -a
- По умолчанию:
true
- По умолчанию:
unattended_minimal_steps
: разбить обновление на как можно более мелкие части, чтобы их можно было прервать с помощью SIGUSR1.- По умолчанию:
false
- По умолчанию:
unattended_install_on_shutdown
: устанавливать все несанкционированные обновления при выключении машины.- По умолчанию:
false
- По умолчанию:
unattended_mail
: адрес электронной почты для отправки информации об обновлениях или проблемах с несанкционированными обновлениями- По умолчанию:
false
(не отправлять электронные письма)
- По умолчанию:
unattended_mail_only_on_error
: отправлять электронные письма только в случае ошибок, иначе электронное письмо будет отправлено каждый раз при обновлении пакета.- По умолчанию:
false
- По умолчанию:
unattended_remove_unused_dependencies
: автоматически удалять новые неиспользуемые зависимости после обновления.- По умолчанию:
false
- По умолчанию:
unattended_automatic_reboot
: автоматически перезагружать систему, если какое-либо обновленное приложение этого требует, сразу после обновления.- По умолчанию:
false
- По умолчанию:
unattended_automatic_reboot_time
: автоматически перезагружать систему, если какое-либо обновленное приложение этого требует, в установленное время (HH:MM) вместо немедленной перезагрузки после обновления.- По умолчанию:
false
- По умолчанию:
unattended_ignore_apps_require_restart
: несанкционированные обновления не будут автоматически обновлять некоторые критически важные пакеты, требующие перезагрузки после обновления (например, в их файле debian/control есть директиваXB-Upgrade-Requires: app-restart
). С этой опцией, установленной вtrue
, несанкционированные обновления будут обновлять эти пакеты независимо от директивы.- По умолчанию:
false
- По умолчанию:
Образцы Источников
Образец источников является более мощной альтернативой опции Разрешенные Источники, использовавшейся в предыдущих версиях несанкционированного обновления.
Образец состоит из определенных ключевых слов:
a
,archive
,suite
– например,stable
,trusty-security
(archive=stable
)c
,component
– например,main
,crontrib
,non-free
(component=main
)l
,label
– например,Debian
,Debian-Security
,Ubuntu
o
,origin
– например,Debian
,Unofficial Multimedia Packages
,Ubuntu
n
,codename
– например,jessie
,jessie-updates
,trusty
(это поддерживается только сunattended-upgrades
>= 0.80)site
– например,http.debian.net
Вы можете просмотреть доступные репозитории, используя команду apt-cache policy
, и отладить свой выбор с помощью команды unattended-upgrades -d
на целевой системе.
Кроме того, несанкционированные обновления поддерживают две макроса (переменные), полученные из /etc/debian_version
:
${distro_id}
– название установленной дистрибуции, например,Debian
илиUbuntu
.${distro_codename}
– установленное кодовое имя, например,jessie
илиtrusty
.
Использование ${distro_codename}
предпочтительнее, чем использование stable
или oldstable
, так как после перехода stable
в oldstable
обновления безопасности вообще не будут устанавливаться или, что хуже, случайно будет установлен пакет из более новой версии дистрибутива. То же самое относится и к обновлению вашей установки с oldstable
на stable
. Если вы забудете изменить это в ваших образцах источников, вы можете не получить обновления безопасности для вашей более новой версии дистрибутива. С ${distro_codename}
оба случая никогда не произойдут.
Пример Использования
- 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
Примеры Образцов
По умолчанию разрешены только обновления безопасности. Вы можете добавить больше образцов, чтобы разрешить несанкционированным обновлениям устанавливать больше пакетов автоматически, но будьте осторожны, так как автоматические крупные обновления могут потенциально привести к сбоям в вашей системе.
В Ubuntu архив всегда содержит кодовое имя дистрибуции:
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'
Лицензия
MIT / BSD
Информация об Авторе
Эта роль была создана TheDumbTechGuy ( twitter | blog | galaxy )
Благодарности
Эта роль была создана на основе оригинальной работы:
ansible-galaxy install thedumbtechguy/ansible-role-unattended-upgrades