summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README4
-rw-r--r--files/squeeze/50unattended-upgrades1
-rw-r--r--manifests/apt_conf.pp7
-rw-r--r--manifests/dot_d_directories.pp22
-rw-r--r--manifests/init.pp19
-rw-r--r--manifests/sources_list.pp8
l---------templates/Debian/apticron_sid.erb1
l---------templates/Debian/listchanges_sid.erb1
8 files changed, 43 insertions, 20 deletions
diff --git a/README b/README
index 1b01f88..fdae462 100644
--- a/README
+++ b/README
@@ -19,7 +19,7 @@ This module needs:
- lsb-release installed
- the common module: git://labs.riseup.net/shared-common
-- the concat module: https://github.com/ripienaar/puppet-concat
+- the concat module: git://labs.riseup.net/shared-concat
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
@@ -371,7 +371,7 @@ Resources
=========
Concat[apt_config]
------------------------------
+------------------
Use this resource to depend on or add to a completed apt configuration
diff --git a/files/squeeze/50unattended-upgrades b/files/squeeze/50unattended-upgrades
index fbab858..46fc0dc 100644
--- a/files/squeeze/50unattended-upgrades
+++ b/files/squeeze/50unattended-upgrades
@@ -12,6 +12,7 @@ Unattended-Upgrade::Allowed-Origins {
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Unattended-Upgrade::Mail "root";
+Unattended-Upgrade::MailOnlyOnError "true";
APT::UnattendedUpgrades::LogDir "/var/log/";
APT::UnattendedUpgrades::LogFile "unattended_upgrades.log";
diff --git a/manifests/apt_conf.pp b/manifests/apt_conf.pp
index c484ec3..fe07546 100644
--- a/manifests/apt_conf.pp
+++ b/manifests/apt_conf.pp
@@ -12,10 +12,15 @@ define apt::apt_conf(
fail("Only one of \$source or \$content must specified for apt_conf ${name}")
}
+ include apt::dot_d_directories
+
+ # One would expect the 'file' resource on sources.list.d to trigger an
+ # apt-get update when files are added or modified in the directory, but it
+ # apparently doesn't.
file { "/etc/apt/apt.conf.d/${name}":
ensure => $ensure,
+ owner => root, group => 0, mode => 0644,
notify => Exec["refresh_apt"],
- owner => root, group => 0, mode => 0644;
}
if $source {
diff --git a/manifests/dot_d_directories.pp b/manifests/dot_d_directories.pp
new file mode 100644
index 0000000..742aad4
--- /dev/null
+++ b/manifests/dot_d_directories.pp
@@ -0,0 +1,22 @@
+class apt::dot_d_directories {
+
+ # watch .d directories and ensure they are present
+ file {
+ "/etc/apt/apt.conf.d":
+ ensure => directory,
+ checksum => mtime,
+ notify => Exec['refresh_apt'];
+ "/etc/apt/sources.list.d":
+ ensure => directory,
+ checksum => mtime,
+ notify => Exec['refresh_apt'];
+ }
+
+ exec {
+ # "&& sleep 1" is workaround for older(?) clients
+ 'refresh_apt':
+ command => '/usr/bin/apt-get update && sleep 1',
+ refreshonly => true,
+ }
+
+}
diff --git a/manifests/init.pp b/manifests/init.pp
index 3a816d2..960f18d 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -85,7 +85,8 @@ class apt {
'' => template( "apt/$operatingsystem/sources.list.erb"),
default => $custom_sources_list
},
- require => Package['lsb'];
+ require => Package['lsb'],
+ notify => Exec['refresh_apt'],
}
apt_conf { "02show_upgraded":
@@ -128,21 +129,7 @@ class apt {
require => [ Apt_conf['02show_upgraded'], Apt_conf['03clean'] ];
}
- # watch .d directories and ensure they are present
- file { "/etc/apt/apt.conf.d": ensure => directory, checksum => mtime; }
- file { "/etc/apt/sources.list.d":
- ensure => directory,
- checksum => mtime,
- notify => Exec['refresh_apt'],
- }
-
- exec {
- # "&& sleep 1" is workaround for older(?) clients
- 'refresh_apt':
- command => '/usr/bin/apt-get update && sleep 1',
- refreshonly => true,
- subscribe => [ File['/etc/apt/apt.conf.d'], Config_file['/etc/apt/sources.list'] ];
- }
+ include apt::dot_d_directories
## This package should really always be current
package { "debian-archive-keyring": ensure => latest }
diff --git a/manifests/sources_list.pp b/manifests/sources_list.pp
index 86b35a7..499116d 100644
--- a/manifests/sources_list.pp
+++ b/manifests/sources_list.pp
@@ -11,9 +11,15 @@ define apt::sources_list (
fail("Only one of \$source or \$content must specified for apt_sources_snippet ${name}")
}
+ include apt::dot_d_directories
+
+ # One would expect the 'file' resource on sources.list.d to trigger an
+ # apt-get update when files are added or modified in the directory, but it
+ # apparently doesn't.
file { "/etc/apt/sources.list.d/${name}":
ensure => $ensure,
- owner => root, group => 0, mode => 0644;
+ owner => root, group => 0, mode => 0644,
+ notify => Exec['refresh_apt'],
}
if $source {
diff --git a/templates/Debian/apticron_sid.erb b/templates/Debian/apticron_sid.erb
new file mode 120000
index 0000000..a9a3a6f
--- /dev/null
+++ b/templates/Debian/apticron_sid.erb
@@ -0,0 +1 @@
+apticron_wheezy.erb \ No newline at end of file
diff --git a/templates/Debian/listchanges_sid.erb b/templates/Debian/listchanges_sid.erb
new file mode 120000
index 0000000..74ab496
--- /dev/null
+++ b/templates/Debian/listchanges_sid.erb
@@ -0,0 +1 @@
+listchanges_lenny.erb \ No newline at end of file