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 )

Благодарности

Эта роль была создана на основе оригинальной работы:

О проекте

Configure unattended upgrades for Linux.

Установить
ansible-galaxy install thedumbtechguy/ansible-role-unattended-upgrades
Лицензия
Unknown
Загрузки
1647
Владелец