Micah Anderson [Tue, 25 Jun 2013 20:57:07 +0000 (16:57 -0400)]
Merge branch 'bug/fix_push' into leap
This gets us fixes for the unattended_upgrades in wheezy, as well as the custom_key_dir class parameter replacement of the global variable
Conflicts:
manifests/unattended_upgrades.pp
Micah Anderson [Thu, 20 Jun 2013 19:32:51 +0000 (15:32 -0400)]
fix for the following: warning: Dynamic lookup of $custom_preferences at modules/apt/manifests/preferences_snippet.pp:16 is deprecated. For more information, see http://docs.puppetlabs.com/guides/scope_and_puppet.html. To see the change in behavior, use the --debug flag.
The current lookup for '::apt::custom_preferences' might lead to a lookup error
like
(Scope(Class[Apt::Unattended_upgrades])) Could not look up qualified variable
'::apt::custom_preferences'; class ::apt has not been evaluated at
/etc/puppet/modules/apt/manifests/unattended_upgrades.pp:17
Since the lookup apparently happens during compilation time, this commits tries
to fix this issue by using a define() function call instead of the lookup.
So, first set a default value for the `priority' parameter, so
that it's not required anymore. Second, add a sanity check to
error out when priority is not set, to get the safe old behaviour.
Then, wrap all sanity checks about arguments within
a "if $ensure == 'present'" block.
varac [Fri, 1 Feb 2013 10:01:23 +0000 (11:01 +0100)]
Install unattended-upgrades after Exec[refresh_apt]
Before, including apt::unattended_upgrades on a host without
the unattended-upgrades package would fail on the first run,
because the module tries to install the package before apt is
finally configured.
This commit does:
- introduce the option $refresh_apt for apt::apt_conf
(Defaults to true). Can be used to not trigger Exec['refresh_apt']
- install the unattended-upgrades package after a final
Exec['refresh_apt']. To not run into a loop, it calls
Apt_conf['50unattended-upgrades'] with the option
refresh_apt => false, which is also not needed for the configuration
Micah Anderson [Tue, 18 Dec 2012 21:45:38 +0000 (16:45 -0500)]
On a sid system, $lsbdistcodename is reports 'n/a', this doesn't work because the module
looks for a template based on the $lsbdistcodename, so you get this error:
Could not find template 'apt/Debian/preferences_n/a.erb'
The slash in 'n/a' appears to be a path (confusing!)
So I've set an error message when 'n/a' is encountered, encouraging the user to set the $lsbdistcodename.
I was not confident in the idea of pointing any occurrence of 'n/a' to the sid
templates, as I could imagine a case where this might occur on a non-sid system
where the lsbdistcodename isn't properly detected
varac [Sun, 16 Dec 2012 09:35:59 +0000 (10:35 +0100)]
refactor 50unattended-upgrades default file
The syntax is valid from v0.70 on (Debian Wheezy, Ubuntu Oneiric
and later).
It includes Unattended-Upgrade::Origins-Patterns both for Debian
and Ubuntu, which even work on systems with both package sources
enables. On Debian- or Ubuntu-only systems it doesn't hurt to have
both Patterns included.
varac [Sat, 15 Dec 2012 11:38:43 +0000 (12:38 +0100)]
Replaced fallback file for unattended-upgrades
with a decent one for wheezy onwards. The main syntax shouldn't
change, hopefully, from now on. It's a very basic generic one,
that uses variables for Distribution/Codename and should apply
to all coming distributions.
Removed from the default 50unattended-upgrades
----------------------------------------------
- APT::Periodic::Update-Package-Lists "1";
- APT::Periodic::Unattended-Upgrade "1";
cause this is not something the unattended upgrades class should
set by default.
- APT::UnattendedUpgrades::LogDir "/var/log/";
- APT::UnattendedUpgrades::LogFile "unattended_upgrades.log";
Because we shouldn't change the default logdest by default, which
is /var/log/unattended_upgrades/*.
- Blacklist for linux-image*, because this we shouldn't blacklist
packages by default.
What happened here was the $codename = $::lsbdistcodename was removed from
init.pp and replaced with just $::lsbdistcodename whereever $codename was
used. Then in the sources.list.erb and preferences files things were changed
like this:
This meant that the codename was always set to lsbdistcodename, and you because
in newer puppet versions you cannot assign a value to a top-level facter
variable, it is not possible to change this.
Because we cannot change $lsbdistcodename, we have to fix this by allowing the
user to pass a different, non-top-level scoped variable to the class as a
parameter, which defaults to $::lsbdistcodename, so that upgrades can be
triggered.
This is documented in the README in an upgrade notice