Tabela de Conteúdos
2.2.7 Atualizações automáticas
Para notificar por email o administrador do sistema, o pacote unattended-upgrades depende da instalação de um agente de transporte de e-mail ou MTA (Mail Transfer Agent). É portanto necessária a instalação de um 5.2.1 Servidor SMTP antes proceder à instalação deste pacote.
Uma preocupação do administrador é manter sempre o sistema com as mais recentes atualizações e correções de software. O pacote unattended-upgrades permite a instalação das atualizações dos pacotes de software de uma forma totalmente automática.
Instalação
root@server:~# apt-get install unattended-upgrades
Configuração
Por uma questão de segurança, a instalação do pacote unattended-upgrades não activa imediatamente as atualizações automáticas. Estas devem ser activadas no ficheiro /etc/apt/apt.conf.d/20auto-upgrades. Um exemplo desse ficheiro está disponível na pasta /usr/share/unattended-upgrades/, bastando copiá-lo para a pasta /etc/apt/apt.conf.d/:
root@server:~# cp /usr/share/unattended-upgrades/20auto-upgrades /etc/apt/apt.conf.d/
O ficheiro de configuração /etc/apt/apt.conf.d/20auto-upgrades deverá ativar a atualização da base de dados dos pacotes disponíveis, ativar a atualização automática dos pacotes instalados e efetuar uma limpeza semanal dos ficheiros descarregados:
- /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; APT::Periodic::AutocleanInterval "7";
No ficheiro de configuração /etc/apt/apt.conf.d/50unattended-upgrades podemos configurar a versão do Debian utilizada para a atualizações:
- /etc/apt/apt.conf.d/50unattended-upgrades
# [...] // Within lines unattended-upgrades allows 2 macros whose values are // derived from /etc/debian_version: // ${distro_id} Installed origin. // ${distro_codename} Installed codename (eg, "jessie") Unattended-Upgrade::Origins-Pattern { // Codename based matching: // This will follow the migration of a release through different // archives (e.g. from testing to stable and later oldstable). "o=Debian,n=jessie"; "o=Debian,n=jessie-updates"; // "o=Debian,n=jessie-proposed-updates"; "o=Debian,n=jessie,l=Debian-Security"; # [...]
Notificar por email o administrador do sistema sempre que são efetuadas atualizações:
- /etc/apt/apt.conf.d/50unattended-upgrades
# [...] // 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. A package that provides // 'mailx' must be installed. E.g. "user@example.com" Unattended-Upgrade::Mail "root"; # [...]
Reiniciar o serviço para ter em conta as alterações:
root@server:~# service unattended-upgrades restart
A lista de pacotes disponível será atualizada diariamente e, caso hajam atualizações disponíveis, estas serão instaladas de modo automático.
Verificação
Sempre que for efetuada uma atualização, é enviado um email ao administrador do sistema:
Subject: unattended-upgrades result for 'server': 'True' To: root@home.lan Date: Thu, 30 Apr 2015 01:27:55 +0100 (WEST) From: root@home.lan (root) Unattended upgrade returned: True Packages that were upgraded: curl libcurl3 libcurl3-gnutls=20 Unattended-upgrades log: Initial blacklisted packages:=20 Initial whitelisted packages:=20 Starting unattended upgrades script Allowed origins are: ['o=3DDebian,n=3Djessie', 'o=3DDebian,n=3Djessie-propo= sed-updates', 'o=3DDebian,n=3Djessie,l=3DDebian-Security', 'origin=3DDebian= ,archive=3Djessie,label=3DDebian-Security'] Packages that will be upgraded: curl libcurl3 libcurl3-gnutls Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg.= log' All upgrades installed
Periodicamente, poderá ser verificado se houve atualizações, bastando consultar os ficheiros de registo /var/log/unattended-upgrades/unattended-upgrades.log:
root@server:~# tail /var/log/unattended-upgrades/unattended-upgrades.log 2015-04-29 01:46:14,723 INFO Initial blacklisted packages: 2015-04-29 01:46:14,723 INFO Initial whitelisted packages: 2015-04-29 01:46:14,723 INFO Starting unattended upgrades script 2015-04-29 01:46:14,723 INFO Allowed origins are: ['o=Debian,n=jessie', 'o=Debian,n=jessie-proposed-updates', 'o=Debian,n=jessie,l=Debian-Security', 'origin=Debian,archive=jessie,label=Debian-Security'] 2015-04-29 01:46:15,841 INFO No packages found that can be upgraded unattended 2015-04-30 01:27:50,586 INFO Initial blacklisted packages: 2015-04-30 01:27:50,587 INFO Initial whitelisted packages: 2015-04-30 01:27:50,588 INFO Starting unattended upgrades script 2015-04-30 01:27:50,588 INFO Allowed origins are: ['o=Debian,n=jessie', 'o=Debian,n=jessie-proposed-updates', 'o=Debian,n=jessie,l=Debian-Security', 'origin=Debian,archive=jessie,label=Debian-Security'] 2015-04-30 01:27:52,921 INFO Packages that will be upgraded: curl libcurl3 libcurl3-gnutls 2015-04-30 01:27:52,924 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log' 2015-04-30 01:27:55,055 INFO All upgrades installed