Remote Debian upgrades using apt-dater

Apt-dater is a relatively new utility that allows easy package management of multiple Debian servers from a central control server. I wrote up the necessary steps below, as the existing instructions ( are slightly unclear on a couple of things.

We run Debian stable (currently lenny) on many servers. Apt-dater is new enough that it is currently only available via the lenny-backports repository. (NB: in what follows I assume knowledge of basic package management and ssh configuration. Help with both of these is widely available on the 'Net.)

On the apt-dater control server:

  1. enable the lenny-backports repository  #lenny backports deb lenny-backports main
  2. add the backports repo key  apt-get update; apt-get install debian-backports-keyring; apt-get update;
  3. install apt-dater  apt-get install apt-dater
  4. generate an ssh key for the apt-dater control user  ssh-keygen -t rsa
  5. configure apt-dater (config files are located in ~/.config/apt-dater by default; running apt-dater as the apt-dater user will generate them in the correct location)
    • in apt-dater.conf, add the options that allow ssh-agent to use your ssh key (modify for your username and keyfile, of course):  SpawnAgent=true AddKeys=/home/apt-dater/.ssh/id_rsa
    • in hosts.conf, create host groups and hosts as desired

On the remote machines:

  1. enable the lenny-backports repository and install the repo key (as above)
  2. install the apt-dater host program  apt-get install apt-dater-host
  3. create a user account to run the apt-dater commands (the following assumes the user is called 'apt-dater')
  4. copy the public key from the control server user to the apt-dater user's ~/.ssh/authorized_keys file
  5. give the apt-date user password-less sudo access to the required privileged commands by adding the following to sudoers  # apt-dater remote updates apt-dater ALL=NOPASSWD: /usr/bin/apt-get, /usr/bin/aptitude

The magic happens

If you have just added a new host and have not connected to it via ssh before, either ssh directly to the host to accept its host key before starting apt-dater or use 'c' to connect to the host from within apt-dater.

Once your ssh connection works, you should be able to run apt-dater and see the hosts grouped according to your setup in hosts.conf. Refresh the status report on a given host or group of hosts by hitting 'g'; update using 'u'. The '?' key gives you a full list of commands.

Using apt-dater you can install or update individual packages or all packages for individual hosts or groups of hosts. I've just started working with it, but it promises to make my job of staying on top of 10+ Debian servers a whole lot easier.