Commit graph

153 commits

Author SHA1 Message Date
Gabriel Filion
2942cd0dd8 remove requirement on lsb package for sources.list file
Managing requirements for installing the lsb package has proven over
time to make no sense. The best approach to this is to require
lsb-release to be installed alongside puppet, since otherwise there are
so much facts that get no value during the run and you end up needing to
run puppet twice to get the real end result.

Also, since we're not including a class that is actually installing the
'lsb' package, that require line makes it so that including the apt
module doesn't work, and there's no documentation in the README about
needing to provide a package{'lsb':} resource with the apt class.

Because of all that, it makes more sense to just get rid of that require
line and mark lsb as a pre-requirement in the README file.
2015-12-04 14:35:27 -05:00
Jerome Charaoui
4d3b720308 Simplify conditional expressions 2015-12-04 12:36:25 -05:00
Jerome Charaoui
f492e5840b Switch old $release and $codename local variables to new debian_* facts 2015-12-04 12:36:25 -05:00
Antoine Beaupré
e4a9222d86 move backports to snippets
this allows for third party modules to enable this on the fly
2015-12-04 12:36:25 -05:00
Jerome Charaoui
e4d777e5ec Fix merge conflict in README 2015-10-09 12:08:26 -04:00
Antoine Beaupré
5ea69cb039 allow possibility of disabling backports 2015-06-09 11:25:34 -04:00
Jerome Charaoui
d007a40333 Replace debian_*() parser functions with facts
* Removes dependency on lsb-release and/or Facter >1.7
    (values are based on $::lsbdistcodename, when available)
