diff options
author | Micah Anderson <micah@riseup.net> | 2010-12-07 12:20:14 -0500 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2010-12-07 12:20:14 -0500 |
commit | 2ee70ab5e08eadfe750b5b7131b258270cbca402 (patch) | |
tree | 967b72f7ff9d94386c7861d7a50993f88d86baac | |
parent | 6596641bb12e3d94dbf707759b042bc7b3b476ae (diff) |
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.
-rw-r--r-- | README | 17 | ||||
-rw-r--r-- | files/03clean_vserver | 4 | ||||
-rw-r--r-- | manifests/init.pp | 19 |
3 files changed, 27 insertions, 13 deletions
@@ -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 ========= diff --git a/files/03clean_vserver b/files/03clean_vserver new file mode 100644 index 0000000..6bb84e5 --- /dev/null +++ b/files/03clean_vserver @@ -0,0 +1,4 @@ +// This file is managed by Puppet +// all local modifications will be overwritten + +DSelect::Clean pre-auto; diff --git a/manifests/init.pp b/manifests/init.pp index 3f2a523..179b4d8 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -93,12 +93,21 @@ 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 { false: { include apt::preferences::absent |