Set dselect DSelect::Clean to 'pre-auto' by default for hosts that are vservers.

Before you only had the choice of setting a 03clean apt configuration for either
all hosts, or every single host. Setting it to have the recommended settings for
vservers for all hosts meant that you were setting it for non-vservers as well
as vservers. The other option you had was to set it per host. This was a bit
annoying if you have any more than one vserver because you would need to create
a 03clean for every single vserver guest.

This change auto-detects if the node is a vserver, and if it is it automatically
installs the 03clean_vserver file, with the recommended DSelect::Clean settings,
and allows you to override this for all of your vservers, or for specific hosts.
This commit is contained in:
Micah Anderson 2010-12-07 12:20:14 -05:00
parent 6596641bb1
commit 2ee70ab5e0
3 changed files with 27 additions and 13 deletions

17
README
View file

@ -20,10 +20,10 @@ This module needs:
- lsb-release installed
- the common module: git://labs.riseup.net/shared-common
By default, this module sets the configuration option DSelect::Clean to 'auto'.
It is the recommended value on normal hosts. On virtual servers, the
recommended value is 'pre-auto', since virtual servers are usually more
space-bound and have better recovery mechanisms via the host:
By default, on normal hosts, this module sets the configuration option
DSelect::Clean to 'auto'. On virtual servers, the value is set by default to
'pre-auto', because virtual servers are usually more space-bound and have better
recovery mechanisms via the host:
From apt.conf(5), 0.7.2:
"Cache Clean mode; this value may be one of always, prompt, auto,
@ -35,10 +35,11 @@ From apt.conf(5), 0.7.2:
packages."
To change the default setting for DSelect::Clean, you can create a file named
"03clean" in a site-apt module's files directory. You can also define this for
a specific host by creating a file in a subdirectory of the site-apt modules'
files directory that is named the same as the host. (example:
site-apt/files/some.host.com/03clean)
"03clean" or "03clean_vserver" in your site-apt module's files directory. You
can also define this for a specific host by creating a file in a subdirectory of
the site-apt modules' files directory that is named the same as the
host. (example: site-apt/files/some.host.com/03clean, or
site-apt/files/some.host.com/03clean_vserver)
Variables
=========

4
files/03clean_vserver Normal file
View file

@ -0,0 +1,4 @@
// This file is managed by Puppet
// all local modifications will be overwritten
DSelect::Clean pre-auto;

View file

@ -93,10 +93,19 @@ class apt {
"puppet:///modules/apt/02show_upgraded"]
}
apt_conf { "03clean":
source => ["puppet:///modules/site-apt/${fqdn}/03clean",
"puppet:///modules/site-apt/03clean",
"puppet:///modules/apt/03clean"]
if ( $virtual == "vserver" ) {
apt_conf { "03clean_vserver":
source => ["puppet:///modules/site-apt/${fqdn}/03clean_vserver",
"puppet:///modules/site-apt/03clean_vserver",
"puppet:///modules/apt/03clean_vserver"]
}
}
else {
apt_conf { "03clean":
source => ["puppet:///modules/site-apt/${fqdn}/03clean",
"puppet:///modules/site-apt/03clean",
"puppet:///modules/apt/03clean"]
}
}
case $custom_preferences {