* Simplifies maintenance: only lib/facter/util/* require updates as new
  releases are made

Caveats:
* apt::codename is removed; to override debian_* facts, set the
  FACTER_debian_codename environment variable for puppet
* If tracking unstable, make sure lsb-release is installed, as other
  methods can't tell between testing and unstable
2015-05-11 12:01:35 -04:00
intrigeri
3bd6f73973 Add missing "include common::moduledir".
Without this, $common::moduledir::module_dir_path is empty.
2015-02-28 13:01:14 +00:00
Jerome Charaoui
8ed07cac2f Merge branch 'master' of git://git.puppet.immerda.ch/module-apt
Conflicts:
	templates/Debian/sources.list.erb
2015-02-20 16:15:02 -05:00
intrigeri
85c7554c4b Add support for Squeeze LTS. 2015-02-07 16:12:55 +00:00
mh
9d56396a04 use the new style common module 2014-01-08 21:28:42 +01:00
Gabriel Filion
c99227ad55 Make custom_sources_list into a class paramter
and thus remove the last global variable.
2013-07-27 06:14:47 -04:00
Micah Anderson
8f58a40ad8 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
2013-06-25 16:57:07 -04:00
Silvio Rhatto
50b4bef761 Make custom_key_dir a class parameter and not a global variable
Conflicts:
	manifests/init.pp
2013-06-25 15:35:11 -04:00
Micah Anderson
61a2f48948 Merge branch 'master' into leap 2013-05-26 17:04:05 -04:00
intrigeri
5ec8ffb4ef Move apt class parameters to a ::params class.
This brings no behaviour change yet, but will allow to set class parameters'
default value depending on system facts.
2013-03-20 22:09:29 +01:00
varac
c8a28eb80e apt keys: always deploy before Exec[refresh_apt], also with $custom_preferences 2013-03-14 20:01:35 +01:00
varac
f0a107ffee fix #4249: Ubuntu: wrong sources.list entries 2013-03-05 09:39:23 +01:00
Gabriel Filion
ded81d8edc Apply code style corrections from puppet-lint
Signed-off-by: Gabriel Filion <lelutin@gmail.com>

+ more linting by intrigeri.

Conflicts:
	manifests/apticron.pp
	manifests/cron/dist_upgrade.pp
	manifests/cron/download.pp
	manifests/dist_upgrade/initiator.pp
	manifests/init.pp
	manifests/listchanges.pp
	manifests/preferences.pp
	manifests/preseeded_package.pp
	manifests/proxy_client.pp
	manifests/unattended_upgrades.pp
	manifests/update.pp
2013-01-02 17:28:59 +01:00
intrigeri
17f67d9fac Simplify codename handling.
Have the codename class parameter default to $::lsbdistcodename, and derive
$release from it.
2013-01-02 16:54:03 +01:00
intrigeri
09710a29b1 Remove duplicated settings, resulting from wrong merge. 2013-01-02 16:40:26 +01:00
intrigeri
517040bb2e Merge remote-tracking branch 'riseup/immerda_27_readme' into shared
Conflicts:
	README
	manifests/cron/dist_upgrade.pp
	manifests/cron/download.pp
	manifests/init.pp
	manifests/preferences.pp
2013-01-02 16:14:06 +01:00
Gabriel Filion
cda713fcf6 Merge branch 'master' into issue_3953 2013-01-02 07:32:12 -05:00
intrigeri
37e5594770 Merge remote-tracking branch 'riseup/feature/http_debian_net' 2012-12-30 13:59:08 +01:00
intrigeri
8e5ce0b397 Merge remote-tracking branch 'riseup/feature/unknown_lsbdistcodename' 2012-12-30 13:58:59 +01:00
Micah Anderson
7de392c40e 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
2012-12-18 16:45:38 -05:00
Micah Anderson
e66823269e switch default $debian_url to use http.debian.net which is more accurate and up-to-date than cdn.debian.net 2012-12-18 16:41:10 -05:00
nadir
4204847fdd added $apt_disable_update to disable "apt-get update" during puppetruns 2012-12-18 22:26:45 +01:00
Micah Anderson
07a031f205 fix for $lsbdistcodename regression introduced by ac166366d7
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:

<pre>+### Debian current: <%= codename = scope.lookupvar('::lsbdistcodename') %>
...
-deb <%= debian_url %> <%= codename %> <%= repos %>
...
+deb <%= debian_url=scope.lookupvar('apt::debian_url') %> <%= codename %> <%= repos=scope.lookupvar('apt::repos') %>
</pre>

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
2012-12-05 13:46:23 -05:00
Gabriel Filion
8229505ecb Make apt::preferences_snippet place files in /etc/apt/preferences.d
Since Debian Squeeze, apt supports a .d directory for preferences
(pinning). Simplify management by just placing files inside this .d
directory.

This removes the need for concat and concat::fragment resources, so
removes the dependency on the concat module. It also removes the need
for a moduledir that was needed for the concat module magic, so we also
get rid of the dependency on the common module.

Signed-off-by: Gabriel Filion <lelutin@gmail.com>
2012-09-20 03:55:58 -04:00
Gabriel Filion
978378623d Stop using config_file from the common module
This define doesn't add much of a shortcut and imposes a dependency on
the "common" module. We'll be better off with the small repetition but
less tightly coupled modules.

Sadly, the "common" module is still required, but that is going to be
the focus of the commit that follows this one.

Signed-off-by: Gabriel Filion <lelutin@gmail.com>
2012-09-20 02:54:26 -04:00
mh
d47addd2ed get rid off config_file wrapper 2012-06-18 11:41:04 -03:00
mh
0e016e968d migrate away from hiera stuff 2012-06-14 10:07:29 -03:00
mh
ac166366d7 refactor things for >2.7 2012-06-08 12:16:46 -03:00
mh
0cb3cd816e Migrate - in class names to _
In newer puppet releases the old way to name class/modules with a -,
won't anymore be supported.

Conflicts:

	manifests/unattended_upgrades.pp
2012-06-08 15:07:48 +02:00
mh
39917fb4db new style for 2.7 2012-06-05 21:31:15 -03:00
mh
f1a0eca466 Migrate - in class names to _
In newer puppet releases the old way to name class/modules with a -,
won't anymore be supported.
2012-04-15 15:41:58 +02:00
mh
56efade862 use correct references for new concat usage 2012-04-11 11:35:31 +02:00
Gabriel Filion
a835369958 Force an apt-get update when changing an apt::sources_list
sources_list doesn't currently force puppet to run 'apt-get update'
after creating/modifying/removing files in sources.list.d.

Signed-off-by: Gabriel Filion <lelutin@gmail.com>
2012-04-09 01:39:29 -04:00
Gabriel Filion
4d0ddd0057 Refactor: manage .d directories when using sources_list and apt_conf
The .d directories are only managed by the main 'apt' class. However,
both 'sources_list' and 'apt_conf' defines depend on those directories.
So in practice, the defines have an implicit need for those directories
to be somehow managed.

Let's turn this into an explicit relation, and include the directories
in the defines.

This makes it possible to use both defines without having to include the
main 'apt' class. (maybe when using puppet apply?)

Signed-off-by: Gabriel Filion <lelutin@gmail.com>
2012-04-09 01:38:30 -04:00
intrigeri
d0f7e98ec5 Revert "apt::custom_sources_template to deploy custom sources.list.d/xyz.list"
This reverts commit 3c0499b78d.
This was already provided by sources_list.pp.
2011-04-25 22:50:53 +02:00
nadir
3c0499b78d apt::custom_sources_template to deploy custom sources.list.d/xyz.list 2011-01-09 22:57:18 +01:00
intrigeri
af8ecf1e9f Repair Exec['update_apt'] to run apt-get update when needed.
Move this Exec to a dedicated class that is not included by default i.e. we
default not to "apt-get update" on every Puppet run.

We now make use of this class in the apt::upgrade_package define to make sure
APT indexes are up-to-date before attempting package upgrades.

One may now use the following to ensure current packages are installed by
Package resources:

  include apt::update
  Package { require => Exec[apt_updated] }
2010-12-15 09:47:57 +01:00
intrigeri
1ae3fdfeb5 Make consistent the use of absolute path to apt-get. 2010-12-14 21:56:36 +01:00
intrigeri
4103a27054 Additionally use version number in Lenny default pinning.
Lenny's APT does not support pinning like this:

  Pin: release o=Debian,n=<%= codename %>

We therefore switched (in commit ef2ebdffd) to:

  Pin: release o=Debian,a=<%= release %>

With such a pinning setup, when Squeeze is released, systems using this module
with $apt_use_next_release set to true would immediately switch to prefer
packages from Squeeze. If an automated upgrade process is setup, they would be
automatically upgraded to Squeeze.

This does not sound safe to me, so let's use the release version number as an
additional selection criterion to prevent upgrades to Squeeze to happen behind
our back:

  Pin: release o=Debian,a=<%= release %>,v=<%= release_version %>*

Note that the trailing '*' is intentional and necessary to match stable
point-releases.
2010-12-12 09:57:42 +01:00
Micah Anderson
d9ccf2a99b provide an "03clean" alias for the 03clean_vserver to satisfy dependencies 2010-12-08 09:57:02 -05:00
Micah Anderson
ee21742cf8 change the name of the custom_keys exec to be "custom_keys" instead of using the alias metaparameter.
the reason for this change was because the Exec override was not able to find the exec through its alias
2010-12-07 23:06:11 -05:00
Micah Anderson
e15283b781 format standardization 2010-12-07 13:18:41 -05:00
Micah Anderson
bb03c32b45 switch the default $debian_url to use the Debian CDN mirror address.
The CDN checks your IP and uses the Max-Mind geoIP DB to determine your location and then uses your local country Debian Mirror, or if your local country doesn't have a debian mirror, it uses the local continent. It automatically checks and prunes dead mirrors. the technology for the Debian CDN setup is still improving, I believe that ASN-number associations are the next step to attempt to make more informed, finer-grained choices.

This is more useful than using ftp.debian.org because that is just a round-robin DNS entry that could get you any mirror anywhere.
2010-12-07 12:46:37 -05:00
Micah Anderson
2ee70ab5e0 Set dselect DSelect::Clean to 'pre-auto' by default for hosts that are vservers.
Before you only had the choice of setting a 03clean apt configuration for either
all hosts, or every single host. Setting it to have the recommended settings for
vservers for all hosts meant that you were setting it for non-vservers as well
as vservers. The other option you had was to set it per host. This was a bit
annoying if you have any more than one vserver because you would need to create
a 03clean for every single vserver guest.

This change auto-detects if the node is a vserver, and if it is it automatically
installs the 03clean_vserver file, with the recommended DSelect::Clean settings,
and allows you to override this for all of your vservers, or for specific hosts.
2010-12-07 12:20:14 -05:00