]> gitweb.fluxo.info Git - puppet-apt.git/commitdiff
add apticron support.
authorMicah Anderson <micah@riseup.net>
Thu, 9 Dec 2010 03:24:24 +0000 (22:24 -0500)
committerMicah Anderson <micah@riseup.net>
Thu, 9 Dec 2010 03:24:24 +0000 (22:24 -0500)
Why apticron, when we have cron-apt already? Some people have different preferences, we use apticron along with the upgrade_package functionality in this module. I know someone who uses cron-apt to run the upgrades, but apticron for notifications, because apticron's notifications are much nicer (cron-apt just gives you the output of apt-get upgrade)

README
manifests/apticron.pp [new file with mode: 0644]
templates/Debian/apticron_lenny.erb [new file with mode: 0644]
templates/Debian/apticron_squeeze.erb [new file with mode: 0644]

diff --git a/README b/README
index 109c92a34c6f94c5ab75e4481021281316ce2692..355379b95cab14192796034a203679bcf753cbbc 100644 (file)
--- a/README
+++ b/README
@@ -162,6 +162,24 @@ The apt class sets up most of the documented functionality. To use
 functionality that is not enabled by default, you must include one of
 the following classes.
 
+apt::apticron
+-------------
+
+When you include this class, apticron will be installed, with the following
+defaults, which you are free to change before you include the class:
+
+ $apticron_ensure_version = "present"
+ $apticron_email = "root" 
+ $apticron_config = "apt/${operatingsystem}/apticron_${lsbrelease}.erb"
+ $apticron_diff_only = "1"
+ $apticron_listchanges_profile = "apticron"
+ $apticron_system = false 
+ $apticron_ipaddressnum = false 
+ $apticron_ipaddresses = false 
+ $apticron_notifyholds = "0"
+ $apticron_notifynew = "0"
+ $apticron_customsubject = ""
+
 apt::cron::download
 -------------------
 
