summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Frank <Felix.Frank@Alumni.TU-Berlin.de>2015-10-27 14:50:34 +0100
committerFelix Frank <Felix.Frank@Alumni.TU-Berlin.de>2015-10-27 14:50:34 +0100
commite56c49dd4dfd08587fa3e86dfc177ae5202989b8 (patch)
tree11ae9e6d57692d8e7db12ab5fc38c5c23c9be3df
parente2c493fc0fb5efe0500e135d6ed1b78f7c5b5038 (diff)
parent032022b6a83f5a207b29bf65aeb6399a0c372fef (diff)
Merge pull request #33 from fbarbeira/master
Include variable 'RandomSleep'.
-rw-r--r--README.md1
-rw-r--r--manifests/init.pp1
-rw-r--r--spec/classes/unattended_upgrades_spec.rb3
-rw-r--r--templates/periodic.erb14
4 files changed, 19 insertions, 0 deletions
diff --git a/README.md b/README.md
index 2ac0abd..2bc0ad8 100644
--- a/README.md
+++ b/README.md
@@ -93,6 +93,7 @@ Using unattended\_upgrades simply consists of including the module and if needed
* `minimal_steps` (`true`): Split the upgrade process into sections to allow shutdown during upgrade.
* `origins`: The repositories from which to automatically upgrade included packages.
* `package_ensure` (`installed`): The ensure state for the 'unattended-upgrades' package.
+* `random_sleep` (`300`): Seconds of delay on the cron job execution.
* `size` (`0`): Maximum size of the cache in MB.
* `update` (`1`): Do "apt-get update" automatically every n-days.
* `upgrade` (`1`): Run the "unattended-upgrade" security upgrade script every n-days.
diff --git a/manifests/init.pp b/manifests/init.pp
index 6a64f0a..7fe64ca 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -11,6 +11,7 @@ class unattended_upgrades (
$minimal_steps = true,
$origins = $::unattended_upgrades::params::origins,
$package_ensure = installed,
+ $random_sleep = undef,
$size = 0,
$update = 1,
$upgrade = 1,
diff --git a/spec/classes/unattended_upgrades_spec.rb b/spec/classes/unattended_upgrades_spec.rb
index 72291d5..f361bcb 100644
--- a/spec/classes/unattended_upgrades_spec.rb
+++ b/spec/classes/unattended_upgrades_spec.rb
@@ -279,6 +279,7 @@ describe 'unattended_upgrades' do
'only_on_error' => true,
},
:dl_limit => 70,
+ :random_sleep => 300,
}
end
it { should contain_package('unattended-upgrades') }
@@ -350,6 +351,8 @@ describe 'unattended_upgrades' do
/APT::Periodic::AutocleanInterval "5";/
).with_content(
/APT::Periodic::Verbose "1";/
+ ).with_content(
+ /APT::Periodic::RandomSleep "300";/
)
}
diff --git a/templates/periodic.erb b/templates/periodic.erb
index 1ce615a..780821c 100644
--- a/templates/periodic.erb
+++ b/templates/periodic.erb
@@ -46,3 +46,17 @@ APT::Periodic::Verbose "<%= @verbose %>";
# 1: progress report (actually any string)
# 2: + command outputs (remove -qq, remove 2>/dev/null, add -d)
# 3: + trace on
+<%- unless @random_sleep.nil? -%>
+#
+APT::Periodic::RandomSleep "<%= @random_sleep %>";
+# - The apt cron job will delay its execution by a random
+# time span between zero and 'APT::Periodic::RandomSleep'
+# seconds.
+# This is done because otherwise everyone would access the
+# mirror servers at the same time and put them collectively
+# under very high strain.
+# You can set this to '0' if you are using a local mirror and
+# do not care about the load spikes.
+# Note that sleeping in the apt job will be delaying the
+# execution of all subsequent cron.daily jobs.
+<%- end -%>