summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md97
-rw-r--r--manifests/apticron.pp2
-rw-r--r--manifests/cron/base.pp20
-rw-r--r--manifests/cron/dist_upgrade.pp21
-rw-r--r--manifests/cron/download.pp27
-rw-r--r--manifests/dist_upgrade.pp5
-rw-r--r--manifests/listchanges.pp2
-rw-r--r--templates/Debian/apticron.erb (renamed from templates/Debian/apticron_wheezy.erb)2
l---------templates/Debian/apticron_jessie.erb1
l---------templates/Debian/apticron_sid.erb1
-rw-r--r--templates/Debian/apticron_squeeze.erb82
-rw-r--r--templates/Debian/listchanges.erb (renamed from templates/Debian/listchanges_lenny.erb)0
l---------templates/Debian/listchanges_jessie.erb1
l---------templates/Debian/listchanges_sid.erb1
l---------templates/Debian/listchanges_squeeze.erb1
l---------templates/Debian/listchanges_wheezy.erb1
16 files changed, 72 insertions, 192 deletions
diff --git a/README.md b/README.md
index 41a9aeb..2f837f1 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,6 @@
* [Classes](#classes)
* [apt](#apt)
* [apt::apticron](#apt-apticron)
- * [apt::cron::download](#apt-cron-download)
* [apt::cron::dist_upgrade](#apt-cron-dist_upgrade)
* [apt::dist_upgrade](#apt-dist_upgrade)
* [apt::dist_upgrade::initiator](#apt-dist_upgrade-initiator)
@@ -23,12 +22,13 @@
* [apt::preseeded_package](#apt-preseeded_package)
* [apt::sources_list](#apt-sources_list)
* [apt::key](#apt-key)
- * [apt::key::plain](#apt-key-plain)
+ * [`apt::key::plain`](#apt-key-plain)
* [apt::upgrade_package](#apt-upgrade_package)
* [Resources](#ressources)
* [File\['apt_config'\]](#fileapt_config)
* [Exec\['apt_updated'\]](#execapt_updated)
* [Tests](#tests)
+ * [Acceptance Tests](#acceptance-tests)
* [Licensing](#licensing)
@@ -49,10 +49,13 @@ Ubuntu support is lagging behind but not absent either.
## Upgrade Notice<a name="upgrade-notice"></a>
+ * The `$apt_cron_hours` global variable is deprecated.
+ Use `apt::cron::dist_upgrade`'s `cron_hours` parameter instead.
+
* The default value of the `$repos` parameter was removed since the logic is
now in the `apt::params` class. If you have explicitly set `$repos` to
'auto' in your manifests, you should remove this.
-
+
* The `disable_update` parameter has been removed. The main apt class
defaults to *not* run an `apt-get update` on every run anyway so this
parameter seems useless.
@@ -76,17 +79,16 @@ Ubuntu support is lagging behind but not absent either.
instantiating the class with those variables instead. For example, if you
had the following in your manifests:
- $apt_debian_url = 'http://localhost:9999/debian/'
- $apt_use_next_release = true
- include apt
+ $apt_debian_url = 'http://localhost:9999/debian/'
+ $apt_use_next_release = true
+ include apt
you will need to remove the variables, and the include and instead do
the following:
- class {
- 'apt':
- debian_url => 'http://localhost:9999/debian/',
- use_next_release => true;
+ class { 'apt':
+ debian_url => 'http://localhost:9999/debian/',
+ use_next_release => true;
}
previously, you could manually set `$lsbdistcodename` which would enable forced
@@ -98,26 +100,24 @@ Ubuntu support is lagging behind but not absent either.
you to trigger upgrades:
include apt::dist_upgrade
- class {
- 'apt':
- codename => 'wheezy',
- notify => Exec['apt_dist-upgrade'];
+ class { 'apt':
+ codename => 'wheezy',
+ notify => Exec['apt_dist-upgrade'];
}
* the `apticron` class has been moved to a parameterized class. if you were
including this class before, you will need to move to instantiating the
class instead. For example, if you had the following in your manifests:
- $apticron_email = 'foo@example.com'
- $apticron_notifynew = '1'
- ... any $apticron_* variables
- include apticron
+ $apticron_email = 'foo@example.com'
+ $apticron_notifynew = '1'
+ ... any $apticron_* variables
+ include apticron
you will need to remove the variables, and the include and instead do the
following:
- class {
- 'apt::apticron':
+ class { 'apt::apticron':
email => 'foo@example.com',
notifynew => '1';
}
@@ -127,16 +127,15 @@ Ubuntu support is lagging behind but not absent either.
to move to instantiating the class with those variables instead. For example,
if you had the following in your manifests:
- $apt_listchanges_email = 'foo@example.com'
- ... any $apt_listchanges_* variables
- include apt::listchanges
+ $apt_listchanges_email = 'foo@example.com'
+ ... any $apt_listchanges_* variables
+ include apt::listchanges
you will need to remove the variables, and the include and instead do the
following:
- class {
- 'apt::listchanges':
- email => 'foo@example.com';
+ class { 'apt::listchanges':
+ email => 'foo@example.com';
}
* the `apt::proxy_client` class has been moved to a paramterized class. if you
@@ -144,18 +143,17 @@ Ubuntu support is lagging behind but not absent either.
to move to instantiating the class with those variables instead. For example,
if you had the following in your manifests:
- $apt_proxy = 'http://proxy.domain'
- $apt_proxy_port = 666
- include apt::proxy_client
+ $apt_proxy = 'http://proxy.domain'
+ $apt_proxy_port = 666
+ include apt::proxy_client
you will need to remove the variables, and the include and instead do the
following:
- class {
- 'apt::proxy_client':
- proxy => 'http://proxy.domain',
- port => '666';
- }
+ class { 'apt::proxy_client':
+ proxy => 'http://proxy.domain',
+ port => '666';
+ }
# Requirements<a name="requirements"></a>
@@ -325,30 +323,20 @@ Example usage:
}
-## apt::cron::download<a name="apt-cron-download"></a>
+## apt::cron::dist_upgrade<a name="apt-cron-dist_upgrade"></a>
-This class sets up `cron-apt` so that it downloads upgradable packages, does not
-actually do any upgrade and emails when the output changes.
+This class sets up cron-apt so that it dist-upgrades the system and
+emails when upgrades are performed.
`cron-apt` defaults to run at 4 AM. You may want to set the
-`$apt_cron_hours` variable before you include the class: its value will
+`$cron_hours` class parameter before you include the class: its value will
be passed as the "hours" parameter of a cronjob. Example:
# Run cron-apt every three hours
- $apt_cron_hours = '*/3'
+ class { 'apt::cron::dist_upgrade': cron_hours => '*/3' }
Note that the default 4 AM cronjob won't be disabled.
-
-## apt::cron::dist_upgrade<a name="apt-cron-dist_upgrade"></a>
-
-This class sets up cron-apt so that it dist-upgrades the system and
-emails when upgrades are performed.
-
-See [apt::cron::download](#apt-cron-download) above if you need to run `cron-apt` more often
-than once a day.
-
-
## apt::dist_upgrade<a name="apt-dist_upgrade"></a>
This class provides the `Exec['apt_dist-upgrade']` resource that
@@ -360,6 +348,11 @@ classes may inherit from this one and add to its subscription list
using the plusignment (`+>`) operator. A real-world example can be
seen in the `apt::dist_upgrade::initiator` source.
+Parameters:
+
+ * timeout: specified in seconds; the maximum time the `dist-upgrade`
+ command should take. If the command takes longer than the timeout,
+ the command is considered to have failed and will be stopped.
## apt::dist_upgrade::initiator<a name="apt-dist_upgrade-initiator"></a>
@@ -567,7 +560,7 @@ use `apt::key::plain`.
The `.gpg` extension is compulsory for `apt` to pickup the key properly.
-## apt::key::plain<a name="apt-key-plain"></a>
+## `apt::key::plain`<a name="apt-key-plain"></a>
Deploys a secure apt OpenPGP key. This usually accompanies the
sources.list snippets above for third party repositories. For example,
@@ -645,7 +638,7 @@ To run pupept rspec tests:
bundle exec rake spec
Verbose Output:
-
+
bundle exec rake spec SPEC_OPTS='--format documentation'
Using different facter/puppet versions:
@@ -670,7 +663,7 @@ Run tests on default node (Debian Jessie):
Run different nodeset:
BEAKER_set="debian-8-x86_64-docker" bundle exec rspec spec/acceptance/*_spec.rb
-
+
# Licensing<a name="licensing"></a>
diff --git a/manifests/apticron.pp b/manifests/apticron.pp
index 9c94f9c..89709a8 100644
--- a/manifests/apticron.pp
+++ b/manifests/apticron.pp
@@ -1,6 +1,6 @@
class apt::apticron(
$ensure_version = 'installed',
- $config = "apt/${::operatingsystem}/apticron_${::debian_codename}.erb",
+ $config = "apt/${::operatingsystem}/apticron.erb",
$email = 'root',
$diff_only = '1',
$listchanges_profile = 'apticron',
diff --git a/manifests/cron/base.pp b/manifests/cron/base.pp
deleted file mode 100644
index 39fc306..0000000
--- a/manifests/cron/base.pp
+++ /dev/null
@@ -1,20 +0,0 @@
-class apt::cron::base {
-
- package { 'cron-apt': ensure => installed }
-
- case $apt_cron_hours {
- '': {}
- default: {
- # cron-apt defaults to run every night at 4 o'clock
- # so we try not to run at the same time.
- cron { 'apt_cron_every_N_hours':
- command => 'test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt',
- user => root,
- hour => "${apt_cron_hours}",
- minute => 10,
- require => Package['cron-apt'],
- }
- }
- }
-
-}
diff --git a/manifests/cron/dist_upgrade.pp b/manifests/cron/dist_upgrade.pp
index 74403bb..e1a03ed 100644
--- a/manifests/cron/dist_upgrade.pp
+++ b/manifests/cron/dist_upgrade.pp
@@ -1,4 +1,23 @@
-class apt::cron::dist_upgrade inherits apt::cron::base {
+class apt::cron::dist_upgrade (
+ $cron_hours = '',
+) {
+
+ package { 'cron-apt': ensure => installed }
+
+ case $cron_hours {
+ '': {}
+ default: {
+ # cron-apt defaults to run every night at 4 o'clock
+ # so we try not to run at the same time.
+ cron { 'apt_cron_every_N_hours':
+ command => 'test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt',
+ user => root,
+ hour => "${cron_hours}",
+ minute => 10,
+ require => Package['cron-apt'],
+ }
+ }
+ }
$action = "autoclean -y
dist-upgrade -y -o APT::Get::Show-Upgraded=true -o 'DPkg::Options::=--force-confold'
diff --git a/manifests/cron/download.pp b/manifests/cron/download.pp
deleted file mode 100644
index 4a19fec..0000000
--- a/manifests/cron/download.pp
+++ /dev/null
@@ -1,27 +0,0 @@
-class apt::cron::download inherits apt::cron::base {
-
- $action = "autoclean -y
-dist-upgrade -d -y -o APT::Get::Show-Upgraded=true
-"
-
- file { '/etc/cron-apt/action.d/4-dist-upgrade':
- ensure => absent,
- }
-
- file { '/etc/cron-apt/action.d/3-download':
- content => $action,
- require => Package[cron-apt],
- owner => root,
- group => 0,
- mode => '0644';
- }
-
- file { '/etc/cron-apt/config.d/MAILON':
- content => "MAILON=changes\n",
- require => Package[cron-apt],
- owner => root,
- group => 0,
- mode => '0644';
- }
-
-}
diff --git a/manifests/dist_upgrade.pp b/manifests/dist_upgrade.pp
index 19c031e..3061fb8 100644
--- a/manifests/dist_upgrade.pp
+++ b/manifests/dist_upgrade.pp
@@ -1,8 +1,11 @@
-class apt::dist_upgrade {
+class apt::dist_upgrade (
+ $timeout = 300,
+) {
exec { 'apt_dist-upgrade':
command => '/usr/bin/apt-get -q -y -o \'DPkg::Options::=--force-confold\' dist-upgrade',
refreshonly => true,
+ timeout => $timeout,
before => Exec['apt_updated']
}
diff --git a/manifests/listchanges.pp b/manifests/listchanges.pp
index e64bb1b..ecbbe6d 100644
--- a/manifests/listchanges.pp
+++ b/manifests/listchanges.pp
@@ -1,6 +1,6 @@
class apt::listchanges(
$ensure_version = 'installed',
- $config = "apt/${::operatingsystem}/listchanges_${::debian_codename}.erb",
+ $config = "apt/${::operatingsystem}/listchanges.erb",
$frontend = 'mail',
$email = 'root',
$confirm = '0',
diff --git a/templates/Debian/apticron_wheezy.erb b/templates/Debian/apticron.erb
index 655854e..c6d3853 100644
--- a/templates/Debian/apticron_wheezy.erb
+++ b/templates/Debian/apticron.erb
@@ -46,7 +46,7 @@ IPADDRESSNUM="<%= v %>"
#
# IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1"
<% unless (v=scope.lookupvar('apt::apticron::ipaddresses')).to_s == "false" -%>
-IPADDRESSES=<%= v %>"
+IPADDRESSES="<%= v %>"
<% end -%>
#
diff --git a/templates/Debian/apticron_jessie.erb b/templates/Debian/apticron_jessie.erb
deleted file mode 120000
index a9a3a6f..0000000
--- a/templates/Debian/apticron_jessie.erb
+++ /dev/null
@@ -1 +0,0 @@
-apticron_wheezy.erb \ No newline at end of file
diff --git a/templates/Debian/apticron_sid.erb b/templates/Debian/apticron_sid.erb
deleted file mode 120000
index a9a3a6f..0000000
--- a/templates/Debian/apticron_sid.erb
+++ /dev/null
@@ -1 +0,0 @@
-apticron_wheezy.erb \ No newline at end of file
diff --git a/templates/Debian/apticron_squeeze.erb b/templates/Debian/apticron_squeeze.erb
deleted file mode 100644
index 05b7c9b..0000000
--- a/templates/Debian/apticron_squeeze.erb
+++ /dev/null
@@ -1,82 +0,0 @@
-# apticron.conf
-#
-# set EMAIL to a space separated list of addresses which will be notified of
-# impending updates
-#
-EMAIL="<%= scope.lookupvar('apt::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="<%= scope.lookupvar('apt::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="<%= scope.lookupvar('apt::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"
-<% unless (v=scope.lookupvar('apt::apticron::system')).to_s == "false" -%>
-SYSTEM="<%= v %>"
-<% end -%>
-
-
-#
-# 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"
-<% unless (v=scope.lookupvar('apt::apticron::ipaddressnum')).to_s == "false" -%>
-IPADDRESSNUM="<%= v %>"
-<% end -%>
-
-
-#
-# 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"
-<% unless (v=scope.lookupvar('apt::apticron::ipaddresses')).to_s == "false" -%>
-IPADDRESSES="<%= v %>"
-<% end -%>
-
-
-#
-# 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="<%= scope.lookupvar('apt::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="<%= scope.lookupvar('apt::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="<%= scope.lookupvar('apt::apticron::customsubject') %>"
-
diff --git a/templates/Debian/listchanges_lenny.erb b/templates/Debian/listchanges.erb
index 1025dd0..1025dd0 100644
--- a/templates/Debian/listchanges_lenny.erb
+++ b/templates/Debian/listchanges.erb
diff --git a/templates/Debian/listchanges_jessie.erb b/templates/Debian/listchanges_jessie.erb
deleted file mode 120000
index 74ab496..0000000
--- a/templates/Debian/listchanges_jessie.erb
+++ /dev/null
@@ -1 +0,0 @@
-listchanges_lenny.erb \ No newline at end of file
diff --git a/templates/Debian/listchanges_sid.erb b/templates/Debian/listchanges_sid.erb
deleted file mode 120000
index 74ab496..0000000
--- a/templates/Debian/listchanges_sid.erb
+++ /dev/null
@@ -1 +0,0 @@
-listchanges_lenny.erb \ No newline at end of file
diff --git a/templates/Debian/listchanges_squeeze.erb b/templates/Debian/listchanges_squeeze.erb
deleted file mode 120000
index 74ab496..0000000
--- a/templates/Debian/listchanges_squeeze.erb
+++ /dev/null
@@ -1 +0,0 @@
-listchanges_lenny.erb \ No newline at end of file
diff --git a/templates/Debian/listchanges_wheezy.erb b/templates/Debian/listchanges_wheezy.erb
deleted file mode 120000
index 74ab496..0000000
--- a/templates/Debian/listchanges_wheezy.erb
+++ /dev/null
@@ -1 +0,0 @@
-listchanges_lenny.erb \ No newline at end of file