Module backuppc
In: /Users/brice/devl/puppet-manifest/davids/manifests/modules/backuppc/manifests/init.pp

Overview

==

This module manages the BackupPC backup software on the server and on the clients.

Server


On the server, apache2 is installed to host the management CGI application and ssh to access the clients.

Default exclude list:

        * /proc and /sys: These contain dangerous files which should or can not
          be backupped.
        * /mnt and /media: Common mountpoints for external or temporary media.
          Backups of these should be made by design, not by accident
        * /backup: local, permanent mountpoint for backup media.
        * /var/cache/apt/archives: 80/20 of excluding /var/cache

Clients


On clients, a ssh server and rsync are installed. Sudo has to be installed (see todo).

A user abackup is created. With an authorized_key, the server can access the client, using this user. A sudoers entry enables priviledge escalation for backup and direct restore from the management interface.

Classes

=

There are two classes, backuppc::server and backuppc::client, which have to be included on the server and the client repectively.

Limitations

=====

Hosts that should be backupped have to be added manually to /etc/backuppc/hosts on the server.

Since the backuppc server process terminates all running backups when being restarted and recognizes changes in the configuration automatically, the service is not managed with puppet.

TODO

Rename the VirtualHost from $fqdn to backuppc.$domain.

Enable SSL.

Install a Redirect from backuppc.$domain/ to the backuppc CGI. Care has to be taken to not shadow other sites.

Fix/Remove the string-testing stuff in backuppc::setting.

Manage Samba and Tar clients.

Expose exclude list as array variable.

Exclude /var/cache completely?

Create sudo class and use it here and in dbp.

Collect clients instead of manual maintenance of /etc/backuppc/hosts.

Defines

setting  

Classes and Modules

Class backuppc::client
Class backuppc::rsync
Class backuppc::server

Defines

setting( $val )

[Validate]