diff --git a/manifests/apticron.pp b/manifests/apticron.pp
new file mode 100644 (file)
index 0000000..7f834a5
--- /dev/null
@@ -0,0 +1,54 @@
+class apt::apticron {
+
+  case $apticron_ensure_version {
+    '': { $apticron_ensure_version = "present" }
+  }
+
+  case $apticron_config {
+    '': { $apticron_config = "apt/${operatingsystem}/apticron_${lsbrelease}.erb" }
+  }
+
+  case $apticron_email {
+    '': { $apticron_email = "root" }
+  }
+
+  case $apticron_diff_only {
+    '': { $apticron_diff_only = "1" }
+  }
+
+  case $apticron_listchanges_profile {
+    '': { $apticron_listchanges_profile = "apticron" }
+  }
+
+  case $apticron_system {
+    '': { $apticron_system = false }
+  }
+
+  case $apticron_ipaddressnum {
+    '': { $apticron_ipaddressnum = false }
+  }
+
+  case $apticron_ipaddresses {
+    '': { $apticron_ipaddresses = false }
+  }
+
+  case $apticron_notifyholds {
+    '': { $apticron_notifyholds = "0" }
+  }
+
+  case $apticron_notifynew {
+    '': { $apticron_notifynew = "0" }
+  }
+
+  case $apticron_customsubject {
+    '': { $apticron_customsubject = "" }
+  }
+  
+  package { apticron: ensure => $apticron_ensure_version }
+
+  file { "/etc/apticron/apticron.conf":
+    content => template($apticron_config),
+    mode => 0644, owner => root, group => root,
+    require => Package["apticron"];  
+  }
+}
diff --git a/templates/Debian/apticron_lenny.erb b/templates/Debian/apticron_lenny.erb
new file mode 100644 (file)
index 0000000..9505633
--- /dev/null
@@ -0,0 +1,46 @@
+# apticron.conf
+#
+# set EMAIL to a list of addresses which will be notified of impending updates
+#
+EMAIL="<%= apticron_email %>"
+
+#
+# Set DIFF_ONLY to "1" to only output the difference of the current run
+# compared to the last run (ie. only new upgrades since the last run). If there
+# are no differences, no output/email will be generated. By default, apticron
+# will output everything that needs to be upgraded.
+#
+DIFF_ONLY="<%= apticron_diff_only %>"
+
+#
+# Set LISTCHANGES_PROFILE if you would like apticron to invoke apt-listchanges
+# with the --profile option. You should add a corresponding profile to
+# /etc/apt/listchanges.conf
+#
+LISTCHANGES_PROFILE="<%= apticron_listchanges_profile %>"
+
+#
+# Set SYSTEM if you would like apticron to use something other than the output
+# of "hostname -f" for the system name in the mails it generates
+#
+# SYSTEM="foobar.example.com"
+<%- if has_variable?(apticron_system) and instance_variable_get("@#{apticron_system}").to_s != "false" -%>
+<%= 'SYSTEM="' + instance_variable_get("@#{apticron_system}").to_s + '"' %>
+
+#
+# Set IPADDRESSNUM if you would like to configure the maximal number of IP
+# addresses apticron displays. The default is to display 1 address of each
+# family type (inet, inet6), if available.
+#
+# IPADDRESSNUM="1"
+<%- if has_variable?(apticron_ipaddressnum) and instance_variable_get("@#{apticron_ipaddressnum}").to_s != "false" -%>
+<%= 'IPADDRESSNUM="' + instance_variable_get("@#{apticron_ipaddressnum}").to_s + '"' %>
+
+#
+# Set IPADDRESSES to a whitespace seperated list of reachable addresses for
+# this system. By default, apticron will try to work these out using the
+# "ip" command
+#
+# IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1"
+<%- if has_variable?(apticron_ipaddresses) and instance_variable_get("@#{apticron_ipaddresses}").to_s != "false" -%>
+<%= 'IPADDRESSES="' + instance_variable_get("@#{apticron_ipaddresses}").to_s + '"' %>
diff --git a/templates/Debian/apticron_squeeze.erb b/templates/Debian/apticron_squeeze.erb
new file mode 100644 (file)
index 0000000..274f14d
--- /dev/null
@@ -0,0 +1,75 @@
+# apticron.conf
+#
+# set EMAIL to a space separated list of addresses which will be notified of
+# impending updates
+#
+EMAIL="<%= apticron_email %>"
+
+#
+# Set DIFF_ONLY to "1" to only output the difference of the current run
+# compared to the last run (ie. only new upgrades since the last run). If there
+# are no differences, no output/email will be generated. By default, apticron
+# will output everything that needs to be upgraded.
+#
+DIFF_ONLY="<%= apticron_diff_only %>"
+
+#
+# Set LISTCHANGES_PROFILE if you would like apticron to invoke apt-listchanges
+# with the --profile option. You should add a corresponding profile to
+# /etc/apt/listchanges.conf
+#
+LISTCHANGES_PROFILE="<%= apticron_listchanges_profile %>"
+
+#
+# Set SYSTEM if you would like apticron to use something other than the output
+# of "hostname -f" for the system name in the mails it generates
+#
+# SYSTEM="foobar.example.com"
+<%- if has_variable?(apticron_system) and instance_variable_get("@#{apticron_system}").to_s != "false" -%>
+<%= 'SYSTEM="' + instance_variable_get("@#{apticron_system}").to_s + '"' %>
+
+#
+# Set IPADDRESSNUM if you would like to configure the maximal number of IP
+# addresses apticron displays. The default is to display 1 address of each
+# family type (inet, inet6), if available.
+#
+# IPADDRESSNUM="1"
+<%- if has_variable?(apticron_ipaddressnum) and instance_variable_get("@#{apticron_ipaddressnum}").to_s != "false" -%>
+<%= 'IPADDRESSNUM="' + instance_variable_get("@#{apticron_ipaddressnum}").to_s + '"' %>
+
+#
+# Set IPADDRESSES to a whitespace separated list of reachable addresses for
+# this system. By default, apticron will try to work these out using the
+# "ip" command
+#
+# IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1"
+<%- if has_variable?(apticron_ipaddresses) and instance_variable_get("@#{apticron_ipaddresses}").to_s != "false" -%>
+<%= 'IPADDRESSES="' + instance_variable_get("@#{apticron_ipaddresses}").to_s + '"' %>
+
+#
+# Set NOTIFY_HOLDS="0" if you don't want to be notified about new versions of
+# packages on hold in your system. The default behavior is downloading and
+# listing them as any other package.
+#
+# NOTIFY_HOLDS="0"
+NOTIFY_HOLDS="<%= apticron_notifyholds %>"
+
+#
+# Set NOTIFY_NEW="0" if you don't want to be notified about packages which
+# are not installed in your system. Yes, it's possible! There are some issues
+# related to systems which have mixed stable/unstable sources. In these cases
+# apt-get will consider for example that packages with "Priority:
+# required"/"Essential: yes" in unstable but not in stable should be installed,
+# so they will be listed in dist-upgrade output. Please take a look at
+# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531002#44
+#
+# NOTIFY_NEW="0"
+NOTIFY_NEW="<%= apticron_notifynew %>"
+
+#
+# Set CUSTOM_SUBJECT if you want to replace the default subject used in
+# the notification e-mails. This may help filtering/sorting client-side e-mail.
+#
+# CUSTOM_SUBJECT=""
+CUSTOM_SUBJECT="<%= apticron_customsubject %>"
+