Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have a lab full of workstations running Ubuntu 8.04 (Hardy Heron). My predecessors made a hackish bit of cron script to update, upgrade, and clean daily. I like the fact that it requires zero attention, but want to stick as close to distro-supported methods as possible, so future admins can find and understand it easily. Specifically, it seems that there is infrastructure in Ubuntu to do this more cleanly, so I'd rather use that instead. What does this entail?

This question was inspired by this one, which has a decent but scattered answer. What's the bottom line, based on the documentation?

share|improve this question

3 Answers 3

up vote 4 down vote accepted

This answer is based on reading the following files:

/etc/cron.daily/apt
/etc/apt/apt.conf.d/10periodic
/etc/apt/apt.conf.d/50unattended-upgrades
/usr/share/doc/unattended-upgrades/README

which are part of packages (including unattended-upgrades and update-notifier-common) included in the standard Ubuntu installation. There are other tools available from the distribution that could achieve the same ends, such as apticron and cron-apt.


In the file /etc/apt/apt.conf.d/10periodic, add a line

APT::Periodic::Unattended-Upgrade "1";

This configures Apt's periodic scripts to run an unattended upgrade every day. For a longer interval, increase the 1 to a larger number. A 0 for this variable would mean 'disabled'.

In tandem with this, the autoclean line should be enabled by replacing a 0 there:

APT::Periodic::AutocleanInterval "1";


By default, Ubuntu 8.04 only configures automatic unattended upgrades from the hardy-security archive. This will cover you against security vulnerabilities, but not for general bug-fix releases. For that, you need to enable the hardy-updates archive in /etc/apt/apt.conf.d/50unattended-upgrades:

// Uncomment the line that reads as follows:
        "Ubuntu hardy-updates";


Ubuntu's spec for this feature appears on a wiki page. Note that Debian systems seem to have the same exact infrastructure, apparently from this feature migrating upstream.

share|improve this answer

While it is more than possible to automatically upgrade a Debian or Ubuntu system using either the solution that Novelocrat suggested or using something like apticron or cronapt, I have to question how sensible this is. This was mentioned on the question you linked to, but you need to decide if you object to the downtime that may happen when services automatically restart when they get upgraded. Often, the more packages that are getting upgraded, the longer your service might be down for. This is due to packages incorrectly stopping the service before it gets installed and then starting it again then it has installed. Many packages to the right thing of just restarting when the package has installed. This can be a particular problem for example, MySQL, where the Debian package will run a table check when it starts up, and if you have a large database, this can cause your tables to lock until it has finished. Automatic upgrades also don't give you the chance to check the package for problems.

What we do is use Puppet to install 99% of packages when we ask them to. I run apticron on all the servers, and every morning, run a script that reads those mails, removes blacklisted upgrades, like MySQL, Tomcat and PostgreSQL, and updates the manifest file with the package name and the version. When this manifest gets pushed out, it upgrades those packages. We then have to do the blacklisted ones by hand when we can afford downtime.

share|improve this answer
1  
This is a valid concern, but there's a reason the question mentions workstations and not servers. The goal here is to minimize administrator effort. There are no public services on these machines, and they are not generally in use anywhere near 24/7. I'll make that more explicit. –  Novelocrat Sep 3 '09 at 13:52

No need to do anything complex. Just go to System > Administration > Synaptic Package Manager > Settings > Repositories > Updates and select Install security updates without notifications.

That's it

share|improve this answer
    
Where is that configuration recorded? I would hope it modifies the same configuration files I found, but I can imagine lots of other possibilities. –  Novelocrat Sep 3 '09 at 14:14

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.