thedumbtechguy.unattended-upgrades
Rola Ansible: Automatyczne Aktualizacje
Rola Ansible do skonfigurowania automatycznych aktualizacji na Ubuntu. Domyślnie są włączone tylko aktualizacje zabezpieczeń.
Wymagania
Ta rola była testowana tylko na
Ubuntu 16.04
iUbuntu 16.10
.
Dla Debiana może być konieczna zmiana wartości unattended_origins_patterns
, ponieważ domyślnie dotyczy Ubuntu.
Automatyczna Poczta
Jeśli ustawisz unattended_mail
na adres e-mail, upewnij się, że polecenie mailx
jest dostępne i twój system może wysyłać e-maile.
Automatyczne Ponowne Uruchomienie
Jeśli włączysz funkcję automatycznego ponownego uruchamiania (unattended_automatic_reboot
), rola spróbuje zainstalować pakiet update-notifier-common
, który jest wymagany na niektórych systemach do wykrywania i wykonywania ponownego uruchomienia po aktualizacji. Możesz opcjonalnie określić konkretną porę na ponowne uruchomienie (unattended_automatic_reboot_time
).
Zmienne
unattended_origins_patterns
: tablica wzorców pochodzenia, aby określić, czy pakiet może być automatycznie zainstalowany, więcej informacji w sekcji Wzorce Pochodzenia poniżej.- Domyślnie:
['origin=Ubuntu,archive=${distro_codename}-security']
- Domyślnie:
unattended_package_blacklist
: pakiety, które nie będą automatycznie aktualizowane- Domyślnie:
[]
- Domyślnie:
unattended_autofix_interrupted_dpkg
: czy w przypadku nieczystego zakończenia dpkg uruchomićdpkg --force-confold --configure -a
- Domyślnie:
true
- Domyślnie:
unattended_minimal_steps
: podzielić aktualizację na jak najmniejsze części, aby można je było przerwać za pomocą SIGUSR1.- Domyślnie:
false
- Domyślnie:
unattended_install_on_shutdown
: zainstalować wszystkie aktualizacje bez nadzorowania podczas wyłączania maszyny.- Domyślnie:
false
- Domyślnie:
unattended_mail
: adres e-mail do wysyłania informacji o aktualizacjach lub problemach z automatycznymi aktualizacjami- Domyślnie:
false
(nie wysyłać żadnych e-maili)
- Domyślnie:
unattended_mail_only_on_error
: wysyłaj e-mail tylko w przypadku błędów, w przeciwnym razie e-mail będzie wysyłany za każdym razem, gdy nastąpi aktualizacja pakietu.- Domyślnie:
false
- Domyślnie:
unattended_remove_unused_dependencies
: automatycznie usuwać nowe nieużywane zależności po aktualizacji.- Domyślnie:
false
- Domyślnie:
unattended_automatic_reboot
: automatycznie uruchomić system, jeśli jakikolwiek zaktualizowany pakiet tego wymaga, natychmiast po aktualizacji.- Domyślnie:
false
- Domyślnie:
unattended_automatic_reboot_time
: automatycznie uruchomić system, jeśli jakikolwiek zaktualizowany pakiet tego wymaga, o określonej porze (HH:MM) zamiast natychmiast po aktualizacji.- Domyślnie:
false
- Domyślnie:
unattended_ignore_apps_require_restart
: automatyczne aktualizacje nie będą aktualizować niektórych krytycznych pakietów wymagających ponownego uruchomienia po aktualizacji (tj. istnieje dyrektywaXB-Upgrade-Requires: app-restart
w ich pliku debian/control). Ustawiając tę opcję natrue
, automatyczne aktualizacje zaktualizują te pakiety, niezależnie od dyrektywy.- Domyślnie:
false
- Domyślnie:
Wzorce Pochodzenia
Wzorce Pochodzenia to bardziej zaawansowana opcja w porównaniu do opcji Dozwolone Pochodzenia używanej w poprzednich wersjach automatycznych aktualizacji.
Wzorzec składa się z określonych słów kluczowych:
a
,archive
,suite
– np.stable
,trusty-security
(archive=stable
)c
,component
– np.main
,crontrib
,non-free
(component=main
)l
,label
– np.Debian
,Debian-Security
,Ubuntu
o
,origin
– np.Debian
,Unofficial Multimedia Packages
,Ubuntu
n
,codename
– np.jessie
,jessie-updates
,trusty
(jest to wspierane tylko wunattended-upgrades
>= 0.80)site
– np.http.debian.net
Możesz przejrzeć dostępne repozytoria za pomocą apt-cache policy
i debugować swój wybór, używając polecenia unattended-upgrades -d
na docelowym systemie.
Dodatkowo automatyczne aktualizacje obsługują dwie makra (zmienne), pochodzące z /etc/debian_version
:
${distro_id}
– nazwa zainstalowanej dystrybucji, np.Debian
lubUbuntu
.${distro_codename}
– kodowa nazwa zainstalowanej dystrybucji, np.jessie
lubtrusty
.
Używanie ${distro_codename}
powinno być preferowane zamiast używania stable
lub oldstable
jako wybranego, ponieważ po przesiadce stable
na oldstable
, nie będą instalowane żadne aktualizacje zabezpieczeń, ani tym gorzej, pakiet z nowszej wersji dystrybucji może zostać przypadkowo zainstalowany. To samo dotyczy aktualizacji instalacji z oldstable
na stable
. Jeśli zapomnisz zmienić to w swoich wzorcach pochodzenia, możesz nie otrzymać aktualizacji zabezpieczeń dla nowszej wersji dystrybucji. Korzystając z ${distro_codename}
, oba przypadki nigdy nie będą miały miejsca.
Przykład Użycia
- 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
Przykłady Wzorca
Domyślnie dozwolone są tylko aktualizacje zabezpieczeń. Możesz dodać więcej wzorców, aby umożliwić automatyczne instalowanie większej liczby pakietów, jednak miej na uwadze, że automatyczne aktualizacje dużych pakietów mogą potencjalnie uszkodzić twój system.
W Ubuntu archiwum zawsze zawiera kodową nazwę dystrybucji
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'
Licencja
MIT / BSD
Informacje o autorze
Ta rola została stworzona przez TheDumbTechGuy ( twitter | blog | galaxy )
Podziękowania
Ta rola została zbudowana na podstawie oryginalnej pracy:
ansible-galaxy install thedumbtechguy.unattended-upgrades