summaryrefslogtreecommitdiff
path: root/manifests/preferences.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/preferences.pp')
-rw-r--r--manifests/preferences.pp159
1 files changed, 92 insertions, 67 deletions
diff --git a/manifests/preferences.pp b/manifests/preferences.pp
index ce28d37..0ec77cf 100644
--- a/manifests/preferences.pp
+++ b/manifests/preferences.pp
@@ -1,110 +1,135 @@
+# Configure basic pins for debian/Ubuntu codenames
+#
+# This all ensures that apt behaves as expected with regards to packages when
+# we have more sources than just the one for the current codenamed release.
+#
+# This class should not be included directly. It is automatically called in by
+# the 'apt' class. Thus you should use the apt class instead.
+#
class apt::preferences {
file { '/etc/apt/preferences':
- ensure => absent;
+ ensure => absent,
+ }
+ # Remove the file that we were previously deploying. It's now been renamed to
+ # current_codename
+ file { '/etc/apt/preferences.d/stable':
+ ensure => absent,
}
if ($apt::manage_preferences == true) and ($apt::custom_preferences != undef) {
-
- file {
- '/etc/apt/preferences.d/custom':
- ensure => present,
- alias => 'apt_config',
- content => template($apt::custom_preferences),
- require => File['/etc/apt/sources.list'],
- owner => root, group => 0, mode => '0644';
-
- '/etc/apt/preferences.d/stable':
- ensure => absent;
-
- '/etc/apt/preferences.d/volatile':
- ensure => absent;
-
- '/etc/apt/preferences.d/lts':
- ensure => absent;
-
- '/etc/apt/preferences.d/nextcodename':
- ensure => absent;
+ file { '/etc/apt/preferences.d/custom':
+ ensure => present,
+ alias => 'apt_config',
+ content => template($apt::custom_preferences),
+ owner => 'root',
+ group => 0,
+ mode => '0644',
+ require => File['/etc/apt/sources.list'],
+ }
+ file { '/etc/apt/preferences.d/current_codename':
+ ensure => absent,
+ }
+ file { '/etc/apt/preferences.d/volatile':
+ ensure => absent,
+ }
+ file { '/etc/apt/preferences.d/lts':
+ ensure => absent,
+ }
+ file { '/etc/apt/preferences.d/nextcodename':
+ ensure => absent,
}
}
-
elsif $apt::manage_preferences == true {
- if $::operatingsystem == "Debian" {
-
- file {
- '/etc/apt/preferences.d/stable':
- ensure => present,
- alias => 'apt_config',
- content => template('apt/Debian/stable.erb'),
- require => File['/etc/apt/sources.list'],
- owner => root, group => 0, mode => '0644';
-
- '/etc/apt/preferences.d/custom':
- ensure => absent;
+ if $::operatingsystem == 'Debian' {
+ file { '/etc/apt/preferences.d/current_codename':
+ ensure => present,
+ alias => 'apt_config',
+ content => template('apt/Debian/current_codename.erb'),
+ owner => 'root',
+ group => 0,
+ mode => '0644',
+ require => File['/etc/apt/sources.list'],
+ }
+ # Cleanup for cases where users might switch from using
+ # custom_preferences to not using it anymore.
+ file { '/etc/apt/preferences.d/custom':
+ ensure => absent,
+ }
+ # This file ensures that all debian packages that don't have a
+ # preference file shouldn't be considered for auto-install or upgrade at
+ # all.
+ file { '/etc/apt/preferences.d/debian_fallback':
+ ensure => present,
+ source => 'puppet:///modules/apt/Debian/preferences_fallback',
+ owner => 'root',
+ group => 0,
+ mode => '0644',
+ require => File['/etc/apt/sources.list'],
}
if $apt::use_volatile {
-
file { '/etc/apt/preferences.d/volatile':
ensure => present,
content => template('apt/Debian/volatile.erb'),
+ owner => 'root',
+ group => 0,
+ mode => '0644',
require => File['/etc/apt/sources.list'],
- owner => root, group => 0, mode => '0644';
}
}
if $apt::use_lts {
-
file { '/etc/apt/preferences.d/lts':
ensure => present,
content => template('apt/Debian/lts.erb'),
+ owner => 'root',
+ group => 0,
+ mode => '0644',
require => File['/etc/apt/sources.list'],
- owner => root, group => 0, mode => '0644';
}
}
- if ($::debian_nextcodename) and ($::debian_nextcodename != "experimental") {
-
+ if ($::debian_nextcodename) and ($::debian_nextcodename != 'experimental') {
file { '/etc/apt/preferences.d/nextcodename':
ensure => present,
content => template('apt/Debian/nextcodename.erb'),
+ owner => 'root',
+ group => 0,
+ mode => '0644',
require => File['/etc/apt/sources.list'],
- owner => root, group => 0, mode => '0644';
}
}
}
-
- elsif $::operatingsystem == "Ubuntu" {
-
+ elsif $::operatingsystem == 'Ubuntu' {
file { '/etc/apt/preferences':
- ensure => present,
- alias => 'apt_config',
- # only update together
- content => template("apt/Ubuntu/preferences_${apt::codename}.erb"),
- require => File['/etc/apt/sources.list'],
- owner => root, group => 0, mode => '0644';
+ ensure => present,
+ alias => 'apt_config',
+ # only update together
+ content => template("apt/Ubuntu/preferences_${apt::codename}.erb"),
+ owner => 'root',
+ group => 0,
+ mode => '0644',
+ require => File['/etc/apt/sources.list'],
}
}
}
-
elsif $apt::manage_preferences == false {
-
- file {
- '/etc/apt/preferences.d/custom':
- ensure => absent;
-
- '/etc/apt/preferences.d/stable':
- ensure => absent;
-
- '/etc/apt/preferences.d/volatile':
- ensure => absent;
-
- '/etc/apt/preferences.d/lts':
- ensure => absent;
-
- '/etc/apt/preferences.d/nextcodename':
- ensure => absent;
+ file { '/etc/apt/preferences.d/custom':
+ ensure => absent,
+ }
+ file { '/etc/apt/preferences.d/current_codename':
+ ensure => absent,
+ }
+ file { '/etc/apt/preferences.d/volatile':
+ ensure => absent,
+ }
+ file { '/etc/apt/preferences.d/lts':
+ ensure => absent,
+ }
+ file { '/etc/apt/preferences.d/nextcodename':
+ ensure => absent,
}
}
}