niedziela, 3 lutego 2013

Automatyczne aktualizacje - Debian Squeeze

Jeżeli posiadamy kilka / kilkanaście maszyn z systemem Debian, wygodnie jest skonfigurować automatyczne pobieranie aktualizacji dla pakietów zainstalowanych na tych maszynach. Podobne narzędzia dostępne są w systemach z rodziny MS, nazywają się WSUS dostępny jest w systemach 2003-2008 R2.


Potrzebujemy Debiana Squeeze oraz dostęp do sieci.

1) Podstawowa konfiguracja:


apt-get install unattended-upgrades bsd-mailx


Modyfikujemy konfigurację pakietu, który będzie odpowiadał za instalowanie aktualizacji bez ingerencji użytkownika:


nano /etc/apt/apt.conf.d/50unattended-upgrades

Domyślna konfiguracja jest przygotowana do bezproblemowego działania. Jednak możemy pobierać tylko stabilne wersje paczek, możemy blokować paczki, których nie chcemy pobierać. Poniżej przykład konfiguracji, jak widzimy wszystko jest dokładnie skomentowane, wystarczy zapoznać się z komentarzami i w odpowiednie miejsca wpisać nasze ograniczenia:


// Automatically upgrade packages from these (origin, archive) pairsUnattended-Upgrade::Allowed-Origins {        "${distro_id} stable";        "${distro_id} ${distro_codename}-security";//      "${distro_id} ${distro_codename}-updates";//      "${distro_id} ${distro_codename}-proposed-updates";};
// List of packages to not updateUnattended-Upgrade::Package-Blacklist {//      "vim";//      "libc6";//      "libc6-dev";//      "libc6-i686";};
// Send email to this address for problems or packages upgrades// If empty or unset then no email is sent, make sure that you// have a working mail setup on your system. The package 'mailx'// must be installed or anything that provides /usr/bin/mail.//Unattended-Upgrade::Mail "root@localhost";
// Do automatic removal of new unused dependencies after the upgrade// (equivalent to apt-get autoremove)//Unattended-Upgrade::Remove-Unused-Dependencies "false";
// Automatically reboot *WITHOUT CONFIRMATION* if a// the file /var/run/reboot-required is found after the upgrade//Unattended-Upgrade::Automatic-Reboot "false";

// Use apt bandwidth limit feature, this example limits the download// speed to 70kb/sec//Acquire::http::Dl-Limit "70";


Musimy utworzyć plik, który będzie nadzorował okresowe pobieranie aktualizacji:


nano /etc/apt/apt.conf.d/02periodic

// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";
// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";
// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";
// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";
// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "7";




Po dodaniu do crona (/etc/cron.daily/apt) aktualizacje będą sprawdzane raz na dobę. Wszystko co zostało pobrane będą zapisywane w logach (/var/log/unattended-upgrades/unattended-upgrades.log). Będzie wyglądał mniej więcej tak:


2013-02-03 16:49:30,878 INFO Initial blacklisted packages:
2013-02-03 16:49:30,880 INFO Starting unattended upgrades script
2013-02-03 16:49:30,880 INFO Allowed origins are: ["('Debian', 'stable')", "('Debian', 'squeeze-security')"]
2013-02-03 16:50:05,222 INFO Packages that are upgraded: apt apt-listchanges apt-utils base-files bind9-host
console-setup dnsutils dpkg e2fslibs e2fsprogs host isc-dhcp-client isc-dhcp-common keyboard-configuration
klibc-utils libbind9-60 libcomerr2 libdns69 libgssapi-krb5-2 libgssrpc4 libisc62 libisccc60 libisccfg62
libk5crypto3 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2
liblwres60 libperl5.10 libruby1.8 libss2 libxml2 linux-base linux-image-2.6.32-5-amd64 login openssl passwd
perl perl-base perl-modules python python-apt python-apt-common python-minimal tzdata
2013-02-03 16:50:05,225 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg_2011-07-13_16:50:05.224836.log'
2013-02-03 16:51:51,290 INFO All upgrades installed


2) Skonfigurujemy wysyłanie powiadomień o dostępnych aktualizacjach:


apt-get install apticron

vi /etc/apticron/apticron.conf


Dodajemy do niego informacje, gdzie będą wysyłane powiadomienia. Będą wysyłane poprzez lokalne "mail" - o ile można to tak nazwać, dlatego też nie musimy instalować choć by Postfix'a:


# set EMAIL to a space separated list of addresses which will be notified of# impending updates#EMAIL="root@localhost admin@yourdomain.com"



Brak komentarzy:

Prześlij komentarz