From 54932c9c215154311765a63d41a9d105cfc76c02 Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 5 Jun 2011 14:58:22 +0200 Subject: fix unattended upgrades as we use $lsbdistcodename as source we cannot name the sources which should be used to update "stable". -> Fix it by deploying a per lsbdistcodename configfile. This can also be used as a pre- work for the #2681 shared modules bug. --- files/50unattended-upgrades | 57 ------------------------------------- files/lenny/50unattended-upgrades | 57 +++++++++++++++++++++++++++++++++++++ files/squeeze/50unattended-upgrades | 57 +++++++++++++++++++++++++++++++++++++ manifests/unattended_upgrades.pp | 3 +- 4 files changed, 115 insertions(+), 59 deletions(-) delete mode 100644 files/50unattended-upgrades create mode 100644 files/lenny/50unattended-upgrades create mode 100644 files/squeeze/50unattended-upgrades diff --git a/files/50unattended-upgrades b/files/50unattended-upgrades deleted file mode 100644 index fbab858..0000000 --- a/files/50unattended-upgrades +++ /dev/null @@ -1,57 +0,0 @@ -// this file is managed by puppet ! -// -//See https://wiki.ubuntu.com/AutomaticUpdates for more details about this feature. - -// allowed (origin, archive) pairs -Unattended-Upgrade::Allowed-Origins { - "Debian stable"; - "Debian-Security stable"; -// "Debian testing"; -}; - -APT::Periodic::Update-Package-Lists "1"; -APT::Periodic::Unattended-Upgrade "1"; -Unattended-Upgrade::Mail "root"; - -APT::UnattendedUpgrades::LogDir "/var/log/"; -APT::UnattendedUpgrades::LogFile "unattended_upgrades.log"; - -Unattended-Upgrade::Package-Blacklist { - // we don't want the kernel to be updated so nagios still can give a warning if there is - // a manual update (and reboot) left - - "linux-image-*"; - - // unfortunately there seems to be a bug in unattended-upgrades <= 0.62 that wildcards aren't recognized: - //2009-12-11 13:41:43,267 INFO Initial blacklisted packages: linux-image-* - //2009-12-11 13:41:43,267 INFO Starting unattended upgrades script - //2009-12-11 13:41:43,267 INFO Allowed origins are: ["['Debian', 'stable']", "['Debian-Security', 'stable']"] - //2009-12-11 13:41:45,233 INFO Packages that are upgraded: linux-image-2.6.26-2-amd64 - //2009-12-11 13:41:45,233 INFO Writing dpkg log to '/var/log/unattended-upgrades-dpkg_2009-12-11_13:41:45.233713.log' - //2009-12-11 13:42:11,988 INFO All upgrades installed - - // lenny - "linux-image-2.6.26-1-686"; - "linux-image-2.6.26-1-amd64"; - "linux-image-2.6.26-1-xen-686"; - "linux-image-2.6.26-1-xen-amd64"; - "linux-image-2.6.26-1-vserver-686"; - "linux-image-2.6.26-1-vserver-amd64"; - - "linux-image-2.6.26-2-686"; - "linux-image-2.6.26-2-amd64"; - "linux-image-2.6.26-2-xen-686"; - "linux-image-2.6.26-2-xen-amd64"; - "linux-image-2.6.26-2-vserver-686"; - "linux-image-2.6.26-2-vserver-amd64"; - - // squeeze - "linux-image-2.6.32-5-686"; - "linux-image-2.6.32-5-amd64"; - "linux-image-2.6.32-5-xen-686"; - "linux-image-2.6.32-5-xen-amd64"; - "linux-image-2.6.32-5-vserver-686"; - "linux-image-2.6.32-5-vserver-amd64"; - -}; - diff --git a/files/lenny/50unattended-upgrades b/files/lenny/50unattended-upgrades new file mode 100644 index 0000000..0841811 --- /dev/null +++ b/files/lenny/50unattended-upgrades @@ -0,0 +1,57 @@ +// this file is managed by puppet ! +// +//See https://wiki.ubuntu.com/AutomaticUpdates for more details about this feature. + +// allowed (origin, archive) pairs +Unattended-Upgrade::Allowed-Origins { + "Debian lenny"; + "Debian-Security lenny"; +// "Debian testing"; +}; + +APT::Periodic::Update-Package-Lists "1"; +APT::Periodic::Unattended-Upgrade "1"; +Unattended-Upgrade::Mail "root"; + +APT::UnattendedUpgrades::LogDir "/var/log/"; +APT::UnattendedUpgrades::LogFile "unattended_upgrades.log"; + +Unattended-Upgrade::Package-Blacklist { + // we don't want the kernel to be updated so nagios still can give a warning if there is + // a manual update (and reboot) left + + "linux-image-*"; + + // unfortunately there seems to be a bug in unattended-upgrades <= 0.62 that wildcards aren't recognized: + //2009-12-11 13:41:43,267 INFO Initial blacklisted packages: linux-image-* + //2009-12-11 13:41:43,267 INFO Starting unattended upgrades script + //2009-12-11 13:41:43,267 INFO Allowed origins are: ["['Debian', 'stable']", "['Debian-Security', 'stable']"] + //2009-12-11 13:41:45,233 INFO Packages that are upgraded: linux-image-2.6.26-2-amd64 + //2009-12-11 13:41:45,233 INFO Writing dpkg log to '/var/log/unattended-upgrades-dpkg_2009-12-11_13:41:45.233713.log' + //2009-12-11 13:42:11,988 INFO All upgrades installed + + // lenny + "linux-image-2.6.26-1-686"; + "linux-image-2.6.26-1-amd64"; + "linux-image-2.6.26-1-xen-686"; + "linux-image-2.6.26-1-xen-amd64"; + "linux-image-2.6.26-1-vserver-686"; + "linux-image-2.6.26-1-vserver-amd64"; + + "linux-image-2.6.26-2-686"; + "linux-image-2.6.26-2-amd64"; + "linux-image-2.6.26-2-xen-686"; + "linux-image-2.6.26-2-xen-amd64"; + "linux-image-2.6.26-2-vserver-686"; + "linux-image-2.6.26-2-vserver-amd64"; + + // squeeze + "linux-image-2.6.32-5-686"; + "linux-image-2.6.32-5-amd64"; + "linux-image-2.6.32-5-xen-686"; + "linux-image-2.6.32-5-xen-amd64"; + "linux-image-2.6.32-5-vserver-686"; + "linux-image-2.6.32-5-vserver-amd64"; + +}; + diff --git a/files/squeeze/50unattended-upgrades b/files/squeeze/50unattended-upgrades new file mode 100644 index 0000000..a1822e7 --- /dev/null +++ b/files/squeeze/50unattended-upgrades @@ -0,0 +1,57 @@ +// this file is managed by puppet ! +// +//See https://wiki.ubuntu.com/AutomaticUpdates for more details about this feature. + +// allowed (origin, archive) pairs +Unattended-Upgrade::Allowed-Origins { + "Debian squeeze"; + "Debian-Security squeeze"; +// "Debian testing"; +}; + +APT::Periodic::Update-Package-Lists "1"; +APT::Periodic::Unattended-Upgrade "1"; +Unattended-Upgrade::Mail "root"; + +APT::UnattendedUpgrades::LogDir "/var/log/"; +APT::UnattendedUpgrades::LogFile "unattended_upgrades.log"; + +Unattended-Upgrade::Package-Blacklist { + // we don't want the kernel to be updated so nagios still can give a warning if there is + // a manual update (and reboot) left + + "linux-image-*"; + + // unfortunately there seems to be a bug in unattended-upgrades <= 0.62 that wildcards aren't recognized: + //2009-12-11 13:41:43,267 INFO Initial blacklisted packages: linux-image-* + //2009-12-11 13:41:43,267 INFO Starting unattended upgrades script + //2009-12-11 13:41:43,267 INFO Allowed origins are: ["['Debian', 'stable']", "['Debian-Security', 'stable']"] + //2009-12-11 13:41:45,233 INFO Packages that are upgraded: linux-image-2.6.26-2-amd64 + //2009-12-11 13:41:45,233 INFO Writing dpkg log to '/var/log/unattended-upgrades-dpkg_2009-12-11_13:41:45.233713.log' + //2009-12-11 13:42:11,988 INFO All upgrades installed + + // lenny + "linux-image-2.6.26-1-686"; + "linux-image-2.6.26-1-amd64"; + "linux-image-2.6.26-1-xen-686"; + "linux-image-2.6.26-1-xen-amd64"; + "linux-image-2.6.26-1-vserver-686"; + "linux-image-2.6.26-1-vserver-amd64"; + + "linux-image-2.6.26-2-686"; + "linux-image-2.6.26-2-amd64"; + "linux-image-2.6.26-2-xen-686"; + "linux-image-2.6.26-2-xen-amd64"; + "linux-image-2.6.26-2-vserver-686"; + "linux-image-2.6.26-2-vserver-amd64"; + + // squeeze + "linux-image-2.6.32-5-686"; + "linux-image-2.6.32-5-amd64"; + "linux-image-2.6.32-5-xen-686"; + "linux-image-2.6.32-5-xen-amd64"; + "linux-image-2.6.32-5-vserver-686"; + "linux-image-2.6.32-5-vserver-amd64"; + +}; + diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index b90fcbb..3baffad 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -8,8 +8,7 @@ class apt::unattended_upgrades { apt_conf { "50unattended-upgrades": source => ["puppet:///modules/site-apt/$lsbdistcodename/50unattended-upgrades", "puppet:///modules/site-apt/50unattended-upgrades", - "puppet:///modules/apt/$lsbdistcodename/50unattended-upgrades", - "puppet:///modules/apt/50unattended-upgrades" ], + "puppet:///modules/apt/$lsbdistcodename/50unattended-upgrades" ], require => Package['unattended-upgrades'], } -- cgit v1.2.3 From b3246e964525f1ca46a65e835b38cc2c46b88cf2 Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 7 Jun 2011 01:02:01 +0200 Subject: fixing unattended upgrade We should use the correct origin archive. Lenny is oldstable. --- files/lenny/50unattended-upgrades | 4 ++-- files/squeeze/50unattended-upgrades | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/files/lenny/50unattended-upgrades b/files/lenny/50unattended-upgrades index 0841811..768bef8 100644 --- a/files/lenny/50unattended-upgrades +++ b/files/lenny/50unattended-upgrades @@ -4,8 +4,8 @@ // allowed (origin, archive) pairs Unattended-Upgrade::Allowed-Origins { - "Debian lenny"; - "Debian-Security lenny"; + "Debian oldstable"; + "Debian-Security oldstable"; // "Debian testing"; }; diff --git a/files/squeeze/50unattended-upgrades b/files/squeeze/50unattended-upgrades index a1822e7..fbab858 100644 --- a/files/squeeze/50unattended-upgrades +++ b/files/squeeze/50unattended-upgrades @@ -4,8 +4,8 @@ // allowed (origin, archive) pairs Unattended-Upgrade::Allowed-Origins { - "Debian squeeze"; - "Debian-Security squeeze"; + "Debian stable"; + "Debian-Security stable"; // "Debian testing"; }; -- cgit v1.2.3 From e99f7c8672342c4e00522e6be851a14ae1d56d4d Mon Sep 17 00:00:00 2001 From: mh Date: Fri, 5 Aug 2011 10:57:13 +0200 Subject: migrate concatenated_file to the concat module --- README | 1 + manifests/preferences.pp | 16 ++++++---------- manifests/preferences_snippet.pp | 10 ++++------ 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/README b/README index 31c715a..ba287d9 100644 --- a/README +++ b/README @@ -19,6 +19,7 @@ This module needs: - lsb-release installed - the common module: git://labs.riseup.net/shared-common +- the concat module: https://github.com/ripienaar/puppet-concat By default, on normal hosts, this module sets the configuration option DSelect::Clean to 'auto'. On virtual servers, the value is set by default to diff --git a/manifests/preferences.pp b/manifests/preferences.pp index 71ef0a6..f188149 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -1,9 +1,6 @@ class apt::preferences { - include common::moduledir - $apt_preferences_dir = "${common::moduledir::module_dir_path}/apt/preferences" - module_dir{'apt/preferences': } - file { "${apt_preferences_dir}_header": + concat::fragment{"apt_preferences_header": content => $custom_preferences ? { '' => $operatingsystem ? { 'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"), @@ -11,16 +8,15 @@ class apt::preferences { }, default => $custom_preferences }, + order => 00, + target => '/etc/apt/preferences', } - concatenated_file { '/etc/apt/preferences': - dir => $apt_preferences_dir, - header => "${apt_preferences_dir}_header", - # use Concatenated_file[apt_config] to reference a completed configuration - # See "The Puppet Semaphor" 2007-06-25 on the puppet-users ML + concat{'/etc/apt/preferences': alias => apt_config, # only update together - require => File["/etc/apt/sources.list"]; + require => File["/etc/apt/sources.list"], + owner => root, group => 0, mode => 0644; } } diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 4b8e575..bcc12de 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -11,11 +11,9 @@ define apt::preferences_snippet( include apt::preferences - file { "${apt::preferences::apt_preferences_dir}/${name}": + concat::fragment{"apt_preference_${name}": ensure => $ensure, - #TODO this template is somewhat limited - notify => Exec["concat_${apt::preferences::apt_preferences_dir}"], - owner => root, group => 0, mode => 0600; + target => '/etc/apt/preferences', } # This should really work in the same manner as sources_list and apt_conf @@ -23,12 +21,12 @@ define apt::preferences_snippet( # lenny, we can't generalize without going into ugly special-casing. case $source { '': { - File["${apt::preferences::apt_preferences_dir}/${name}"] { + Concat::Fragment[$name]{ content => template("apt/preferences_snippet.erb") } } default: { - File["${apt::preferences::apt_preferences_dir}/${name}"] { + Concat::Fragment[$name]{ source => $source } } -- cgit v1.2.3 From 2b7cfe52f7a1720947e57ba5163546c37712db16 Mon Sep 17 00:00:00 2001 From: mh Date: Fri, 5 Aug 2011 11:12:29 +0200 Subject: use the correct name --- manifests/preferences_snippet.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index bcc12de..91b3dde 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -21,12 +21,12 @@ define apt::preferences_snippet( # lenny, we can't generalize without going into ugly special-casing. case $source { '': { - Concat::Fragment[$name]{ + Concat::Fragment["apt_preference_${name}"]{ content => template("apt/preferences_snippet.erb") } } default: { - Concat::Fragment[$name]{ + Concat::Fragment["apt_preference_${name}"]{ source => $source } } -- cgit v1.2.3 From 7727549c02c97e6a20dffcbf996bce90c252c793 Mon Sep 17 00:00:00 2001 From: mh Date: Fri, 5 Aug 2011 11:22:05 +0200 Subject: use correct references for new concat usage --- README | 2 +- manifests/init.pp | 2 +- manifests/unattended_upgrades.pp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README b/README index ba287d9..1b01f88 100644 --- a/README +++ b/README @@ -370,7 +370,7 @@ upgrade_package { "perl": Resources ========= -Concatenated_file[apt_config] +Concat[apt_config] ----------------------------- Use this resource to depend on or add to a completed apt configuration diff --git a/manifests/init.pp b/manifests/init.pp index b5be91f..3a816d2 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -167,7 +167,7 @@ class apt { } if $custom_preferences != false { Exec["custom_keys"] { - before => Concatenated_file[apt_config], + before => Concat[apt_config], } } } diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index 3baffad..2904f36 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -14,7 +14,7 @@ class apt::unattended_upgrades { if $custom_preferences != false { Apt_conf["50unattended-upgrades"] { - before => Concatenated_file[apt_config], + before => Concat[apt_config], } } } -- cgit v1.2.3 From f1a0eca4662f8c7ec47bfc3d60aa9099c8f9fa77 Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 15 Apr 2012 15:41:58 +0200 Subject: Migrate - in class names to _ In newer puppet releases the old way to name class/modules with a -, won't anymore be supported. --- README | 30 +++++++++++++++--------------- manifests/cron/dist-upgrade.pp | 23 ----------------------- manifests/cron/dist_upgrade.pp | 23 +++++++++++++++++++++++ manifests/dist_upgrade/initiator.pp | 4 ++-- manifests/init.pp | 12 ++++++------ manifests/preseeded_package.pp | 2 +- manifests/unattended_upgrades.pp | 4 ++-- 7 files changed, 49 insertions(+), 49 deletions(-) delete mode 100644 manifests/cron/dist-upgrade.pp create mode 100644 manifests/cron/dist_upgrade.pp diff --git a/README b/README index fdae462..3d2b70f 100644 --- a/README +++ b/README @@ -36,11 +36,11 @@ From apt.conf(5), 0.7.2: packages." To change the default setting for DSelect::Clean, you can create a file named -"03clean" or "03clean_vserver" in your site-apt module's files directory. You +"03clean" or "03clean_vserver" in your site_apt module's files directory. You can also define this for a specific host by creating a file in a subdirectory of -the site-apt modules' files directory that is named the same as the -host. (example: site-apt/files/some.host.com/03clean, or -site-apt/files/some.host.com/03clean_vserver) +the site_apt modules' files directory that is named the same as the +host. (example: site_apt/files/some.host.com/03clean, or +site_apt/files/some.host.com/03clean_vserver) Variables ========= @@ -61,9 +61,9 @@ e.g. changing the sections included in the source, etc. you can set this variable to the content that you desire to use instead. For example, setting the following variable before including this class will -pull in the templates/site-apt/sources.list file: +pull in the templates/site_apt/sources.list file: - $custom_sources_list = template("site-apt/sources.list") + $custom_sources_list = template("site_apt/sources.list") $custom_preferences ------------------- @@ -77,8 +77,8 @@ unless you explicitly specify the version number. This file will be complemented with all of the preferences_snippet calls (see below). If the default preferences template doesn't suit your needs, you can create a -template located in your site-apt module, and set $custom_preferences with the -content (eg. $custom_preferences = template('site-apt/preferences') ) +template located in your site_apt module, and set $custom_preferences with the +content (eg. $custom_preferences = template('site_apt/preferences') ) Setting this variable to false before including this class will force the apt/preferences file to be absent: @@ -198,7 +198,7 @@ be passed as the "hours" parameter of a cronjob. Example: Note that the default 4 AM cronjob won't be disabled. -apt::cron::dist-upgrade +apt::cron::dist_upgrade ----------------------- This class sets up cron-apt so that it dist-upgrades the system and @@ -230,8 +230,8 @@ file's content changes. The initiator file is copied from the first available source amongst the following ones, in decreasing priority order: -- puppet:///site-apt/${fqdn}/upgrade_initiator -- puppet:///site-apt/upgrade_initiator +- puppet:///site_apt/${fqdn}/upgrade_initiator +- puppet:///site_apt/upgrade_initiator - puppet:///apt/upgrade_initiator This is useful when one does not want to setup a fully automated @@ -298,7 +298,7 @@ meta-parameter to define content inline or with the help of a template. Example: apt::apt_conf { "80download-only": - source => "puppet:///modules/site-apt/80download-only", + source => "puppet:///modules/site_apt/80download-only", } apt::preferences_snippet @@ -320,7 +320,7 @@ apt::preseeded_package This simplifies installation of packages for which you wish to preseed the answers to debconf. For example, if you wish to provide a preseed file for the locales package, you would place the locales.seed file in -'site-apt/templates/$lsbdistcodename/locales.seeds' and then include the +'site_apt/templates/$lsbdistcodename/locales.seeds' and then include the following in your manifest: apt::preseeded_package { locales: } @@ -343,8 +343,8 @@ meta-parameter to define content inline or with the help of a template. Example: apt::sources_list { "company_internals.list": - source => ["puppet:///modules/site-apt/${fqdn}/company_internals.list", - "puppet:///modules/site-apt/company_internals.list"], + source => ["puppet:///modules/site_apt/${fqdn}/company_internals.list", + "puppet:///modules/site_apt/company_internals.list"], } apt::upgrade_package diff --git a/manifests/cron/dist-upgrade.pp b/manifests/cron/dist-upgrade.pp deleted file mode 100644 index 2568cb7..0000000 --- a/manifests/cron/dist-upgrade.pp +++ /dev/null @@ -1,23 +0,0 @@ -class apt::cron::dist-upgrade inherits apt::cron::base { - - $action = "autoclean -y -dist-upgrade -y -o APT::Get::Show-Upgraded=true -o 'DPkg::Options::=--force-confold' -" - - file { "/etc/cron-apt/action.d/3-download": - ensure => absent, - } - - package { "apt-listbugs": ensure => absent } - - config_file { "/etc/cron-apt/action.d/4-dist-upgrade": - content => $action, - require => Package[cron-apt] - } - - config_file { "/etc/cron-apt/config.d/MAILON": - content => "MAILON=upgrade\n", - require => Package[cron-apt] - } - -} diff --git a/manifests/cron/dist_upgrade.pp b/manifests/cron/dist_upgrade.pp new file mode 100644 index 0000000..1c8adb1 --- /dev/null +++ b/manifests/cron/dist_upgrade.pp @@ -0,0 +1,23 @@ +class apt::cron::dist_upgrade inherits apt::cron::base { + + $action = "autoclean -y +dist-upgrade -y -o APT::Get::Show-Upgraded=true -o 'DPkg::Options::=--force-confold' +" + + file { "/etc/cron-apt/action.d/3-download": + ensure => absent, + } + + package { "apt-listbugs": ensure => absent } + + config_file { "/etc/cron-apt/action.d/4-dist-upgrade": + content => $action, + require => Package[cron-apt] + } + + config_file { "/etc/cron-apt/config.d/MAILON": + content => "MAILON=upgrade\n", + require => Package[cron-apt] + } + +} diff --git a/manifests/dist_upgrade/initiator.pp b/manifests/dist_upgrade/initiator.pp index 6d57947..571cd51 100644 --- a/manifests/dist_upgrade/initiator.pp +++ b/manifests/dist_upgrade/initiator.pp @@ -10,8 +10,8 @@ class apt::dist_upgrade::initiator inherits apt::dist_upgrade { path => "${initiator_abs}", checksum => md5, source => [ - "puppet:///modules/site-apt/${fqdn}/${initiator}", - "puppet:///modules/site-apt/${initiator}", + "puppet:///modules/site_apt/${fqdn}/${initiator}", + "puppet:///modules/site_apt/${initiator}", "puppet:///modules/apt/${initiator}", ], } diff --git a/manifests/init.pp b/manifests/init.pp index 960f18d..2ae691f 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -90,23 +90,23 @@ class apt { } apt_conf { "02show_upgraded": - source => [ "puppet:///modules/site-apt/${fqdn}/02show_upgraded", - "puppet:///modules/site-apt/02show_upgraded", + source => [ "puppet:///modules/site_apt/${fqdn}/02show_upgraded", + "puppet:///modules/site_apt/02show_upgraded", "puppet:///modules/apt/02show_upgraded" ] } if ( $virtual == "vserver" ) { apt_conf { "03clean_vserver": - source => [ "puppet:///modules/site-apt/${fqdn}/03clean_vserver", - "puppet:///modules/site-apt/03clean_vserver", + source => [ "puppet:///modules/site_apt/${fqdn}/03clean_vserver", + "puppet:///modules/site_apt/03clean_vserver", "puppet:///modules/apt/03clean_vserver" ], alias => "03clean"; } } else { apt_conf { "03clean": - source => [ "puppet:///modules/site-apt/${fqdn}/03clean", - "puppet:///modules/site-apt/03clean", + source => [ "puppet:///modules/site_apt/${fqdn}/03clean", + "puppet:///modules/site_apt/03clean", "puppet:///modules/apt/03clean" ] } } diff --git a/manifests/preseeded_package.pp b/manifests/preseeded_package.pp index 839f200..d831934 100644 --- a/manifests/preseeded_package.pp +++ b/manifests/preseeded_package.pp @@ -1,7 +1,7 @@ define apt::preseeded_package ($content = "", $ensure = "installed") { $seedfile = "/var/cache/local/preseeding/$name.seeds" $real_content = $content ? { - "" => template ( "site-apt/$lsbdistcodename/$name.seeds" ), + "" => template ( "site_apt/$lsbdistcodename/$name.seeds" ), default => $content } diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index 2904f36..2a19983 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -6,8 +6,8 @@ class apt::unattended_upgrades { } apt_conf { "50unattended-upgrades": - source => ["puppet:///modules/site-apt/$lsbdistcodename/50unattended-upgrades", - "puppet:///modules/site-apt/50unattended-upgrades", + source => ["puppet:///modules/site_apt/$lsbdistcodename/50unattended-upgrades", + "puppet:///modules/site_apt/50unattended-upgrades", "puppet:///modules/apt/$lsbdistcodename/50unattended-upgrades" ], require => Package['unattended-upgrades'], } -- cgit v1.2.3 From 39917fb4dbe21b1673ceabaa1d61180cca9f493b Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 5 Jun 2012 21:31:15 -0300 Subject: new style for 2.7 --- README | 12 ++--- manifests/apticron.pp | 64 +++++++------------------ manifests/dist_upgrade/initiator.pp | 2 +- manifests/init.pp | 86 +++++++++++----------------------- manifests/listchanges.pp | 43 +++++------------ manifests/preferences.pp | 8 ++-- manifests/preseeded_package.pp | 11 ++--- manifests/unattended_upgrades.pp | 7 +-- templates/Debian/apticron_lenny.erb | 21 +++++---- templates/Debian/apticron_squeeze.erb | 28 ++++++----- templates/Debian/apticron_wheezy.erb | 24 +++++----- templates/Debian/listchanges_lenny.erb | 10 ++-- 12 files changed, 118 insertions(+), 198 deletions(-) diff --git a/README b/README index 3d2b70f..398298e 100644 --- a/README +++ b/README @@ -45,7 +45,7 @@ site_apt/files/some.host.com/03clean_vserver) Variables ========= -$lsbdistcodename +$::lsbdistcodename ---------------- Contains the codename ("etch", "lenny", ...) of the client's @@ -173,7 +173,7 @@ defaults, which you are free to change before you include the class: $apticron_ensure_version = "present" $apticron_email = "root" - $apticron_config = "apt/${operatingsystem}/apticron_${lsbrelease}.erb" + $apticron_config = "apt/${::operatingsystem}/apticron_${::lsbrelease}.erb" $apticron_diff_only = "1" $apticron_listchanges_profile = "apticron" $apticron_system = false @@ -230,7 +230,7 @@ file's content changes. The initiator file is copied from the first available source amongst the following ones, in decreasing priority order: -- puppet:///site_apt/${fqdn}/upgrade_initiator +- puppet:///site_apt/${::fqdn}/upgrade_initiator - puppet:///site_apt/upgrade_initiator - puppet:///apt/upgrade_initiator @@ -258,7 +258,7 @@ This class, when included, installs apt-listchanges and configures it using the following variables, the defaults are below: $apt_listchanges_version = "present" - $apt_listchanges_config = "apt/${operatingsystem}/listchanges_${lsbrelease}.erb" + $apt_listchanges_config = "apt/${::operatingsystem}/listchanges_${::lsbrelease}.erb" $apt_listchanges_frontend = "pager" $apt_listchanges_email = "root" $apt_listchanges_confirm = "0" @@ -320,7 +320,7 @@ apt::preseeded_package This simplifies installation of packages for which you wish to preseed the answers to debconf. For example, if you wish to provide a preseed file for the locales package, you would place the locales.seed file in -'site_apt/templates/$lsbdistcodename/locales.seeds' and then include the +'site_apt/templates/${::lsbdistcodename}/locales.seeds' and then include the following in your manifest: apt::preseeded_package { locales: } @@ -343,7 +343,7 @@ meta-parameter to define content inline or with the help of a template. Example: apt::sources_list { "company_internals.list": - source => ["puppet:///modules/site_apt/${fqdn}/company_internals.list", + source => ["puppet:///modules/site_apt/${::fqdn}/company_internals.list", "puppet:///modules/site_apt/company_internals.list"], } diff --git a/manifests/apticron.pp b/manifests/apticron.pp index 2fe8e44..c578311 100644 --- a/manifests/apticron.pp +++ b/manifests/apticron.pp @@ -1,53 +1,21 @@ -class apt::apticron { - - case $apticron_ensure_version { - '': { $apticron_ensure_version = "present" } - } - - case $apticron_config { - '': { $apticron_config = "apt/${operatingsystem}/apticron_${lsbdistcodename}.erb" } - } - - case $apticron_email { - '': { $apticron_email = "root" } - } - - case $apticron_diff_only { - '': { $apticron_diff_only = "1" } - } - - case $apticron_listchanges_profile { - '': { $apticron_listchanges_profile = "apticron" } - } - - case $apticron_system { - '': { $apticron_system = false } - } - - case $apticron_ipaddressnum { - '': { $apticron_ipaddressnum = false } - } - - case $apticron_ipaddresses { - '': { $apticron_ipaddresses = false } - } - - case $apticron_notifyholds { - '': { $apticron_notifyholds = "0" } - } - - case $apticron_notifynew { - '': { $apticron_notifynew = "0" } - } - - case $apticron_customsubject { - '': { $apticron_customsubject = "" } - } - - package { apticron: ensure => $apticron_ensure_version } +class apt::apticron( + $ensure_version = hiera('apticron_ensure_version','installed'), + $config = hiera('apticron_config',"apt/${::operatingsystem}/apticron_${::lsbdistcodename}.erb"), + $email = hiera('apticron_email', 'root'), + $diff_only = hiera('apticron_diff_only', '1'), + $listchanges_profile = hiera('apticron_listchanges_profile','apticron'), + $system = hiera('apticron_system',false), + $ipaddressnum = hiera('apticron_ipaddressnum',false), + $ipaddresses = hiera('apticron_ipaddresses', false), + $notifyholds = hiera('apticron_notifyholds', '0'), + $notifynew = hiera('apticron_notifynew', '0'), + $customsubject = hiera('apticron_customsubject','') +) { + + package { apticron: ensure => $ensure_version } file { "/etc/apticron/apticron.conf": - content => template($apticron_config), + content => template($apt::apticron::config), mode => 0644, owner => root, group => root, require => Package["apticron"]; } diff --git a/manifests/dist_upgrade/initiator.pp b/manifests/dist_upgrade/initiator.pp index 571cd51..f1d522b 100644 --- a/manifests/dist_upgrade/initiator.pp +++ b/manifests/dist_upgrade/initiator.pp @@ -10,7 +10,7 @@ class apt::dist_upgrade::initiator inherits apt::dist_upgrade { path => "${initiator_abs}", checksum => md5, source => [ - "puppet:///modules/site_apt/${fqdn}/${initiator}", + "puppet:///modules/site_apt/${::fqdn}/${initiator}", "puppet:///modules/site_apt/${initiator}", "puppet:///modules/apt/${initiator}", ], diff --git a/manifests/init.pp b/manifests/init.pp index 2ae691f..4a4b178 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -3,54 +3,29 @@ # Copyright (C) 2007 David Schmitt # See LICENSE for the full license granted to you. -class apt { - - $use_volatile = $apt_volatile_enabled ? { - '' => false, - default => $apt_volatile_enabled, - } - - $include_src = $apt_include_src ? { - '' => false, - default => $apt_include_src, - } - - $use_next_release = $apt_use_next_release ? { - '' => false, - default => $apt_use_next_release, - } - - $debian_url = $apt_debian_url ? { - '' => 'http://cdn.debian.net/debian/', - default => "${apt_debian_url}", - } - $security_url = $apt_security_url ? { - '' => 'http://security.debian.org/', - default => "${apt_security_url}", - } - $backports_url = $apt_backports_url ? { - '' => 'http://backports.debian.org/debian-backports/', - default => "${apt_backports_url}", - } - $volatile_url = $apt_volatile_url ? { - '' => 'http://volatile.debian.org/debian-volatile/', - default => "${apt_volatile_url}", - } - $ubuntu_url = $apt_ubuntu_url ? { - '' => 'http://archive.ubuntu.com/ubuntu', - default => "${apt_ubuntu_url}", - } - case $operatingsystem { +class apt( + $use_volatile = hiera('apt_volatile_enabled',false), + $include_src = hiera('apt_include_src',false), + $use_next_release = hiera('apt_use_next_release'), + $debian_url = hiera('apt_debian_url','http://cdn.debian.net/debian/'), + $security_url = hiera('apt_security_url','http://security.debian.org/'), + $backports_url = hiera('apt_backports_url','http://backports.debian.org/debian-backports/'), + $volatile_url = hiera('apt_volatile_url', 'http://volatile.debian.org/debian-volatile/'), + $ubuntu_url = hiera('apt_ubuntu_url', 'http://archive.ubuntu.com/ubuntu'), + $repos = hiera('apt_repos','auto'), + $custom_preferences = hiera('apt_custom_preferences','') +) { + case $::operatingsystem { 'debian': { - $repos = $apt_repos ? { - '' => 'main contrib non-free', - default => "${apt_repos}", + $real_repos = $repos ? { + 'auto' => 'main contrib non-free', + default => $repos, } } 'ubuntu': { - $repos = $apt_repos ? { + $real_repos = $repos ? { '' => 'main restricted universe multiverse', - default => "${apt_repos}", + default => $repos, } } } @@ -63,13 +38,13 @@ class apt { include lsb # init $release, $next_release, $codename, $next_codename, $release_version - case $lsbdistcodename { + case $::lsbdistcodename { '': { - $codename = $lsbdistcodename - $release = $lsbdistrelease + $codename = $::lsbdistcodename + $release = $::lsbdistrelease } default: { - $codename = $lsbdistcodename + $codename = $::lsbdistcodename $release = debian_release($codename) } } @@ -82,7 +57,7 @@ class apt { # additional sources should be included via the apt::sources_list define "/etc/apt/sources.list": content => $custom_sources_list ? { - '' => template( "apt/$operatingsystem/sources.list.erb"), + '' => template( "apt/${::operatingsystem}/sources.list.erb"), default => $custom_sources_list }, require => Package['lsb'], @@ -90,14 +65,14 @@ class apt { } apt_conf { "02show_upgraded": - source => [ "puppet:///modules/site_apt/${fqdn}/02show_upgraded", + source => [ "puppet:///modules/site_apt/${::fqdn}/02show_upgraded", "puppet:///modules/site_apt/02show_upgraded", "puppet:///modules/apt/02show_upgraded" ] } - if ( $virtual == "vserver" ) { + if ( $::virtual == "vserver" ) { apt_conf { "03clean_vserver": - source => [ "puppet:///modules/site_apt/${fqdn}/03clean_vserver", + source => [ "puppet:///modules/site_apt/${::fqdn}/03clean_vserver", "puppet:///modules/site_apt/03clean_vserver", "puppet:///modules/apt/03clean_vserver" ], alias => "03clean"; @@ -105,7 +80,7 @@ class apt { } else { apt_conf { "03clean": - source => [ "puppet:///modules/site_apt/${fqdn}/03clean", + source => [ "puppet:///modules/site_apt/${::fqdn}/03clean", "puppet:///modules/site_apt/03clean", "puppet:///modules/apt/03clean" ] } @@ -122,13 +97,6 @@ class apt { } } - # backward compatibility: upgrade from previous versions of this module. - file { - [ "/etc/apt/apt.conf.d/from_puppet", "/etc/apt/apt.conf.d/99from_puppet" ]: - ensure => 'absent', - require => [ Apt_conf['02show_upgraded'], Apt_conf['03clean'] ]; - } - include apt::dot_d_directories ## This package should really always be current diff --git a/manifests/listchanges.pp b/manifests/listchanges.pp index 038d5c9..236b629 100644 --- a/manifests/listchanges.pp +++ b/manifests/listchanges.pp @@ -1,37 +1,16 @@ -class apt::listchanges { - - case $apt_listchanges_version { - '': { $apt_listchanges_version = "present" } - } - - case $apt_listchanges_config { - '': { $apt_listchanges_config = "apt/${operatingsystem}/listchanges_${lsbdistcodename}.erb" } - } - - case $apt_listchanges_frontend { - '': { $apt_listchanges_frontend = "mail" } - } - - case $apt_listchanges_email { - '': { $apt_listchanges_email = "root" } - } - - case $apt_listchanges_confirm { - '': { $apt_listchanges_confirm = "0" } - } - - case $apt_listchanges_saveseen { - '': { $apt_listchanges_saveseen = "/var/lib/apt/listchanges.db" } - } - - case $apt_listchanges_which { - '': { $apt_listchanges_which = "both" } - } - - package { apt-listchanges: ensure => $apt_listchanges_ensure_version } +class apt::listchanges( + $ensure_version = hiera('apt_listchanges_version','installed'), + $config = hiera('apt_listchanges_config', "apt/${::operatingsystem}/listchanges_${::lsbdistcodename}.erb"), + $frontend = hiera('apt_listchanges_frontend','mail'), + $email = hiera('apt_listchanges_email','root'), + $confirm = hiera('apt_listchanges_confirm','0'), + $saveseen = hiera('pt_listchanges_saveseen','/var/lib/apt/listchanges.db'), + $which = hiera('apt_listchanges_which','both') +){ + package { apt-listchanges: ensure => $ensure_version } file { "/etc/apt/listchanges.conf": - content => template($apt_listchanges_config), + content => template($apt::listchanges::config), mode => 0644, owner => root, group => root, require => Package["apt-listchanges"]; } diff --git a/manifests/preferences.pp b/manifests/preferences.pp index f188149..dc04713 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -1,10 +1,10 @@ class apt::preferences { concat::fragment{"apt_preferences_header": - content => $custom_preferences ? { - '' => $operatingsystem ? { - 'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"), - 'ubuntu' => template("apt/${operatingsystem}/preferences_${codename}.erb"), + content => $apt::custom_preferences ? { + '' => $::operatingsystem ? { + 'debian' => template("apt/${::operatingsystem}/preferences_${::codename}.erb"), + 'ubuntu' => template("apt/${::operatingsystem}/preferences_${::codename}.erb"), }, default => $custom_preferences }, diff --git a/manifests/preseeded_package.pp b/manifests/preseeded_package.pp index d831934..ac9a821 100644 --- a/manifests/preseeded_package.pp +++ b/manifests/preseeded_package.pp @@ -1,12 +1,11 @@ define apt::preseeded_package ($content = "", $ensure = "installed") { - $seedfile = "/var/cache/local/preseeding/$name.seeds" - $real_content = $content ? { - "" => template ( "site_apt/$lsbdistcodename/$name.seeds" ), - default => $content - } + $seedfile = "/var/cache/local/preseeding/${name}.seeds" file { $seedfile: - content => $real_content, + content => $content ? { + "" => template ( "site_apt/${::lsbdistcodename}/${name}.seeds" ), + default => $content + }, mode => 0600, owner => root, group => root, } diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index 2a19983..b5bf829 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -6,9 +6,10 @@ class apt::unattended_upgrades { } apt_conf { "50unattended-upgrades": - source => ["puppet:///modules/site_apt/$lsbdistcodename/50unattended-upgrades", - "puppet:///modules/site_apt/50unattended-upgrades", - "puppet:///modules/apt/$lsbdistcodename/50unattended-upgrades" ], + source => [ + "puppet:///modules/site_apt/${::lsbdistcodename}/50unattended-upgrades", + "puppet:///modules/site_apt/50unattended-upgrades", + "puppet:///modules/apt/${::lsbdistcodename}/50unattended-upgrades" ], require => Package['unattended-upgrades'], } diff --git a/templates/Debian/apticron_lenny.erb b/templates/Debian/apticron_lenny.erb index 9ec1c6d..aad9985 100644 --- a/templates/Debian/apticron_lenny.erb +++ b/templates/Debian/apticron_lenny.erb @@ -2,7 +2,7 @@ # # set EMAIL to a list of addresses which will be notified of impending updates # -EMAIL="<%= apticron_email %>" +EMAIL="<%= scope.lookupvar('apt::apticron::email') %>" # # Set DIFF_ONLY to "1" to only output the difference of the current run @@ -10,22 +10,22 @@ EMAIL="<%= apticron_email %>" # are no differences, no output/email will be generated. By default, apticron # will output everything that needs to be upgraded. # -DIFF_ONLY="<%= apticron_diff_only %>" +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="<%= apticron_listchanges_profile %>" +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" -<%- if has_variable?('apticron_system') and instance_variable_get("@#{'apticron_system'}").to_s != "false" -%> -<%= 'SYSTEM="' + instance_variable_get("@#{'apticron_system'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::system').to_s == "false" -%> +<%= "SYSTEM=\"#{scope.lookupvar('apt::apticron::system')}\"" %> <%- end -%> # @@ -34,8 +34,8 @@ LISTCHANGES_PROFILE="<%= apticron_listchanges_profile %>" # family type (inet, inet6), if available. # # IPADDRESSNUM="1" -<%- if has_variable?('apticron_ipaddressnum') and instance_variable_get("@#{'apticron_ipaddressnum'}").to_s != "false" -%> -<%= 'IPADDRESSNUM="' + instance_variable_get("@#{'apticron_ipaddressnum'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::ipaddressnum').to_s == "false" -%> +<%= "IPADDRESSNUM=\"#{scope.lookupvar('apt::apticron::ipaddressnum')}\"" %> <%- end -%> # @@ -44,6 +44,7 @@ LISTCHANGES_PROFILE="<%= apticron_listchanges_profile %>" # "ip" command # # IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1" -<%- if has_variable?('apticron_ipaddresses') and instance_variable_get("@#{'apticron_ipaddresses'}").to_s != "false" -%> -<%= 'IPADDRESSES="' + instance_variable_get("@#{'apticron_ipaddresses'}").to_s + '"' %> -<%- end -%> \ No newline at end of file +<%- unless scope.lookupvar('apt::apticron::ipaddresses').to_s == "false" -%> +<%= "IPADDRESSES=\"#{scope.lookupvar('apt::apticron::ipaddresses')}\"" %> +<%- end -%> + diff --git a/templates/Debian/apticron_squeeze.erb b/templates/Debian/apticron_squeeze.erb index b0aa975..580179e 100644 --- a/templates/Debian/apticron_squeeze.erb +++ b/templates/Debian/apticron_squeeze.erb @@ -3,7 +3,8 @@ # set EMAIL to a space separated list of addresses which will be notified of # impending updates # -EMAIL="<%= apticron_email %>" +EMAIL="<%= scope.lookupvar('apt::apticron::email') %>" + # # Set DIFF_ONLY to "1" to only output the difference of the current run @@ -11,51 +12,54 @@ EMAIL="<%= apticron_email %>" # are no differences, no output/email will be generated. By default, apticron # will output everything that needs to be upgraded. # -DIFF_ONLY="<%= apticron_diff_only %>" +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="<%= apticron_listchanges_profile %>" +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" -<%- if has_variable?('apticron_system') and instance_variable_get("@#{'apticron_system'}").to_s != "false" -%> -<%= 'SYSTEM="' + instance_variable_get("@#{'apticron_system'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::system').to_s == "false" -%> +<%= "SYSTEM=\"#{scope.lookupvar('apt::apticron::system')}\"" %> <%- 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" -<%- if has_variable?('apticron_ipaddressnum') and instance_variable_get("@#{'apticron_ipaddressnum'}").to_s != "false" -%> -<%= 'IPADDRESSNUM="' + instance_variable_get("@#{'apticron_ipaddressnum'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::ipaddressnum').to_s == "false" -%> +<%= "IPADDRESSNUM=\"#{scope.lookupvar('apt::apticron::ipaddressnum')}\"" %> <%- 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" -<%- if has_variable?('apticron_ipaddresses') and instance_variable_get("@#{'apticron_ipaddresses'}").to_s != "false" -%> -<%= 'IPADDRESSES="' + instance_variable_get("@#{'apticron_ipaddresses'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::ipaddresses').to_s == "false" -%> +<%= "IPADDRESSES=\"#{scope.lookupvar('apt::apticron::ipaddresses')}\"" %> <%- 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="<%= apticron_notifyholds %>" +NOTIFY_HOLDS="<%= scope.lookupvar('apt::apticron::notifyholds') %>" # # Set NOTIFY_NEW="0" if you don't want to be notified about packages which @@ -67,12 +71,12 @@ NOTIFY_HOLDS="<%= apticron_notifyholds %>" # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531002#44 # # NOTIFY_NEW="0" -NOTIFY_NEW="<%= apticron_notifynew %>" +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="<%= apticron_customsubject %>" +CUSTOM_SUBJECT="<%= scope.lookupvar('apt::apticron::customsubject') %>" diff --git a/templates/Debian/apticron_wheezy.erb b/templates/Debian/apticron_wheezy.erb index ff66d39..d8c8804 100644 --- a/templates/Debian/apticron_wheezy.erb +++ b/templates/Debian/apticron_wheezy.erb @@ -3,7 +3,7 @@ # set EMAIL to a space separated list of addresses which will be notified of # impending updates # -EMAIL="<%= apticron_email %>" +EMAIL="<%= scope.lookupvar('apt::apticron::email') %>" # # Set DIFF_ONLY to "1" to only output the difference of the current run @@ -11,22 +11,22 @@ EMAIL="<%= apticron_email %>" # are no differences, no output/email will be generated. By default, apticron # will output everything that needs to be upgraded. # -DIFF_ONLY="<%= apticron_diff_only %>" +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="<%= apticron_listchanges_profile %>" +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" -<%- if has_variable?('apticron_system') and instance_variable_get("@#{'apticron_system'}").to_s != "false" -%> -<%= 'SYSTEM="' + instance_variable_get("@#{'apticron_system'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::system').to_s == "false" -%> +<%= "SYSTEM=\"#{scope.lookupvar('apt::apticron::system')}\"" %> <%- end -%> # @@ -35,8 +35,8 @@ LISTCHANGES_PROFILE="<%= apticron_listchanges_profile %>" # family type (inet, inet6), if available. # # IPADDRESSNUM="1" -<%- if has_variable?('apticron_ipaddressnum') and instance_variable_get("@#{'apticron_ipaddressnum'}").to_s != "false" -%> -<%= 'IPADDRESSNUM="' + instance_variable_get("@#{'apticron_ipaddressnum'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::ipaddressnum').to_s == "false" -%> +<%= "IPADDRESSNUM=\"#{scope.lookupvar('apt::apticron::ipaddressnum')}\"" %> <%- end -%> # @@ -45,8 +45,8 @@ LISTCHANGES_PROFILE="<%= apticron_listchanges_profile %>" # "ip" command # # IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1" -<%- if has_variable?('apticron_ipaddresses') and instance_variable_get("@#{'apticron_ipaddresses'}").to_s != "false" -%> -<%= 'IPADDRESSES="' + instance_variable_get("@#{'apticron_ipaddresses'}").to_s + '"' %> +<%- unless scope.lookupvar('apt::apticron::ipaddresses').to_s == "false" -%> +<%= "IPADDRESSES=\"#{scope.lookupvar('apt::apticron::ipaddresses')}\"" %> <%- end -%> # @@ -55,7 +55,7 @@ LISTCHANGES_PROFILE="<%= apticron_listchanges_profile %>" # listing them as any other package. # # NOTIFY_HOLDS="0" -NOTIFY_HOLDS="<%= apticron_notifyholds %>" +NOTIFY_HOLDS="<%= scope.lookupvar('apt::apticron::notifyholds') %>" # # Set NOTIFY_NEW="0" if you don't want to be notified about packages which @@ -67,7 +67,7 @@ NOTIFY_HOLDS="<%= apticron_notifyholds %>" # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531002#44 # # NOTIFY_NEW="0" -NOTIFY_NEW="<%= apticron_notifynew %>" +NOTIFY_NEW="<%= scope.lookupvar('apt::apticron::notifynew') %>" # @@ -77,4 +77,4 @@ NOTIFY_NEW="<%= apticron_notifynew %>" # ='[apticron] : package update(s)' # # CUSTOM_SUBJECT="" -CUSTOM_SUBJECT="<%= apticron_customsubject %>" +CUSTOM_SUBJECT="<%= scope.lookupvar('apt::apticron::customsubject') %>" diff --git a/templates/Debian/listchanges_lenny.erb b/templates/Debian/listchanges_lenny.erb index 3624b39..1025dd0 100644 --- a/templates/Debian/listchanges_lenny.erb +++ b/templates/Debian/listchanges_lenny.erb @@ -1,7 +1,7 @@ [apt] -frontend=<%= apt_listchanges_frontend %> -email_address=<%= apt_listchanges_email %> -confirm=<%= apt_listchanges_confirm %> -save_seen=<%= apt_listchanges_saveseen %> -which=<%= apt_listchanges_which %> +frontend=<%= scope.lookupvar('apt::listchanges::frontend') %> +email_address=<%= scope.lookupvar('apt::listchanges::email') %> +confirm=<%= scope.lookupvar('apt::listchanges::confirm') %> +save_seen=<%= scope.lookupvar('apt::listchanges::saveseen') %> +which=<%= scope.lookupvar('apt::listchanges::which') %> -- cgit v1.2.3 From ac166366d7baa45b74e09974289d9fb2dad38e67 Mon Sep 17 00:00:00 2001 From: mh Date: Fri, 8 Jun 2012 12:16:46 -0300 Subject: refactor things for >2.7 --- manifests/init.pp | 10 ++++------ manifests/preferences.pp | 4 ++-- templates/Debian/preferences_lenny.erb | 8 ++++---- templates/Debian/preferences_squeeze.erb | 12 ++++++------ templates/Debian/preferences_wheezy.erb | 8 ++++---- templates/Debian/sources.list.erb | 28 ++++++++++++++-------------- templates/Ubuntu/preferences_maverick.erb | 18 +++++++++--------- templates/Ubuntu/sources.list.erb | 12 ++++++------ 8 files changed, 49 insertions(+), 51 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 4a4b178..a015fc9 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -6,7 +6,7 @@ class apt( $use_volatile = hiera('apt_volatile_enabled',false), $include_src = hiera('apt_include_src',false), - $use_next_release = hiera('apt_use_next_release'), + $use_next_release = hiera('apt_use_next_release',false), $debian_url = hiera('apt_debian_url','http://cdn.debian.net/debian/'), $security_url = hiera('apt_security_url','http://security.debian.org/'), $backports_url = hiera('apt_backports_url','http://backports.debian.org/debian-backports/'), @@ -40,16 +40,14 @@ class apt( # init $release, $next_release, $codename, $next_codename, $release_version case $::lsbdistcodename { '': { - $codename = $::lsbdistcodename $release = $::lsbdistrelease } default: { - $codename = $::lsbdistcodename - $release = debian_release($codename) + $release = debian_release($::lsbdistcodename) } } - $release_version = debian_release_version($codename) - $next_codename = debian_nextcodename($codename) + $release_version = debian_release_version($::lsbdistcodename) + $next_codename = debian_nextcodename($::lsbdistcodename) $next_release = debian_nextrelease($release) config_file { diff --git a/manifests/preferences.pp b/manifests/preferences.pp index dc04713..8f532f8 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -3,8 +3,8 @@ class apt::preferences { concat::fragment{"apt_preferences_header": content => $apt::custom_preferences ? { '' => $::operatingsystem ? { - 'debian' => template("apt/${::operatingsystem}/preferences_${::codename}.erb"), - 'ubuntu' => template("apt/${::operatingsystem}/preferences_${::codename}.erb"), + 'debian' => template("apt/${::operatingsystem}/preferences_${::lsbdistcodename}.erb"), + 'ubuntu' => template("apt/${::operatingsystem}/preferences_${::lsbdistcodename}.erb"), }, default => $custom_preferences }, diff --git a/templates/Debian/preferences_lenny.erb b/templates/Debian/preferences_lenny.erb index fb80129..4648ce1 100644 --- a/templates/Debian/preferences_lenny.erb +++ b/templates/Debian/preferences_lenny.erb @@ -1,6 +1,6 @@ -Explanation: Debian <%= codename %> +Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %> Package: * -Pin: release o=Debian,a=<%= release %>,v=<%= release_version %>* +Pin: release o=Debian,a=<%= scope.lookupvar('apt::release') %>,v=<%= scope.lookupvar('apt::release_version') %>* Pin-Priority: 990 Explanation: Debian backports @@ -8,9 +8,9 @@ Package: * Pin: origin backports.debian.org Pin-Priority: 200 -Explanation: Debian <%= next_release %> +Explanation: Debian <%= scope.lookupvar('apt::next_release') %> Package: * -Pin: release o=Debian,a=<%= next_release %> +Pin: release o=Debian,a=<%= scope.lookupvar('apt::next_release') %> Pin-Priority: 2 Explanation: Debian sid diff --git a/templates/Debian/preferences_squeeze.erb b/templates/Debian/preferences_squeeze.erb index fa0849a..e74515e 100644 --- a/templates/Debian/preferences_squeeze.erb +++ b/templates/Debian/preferences_squeeze.erb @@ -1,16 +1,16 @@ -Explanation: Debian <%= codename %> +Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %> Package: * -Pin: release o=Debian,n=<%= codename %> +Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %> Pin-Priority: 990 -Explanation: Debian <%= codename %>-updates +Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %>-updates Package: * -Pin: release o=Debian,n=<%= codename %>-updates +Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %>-updates Pin-Priority: 990 -Explanation: Debian <%= next_codename %> +Explanation: Debian <%= scope.lookupvar('apt::next_codename') %> Package: * -Pin: release o=Debian,n=<%= next_codename %> +Pin: release o=Debian,n=<%= scope.lookupvar('apt::next_codename') %> Pin-Priority: 2 Explanation: Debian sid diff --git a/templates/Debian/preferences_wheezy.erb b/templates/Debian/preferences_wheezy.erb index d5c7af8..e8c15d6 100644 --- a/templates/Debian/preferences_wheezy.erb +++ b/templates/Debian/preferences_wheezy.erb @@ -1,11 +1,11 @@ -Explanation: Debian <%= codename %> +Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %> Package: * -Pin: release o=Debian,n=<%= codename %> +Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %> Pin-Priority: 990 -Explanation: Debian <%= codename %>-updates +Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %>-updates Package: * -Pin: release o=Debian,n=<%= codename %>-updates +Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %>-updates Pin-Priority: 990 Explanation: Debian sid diff --git a/templates/Debian/sources.list.erb b/templates/Debian/sources.list.erb index b0f490f..eaee338 100644 --- a/templates/Debian/sources.list.erb +++ b/templates/Debian/sources.list.erb @@ -1,20 +1,20 @@ # This file is managed by puppet # all local modifications will be overwritten -### Debian current: <%= codename %> +### Debian current: <%= codename = scope.lookupvar('::lsbdistcodename') %> # basic -deb <%= debian_url %> <%= codename %> <%= repos %> -<% if include_src then -%> +deb <%= debian_url=scope.lookupvar('apt::debian_url') %> <%= codename %> <%= repos=scope.lookupvar('apt::repos') %> +<% if scope.lookupvar('apt::include_src') -%> deb-src <%= debian_url %> <%= codename %> <%= repos %> <% end -%> # security -<% if (release == "unstable" || release == "experimental") -%> +<% if ((release=scope.lookupvar('apt::release')) == "unstable" || release == "experimental") -%> # There is no security support for <%= release %> <% else -%> -deb <%= security_url %> <%= codename %>/updates <%= repos %> -<% if include_src then -%> +deb <%= security_url=scope.lookupvar('apt::security_url') %> <%= codename %>/updates <%= repos %> +<% if include_src -%> deb-src <%= security_url %> <%= codename %>/updates <%= repos %> <% end -%> <% end -%> @@ -23,33 +23,33 @@ deb-src <%= security_url %> <%= codename %>/updates <%= repos %> <% if (release == "testing" || release == "unstable" || release == "experimental") -%> # There is no backports archive for <%= release %> <% else -%> -deb <%= backports_url %> <%= codename %>-backports <%= repos %> -<% if include_src then -%> +deb <%= backports_url=scope.lookupvar('apt::backports_url') %> <%= codename %>-backports <%= repos %> +<% if include_src -%> deb-src <%= backports_url %> <%= codename %>-backports <%= repos %> <% end -%> <% end -%> -<% if use_volatile -%> +<% if use_volatile=scope.lookupvar('apt::use_volatile') -%> # volatile <% if (release == "testing" || release == "unstable" || release == "experimental") -%> # There is no volatile archive for <%= release %> <% else -%> <% if (codename == "lenny" || codename == "etch") -%> -deb <%= volatile_url %> <%= codename %>/volatile <%= repos %> -<% if include_src then -%> +deb <%= volatile_url=scope.lookupvar('apt::volatile_url') %> <%= codename %>/volatile <%= repos %> +<% if include_src -%> deb-src <%= volatile_url %> <%= codename %>/volatile <%= repos %> <% end -%> <% else -%> deb <%= debian_url %> <%= codename %>-updates <%= repos %> -<% if include_src then -%> +<% if include_src -%> deb-src <%= debian_url %> <%= codename %>-updates <%= repos %> <% end -%> <% end -%> <% end -%> <% end -%> -<% if use_next_release then -%> -### Debian next: <%= next_codename %> +<% if next_release=scope.lookupvar('apt::use_next_release') -%> +### Debian next: <%= next_codename=scope.lookupvar('apt::next_codename') %> # basic deb <%= debian_url %> <%= next_codename %> <%= repos %> diff --git a/templates/Ubuntu/preferences_maverick.erb b/templates/Ubuntu/preferences_maverick.erb index 30d3ec6..6f6ea45 100644 --- a/templates/Ubuntu/preferences_maverick.erb +++ b/templates/Ubuntu/preferences_maverick.erb @@ -1,26 +1,26 @@ -Explanation: Ubuntu <%= codename %> security +Explanation: Ubuntu <%= scope.lookupvar('::lsbdistcodename') %> security Package: * -Pin: release o=Ubuntu,a=<%= codename %>-security +Pin: release o=Ubuntu,a=<%= scope.lookupvar('::lsbdistcodename') %>-security Pin-Priority: 990 -Explanation: Ubuntu <%= codename %> updates +Explanation: Ubuntu <%= scope.lookupvar('::lsbdistcodename') %> updates Package: * -Pin: release o=Ubuntu,a=<%= codename %>-updates +Pin: release o=Ubuntu,a=<%= scope.lookupvar('::lsbdistcodename') %>-updates Pin-Priority: 980 -Explanation: Ubuntu <%= codename %> +Explanation: Ubuntu <%= scope.lookupvar('::lsbdistcodename') %> Package: * -Pin: release o=Ubuntu,a=<%= codename %> +Pin: release o=Ubuntu,a=<%= scope.lookupvar('::lsbdistcodename') %> Pin-Priority: 970 Explanation: Ubuntu backports Package: * -Pin: release a=<%= codename %>-backports +Pin: release a=<%= scope.lookupvar('::lsbdistcodename') %>-backports Pin-Priority: 200 -Explanation: Ubuntu <%= next_release %> +Explanation: Ubuntu <%= scope.lookupvar('apt::next_release') %> Package: * -Pin: release o=Ubuntu,a=<%= next_release %> +Pin: release o=Ubuntu,a=<%= scope.lookupvar('apt::next_release') %> Pin-Priority: 2 Explanation: Ubuntu fallback diff --git a/templates/Ubuntu/sources.list.erb b/templates/Ubuntu/sources.list.erb index b5725f5..c1a6c1e 100644 --- a/templates/Ubuntu/sources.list.erb +++ b/templates/Ubuntu/sources.list.erb @@ -1,26 +1,26 @@ # This file is managed by puppet # all local modifications will be overwritten -# basic <%= lsbdistcodename %> -deb <%= ubuntu_url %> <%= lsbdistcodename %> <%= repos %> -<% if include_src then -%> +# basic <%= lsbdistcodename=scope.lookupvar('::lsbdistcodename') %> +deb <%= ubuntu_url=scope.lookupvar('apt::ubuntu_url') %> <%= lsbdistcodename %> <%= repos=scope.lookupvar('apt::repos') %> +<% if include_src=scope.lookupvar('apt::include_src') -%> deb-src <%= ubuntu_url %> <%= lsbdistcodename %> <%= repos %> <% end -%> # updates deb <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= repos %> -<% if include_src then -%> +<% if include_src -%> deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= repos %> <% end -%> # security suppport deb <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= repos %> -<% if include_src then -%> +<% if include_src -%> deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= repos %> <% end -%> # backports deb <%= ubuntu_url %> <%= lsbdistcodename %>-backports main <%= repos %> -<% if include_src then -%> +<% if include_src -%> deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-backports <%= repos %> <% end -%> -- cgit v1.2.3 From 0e016e968da85a435f1670761bad458aa515c7a5 Mon Sep 17 00:00:00 2001 From: mh Date: Thu, 14 Jun 2012 10:07:29 -0300 Subject: migrate away from hiera stuff --- manifests/apticron.pp | 22 +++++++++++----------- manifests/init.pp | 22 +++++++++++----------- manifests/listchanges.pp | 14 +++++++------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/manifests/apticron.pp b/manifests/apticron.pp index c578311..ebdd5b5 100644 --- a/manifests/apticron.pp +++ b/manifests/apticron.pp @@ -1,15 +1,15 @@ class apt::apticron( - $ensure_version = hiera('apticron_ensure_version','installed'), - $config = hiera('apticron_config',"apt/${::operatingsystem}/apticron_${::lsbdistcodename}.erb"), - $email = hiera('apticron_email', 'root'), - $diff_only = hiera('apticron_diff_only', '1'), - $listchanges_profile = hiera('apticron_listchanges_profile','apticron'), - $system = hiera('apticron_system',false), - $ipaddressnum = hiera('apticron_ipaddressnum',false), - $ipaddresses = hiera('apticron_ipaddresses', false), - $notifyholds = hiera('apticron_notifyholds', '0'), - $notifynew = hiera('apticron_notifynew', '0'), - $customsubject = hiera('apticron_customsubject','') + $ensure_version = 'installed', + $config = "apt/${::operatingsystem}/apticron_${::lsbdistcodename}.erb", + $email = 'root', + $diff_only = '1', + $listchanges_profile = 'apticron', + $system = false, + $ipaddressnum = false, + $ipaddresses = false, + $notifyholds = '0', + $notifynew = '0', + $customsubject = '' ) { package { apticron: ensure => $ensure_version } diff --git a/manifests/init.pp b/manifests/init.pp index a015fc9..e35dd2c 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -4,17 +4,17 @@ # See LICENSE for the full license granted to you. class apt( - $use_volatile = hiera('apt_volatile_enabled',false), - $include_src = hiera('apt_include_src',false), - $use_next_release = hiera('apt_use_next_release',false), - $debian_url = hiera('apt_debian_url','http://cdn.debian.net/debian/'), - $security_url = hiera('apt_security_url','http://security.debian.org/'), - $backports_url = hiera('apt_backports_url','http://backports.debian.org/debian-backports/'), - $volatile_url = hiera('apt_volatile_url', 'http://volatile.debian.org/debian-volatile/'), - $ubuntu_url = hiera('apt_ubuntu_url', 'http://archive.ubuntu.com/ubuntu'), - $repos = hiera('apt_repos','auto'), - $custom_preferences = hiera('apt_custom_preferences','') -) { + $use_volatile = false, + $include_src = false, + $use_next_release = false, + $debian_url = 'http://cdn.debian.net/debian/', + $security_url = 'http://security.debian.org/', + $backports_url = 'http://backports.debian.org/debian-backports/', + $volatile_url = 'http://volatile.debian.org/debian-volatile/', + $ubuntu_url = 'http://archive.ubuntu.com/ubuntu', + $repos = 'auto', + $custom_preferences = '' +){ case $::operatingsystem { 'debian': { $real_repos = $repos ? { diff --git a/manifests/listchanges.pp b/manifests/listchanges.pp index 236b629..4194463 100644 --- a/manifests/listchanges.pp +++ b/manifests/listchanges.pp @@ -1,11 +1,11 @@ class apt::listchanges( - $ensure_version = hiera('apt_listchanges_version','installed'), - $config = hiera('apt_listchanges_config', "apt/${::operatingsystem}/listchanges_${::lsbdistcodename}.erb"), - $frontend = hiera('apt_listchanges_frontend','mail'), - $email = hiera('apt_listchanges_email','root'), - $confirm = hiera('apt_listchanges_confirm','0'), - $saveseen = hiera('pt_listchanges_saveseen','/var/lib/apt/listchanges.db'), - $which = hiera('apt_listchanges_which','both') + $ensure_version = 'installed', + $config = "apt/${::operatingsystem}/listchanges_${::lsbdistcodename}.erb", + $frontend = 'mail', + $email = 'root', + $confirm = '0', + $saveseen = '/var/lib/apt/listchanges.db', + $which = 'both' ){ package { apt-listchanges: ensure => $ensure_version } -- cgit v1.2.3 From d47addd2ed9ae6e99423bff736352144cda32832 Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 18 Jun 2012 11:41:04 -0300 Subject: get rid off config_file wrapper --- manifests/cron/dist_upgrade.pp | 10 ++++++---- manifests/cron/download.pp | 10 ++++++---- manifests/init.pp | 3 ++- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/manifests/cron/dist_upgrade.pp b/manifests/cron/dist_upgrade.pp index 1c8adb1..68460f2 100644 --- a/manifests/cron/dist_upgrade.pp +++ b/manifests/cron/dist_upgrade.pp @@ -10,14 +10,16 @@ dist-upgrade -y -o APT::Get::Show-Upgraded=true -o 'DPkg::Options::=--force-conf package { "apt-listbugs": ensure => absent } - config_file { "/etc/cron-apt/action.d/4-dist-upgrade": + file { "/etc/cron-apt/action.d/4-dist-upgrade": content => $action, - require => Package[cron-apt] + require => Package[cron-apt], + owner => root, group => 0, mode => 0644; } - config_file { "/etc/cron-apt/config.d/MAILON": + file { "/etc/cron-apt/config.d/MAILON": content => "MAILON=upgrade\n", - require => Package[cron-apt] + require => Package[cron-apt], + owner => root, group => 0, mode => 0644; } } diff --git a/manifests/cron/download.pp b/manifests/cron/download.pp index a27967d..a189995 100644 --- a/manifests/cron/download.pp +++ b/manifests/cron/download.pp @@ -3,19 +3,21 @@ 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, } - config_file { "/etc/cron-apt/action.d/3-download": + file { "/etc/cron-apt/action.d/3-download": content => $action, - require => Package[cron-apt] + require => Package[cron-apt], + owner => root, group => 0, mode => 0644; } config_file { "/etc/cron-apt/config.d/MAILON": content => "MAILON=changes\n", - require => Package[cron-apt] + require => Package[cron-apt], + owner => root, group => 0, mode => 0644; } } diff --git a/manifests/init.pp b/manifests/init.pp index e35dd2c..509b6d1 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -50,7 +50,7 @@ class apt( $next_codename = debian_nextcodename($::lsbdistcodename) $next_release = debian_nextrelease($release) - config_file { + file { # include main, security and backports # additional sources should be included via the apt::sources_list define "/etc/apt/sources.list": @@ -60,6 +60,7 @@ class apt( }, require => Package['lsb'], notify => Exec['refresh_apt'], + owner => root, group => 0, mode => 0644; } apt_conf { "02show_upgraded": -- cgit v1.2.3 From 5d75c10a4d45da76d2c33d2b3cad49dfb948ceec Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 18 Jun 2012 17:10:40 -0300 Subject: fix relations and finally get rid off config_file --- manifests/cron/download.pp | 2 +- manifests/update.pp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/cron/download.pp b/manifests/cron/download.pp index a189995..f4e9184 100644 --- a/manifests/cron/download.pp +++ b/manifests/cron/download.pp @@ -14,7 +14,7 @@ dist-upgrade -d -y -o APT::Get::Show-Upgraded=true owner => root, group => 0, mode => 0644; } - config_file { "/etc/cron-apt/config.d/MAILON": + 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/update.pp b/manifests/update.pp index ae992f4..9c773ab 100644 --- a/manifests/update.pp +++ b/manifests/update.pp @@ -3,7 +3,7 @@ class apt::update { exec { 'update_apt': command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean', require => [ File['/etc/apt/apt.conf.d', '/etc/apt/preferences' ], - Config_file['/etc/apt/sources.list'] ], + File['/etc/apt/sources.list'] ], loglevel => info, # Another Semaphor for all packages to reference alias => "apt_updated" -- cgit v1.2.3 From f823fcd5b7408d7d690cfc5c5063e28db06271a4 Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 18 Jun 2012 17:33:42 -0300 Subject: fix auto repo selection the actual repos are in real_repos as by default we have auto. --- templates/Debian/sources.list.erb | 36 ++++++++++++++++++------------------ templates/Ubuntu/sources.list.erb | 16 ++++++++-------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/templates/Debian/sources.list.erb b/templates/Debian/sources.list.erb index eaee338..ddfcaab 100644 --- a/templates/Debian/sources.list.erb +++ b/templates/Debian/sources.list.erb @@ -4,18 +4,18 @@ ### Debian current: <%= codename = scope.lookupvar('::lsbdistcodename') %> # basic -deb <%= debian_url=scope.lookupvar('apt::debian_url') %> <%= codename %> <%= repos=scope.lookupvar('apt::repos') %> +deb <%= debian_url=scope.lookupvar('apt::debian_url') %> <%= codename %> <%= lrepos=scope.lookupvar('apt::real_repos') %> <% if scope.lookupvar('apt::include_src') -%> -deb-src <%= debian_url %> <%= codename %> <%= repos %> +deb-src <%= debian_url %> <%= codename %> <%= lrepos %> <% end -%> # security <% if ((release=scope.lookupvar('apt::release')) == "unstable" || release == "experimental") -%> # There is no security support for <%= release %> <% else -%> -deb <%= security_url=scope.lookupvar('apt::security_url') %> <%= codename %>/updates <%= repos %> +deb <%= security_url=scope.lookupvar('apt::security_url') %> <%= codename %>/updates <%= lrepos %> <% if include_src -%> -deb-src <%= security_url %> <%= codename %>/updates <%= repos %> +deb-src <%= security_url %> <%= codename %>/updates <%= lrepos %> <% end -%> <% end -%> @@ -23,9 +23,9 @@ deb-src <%= security_url %> <%= codename %>/updates <%= repos %> <% if (release == "testing" || release == "unstable" || release == "experimental") -%> # There is no backports archive for <%= release %> <% else -%> -deb <%= backports_url=scope.lookupvar('apt::backports_url') %> <%= codename %>-backports <%= repos %> +deb <%= backports_url=scope.lookupvar('apt::backports_url') %> <%= codename %>-backports <%= lrepos %> <% if include_src -%> -deb-src <%= backports_url %> <%= codename %>-backports <%= repos %> +deb-src <%= backports_url %> <%= codename %>-backports <%= lrepos %> <% end -%> <% end -%> @@ -35,14 +35,14 @@ deb-src <%= backports_url %> <%= codename %>-backports <%= repos %> # There is no volatile archive for <%= release %> <% else -%> <% if (codename == "lenny" || codename == "etch") -%> -deb <%= volatile_url=scope.lookupvar('apt::volatile_url') %> <%= codename %>/volatile <%= repos %> +deb <%= volatile_url=scope.lookupvar('apt::volatile_url') %> <%= codename %>/volatile <%= lrepos %> <% if include_src -%> -deb-src <%= volatile_url %> <%= codename %>/volatile <%= repos %> +deb-src <%= volatile_url %> <%= codename %>/volatile <%= lrepos %> <% end -%> <% else -%> -deb <%= debian_url %> <%= codename %>-updates <%= repos %> +deb <%= debian_url %> <%= codename %>-updates <%= lrepos %> <% if include_src -%> -deb-src <%= debian_url %> <%= codename %>-updates <%= repos %> +deb-src <%= debian_url %> <%= codename %>-updates <%= lrepos %> <% end -%> <% end -%> <% end -%> @@ -52,18 +52,18 @@ deb-src <%= debian_url %> <%= codename %>-updates <%= repos %> ### Debian next: <%= next_codename=scope.lookupvar('apt::next_codename') %> # basic -deb <%= debian_url %> <%= next_codename %> <%= repos %> +deb <%= debian_url %> <%= next_codename %> <%= lrepos %> <% if include_src then -%> -deb-src <%= debian_url %> <%= next_codename %> <%= repos %> +deb-src <%= debian_url %> <%= next_codename %> <%= lrepos %> <% end -%> # security <% if (next_release == "unstable" || next_release == "experimental") -%> # There is no security support for <%= next_release %> <% else -%> -deb <%= security_url %> <%= next_codename %>/updates <%= repos %> +deb <%= security_url %> <%= next_codename %>/updates <%= lrepos %> <% if include_src then -%> -deb-src <%= security_url %> <%= next_codename %>/updates <%= repos %> +deb-src <%= security_url %> <%= next_codename %>/updates <%= lrepos %> <% end -%> <% end -%> @@ -73,14 +73,14 @@ deb-src <%= security_url %> <%= next_codename %>/updates <%= repos %> # There is no volatile archive for <%= next_release %> <% else -%> <% if (next_codename == "lenny" || next_codename == "etch") -%> -deb <%= volatile_url %> <%= next_codename %>/volatile <%= repos %> +deb <%= volatile_url %> <%= next_codename %>/volatile <%= lrepos %> <% if include_src then -%> -deb-src <%= volatile_url %> <%= next_codename %>/volatile <%= repos %> +deb-src <%= volatile_url %> <%= next_codename %>/volatile <%= lrepos %> <% end -%> <% else -%> -deb <%= debian_url %> <%= next_codename %>-updates <%= repos %> +deb <%= debian_url %> <%= next_codename %>-updates <%= lrepos %> <% if include_src then -%> -deb-src <%= debian_url %> <%= next_codename %>-updates <%= repos %> +deb-src <%= debian_url %> <%= next_codename %>-updates <%= lrepos %> <% end -%> <% end -%> <% end -%> diff --git a/templates/Ubuntu/sources.list.erb b/templates/Ubuntu/sources.list.erb index c1a6c1e..ed31fbc 100644 --- a/templates/Ubuntu/sources.list.erb +++ b/templates/Ubuntu/sources.list.erb @@ -2,25 +2,25 @@ # all local modifications will be overwritten # basic <%= lsbdistcodename=scope.lookupvar('::lsbdistcodename') %> -deb <%= ubuntu_url=scope.lookupvar('apt::ubuntu_url') %> <%= lsbdistcodename %> <%= repos=scope.lookupvar('apt::repos') %> +deb <%= ubuntu_url=scope.lookupvar('apt::ubuntu_url') %> <%= lsbdistcodename %> <%= lrepos=scope.lookupvar('apt::real_repos') %> <% if include_src=scope.lookupvar('apt::include_src') -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %> <%= repos %> +deb-src <%= ubuntu_url %> <%= lsbdistcodename %> <%= lrepos %> <% end -%> # updates -deb <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= repos %> +deb <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= lrepos %> <% if include_src -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= repos %> +deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= lrepos %> <% end -%> # security suppport -deb <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= repos %> +deb <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= lrepos %> <% if include_src -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= repos %> +deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= lrepos %> <% end -%> # backports -deb <%= ubuntu_url %> <%= lsbdistcodename %>-backports main <%= repos %> +deb <%= ubuntu_url %> <%= lsbdistcodename %>-backports main <%= lrepos %> <% if include_src -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-backports <%= repos %> +deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-backports <%= lrepos %> <% end -%> -- cgit v1.2.3 From b528cd0005f263b3d2014cdc44d7461577821343 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Wed, 22 Aug 2012 10:55:25 -0400 Subject: parameterize the apt::proxy_client class --- manifests/proxy_client.pp | 15 ++++----------- templates/20proxy.erb | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/manifests/proxy_client.pp b/manifests/proxy_client.pp index 23e9bd1..c284c74 100644 --- a/manifests/proxy_client.pp +++ b/manifests/proxy_client.pp @@ -1,14 +1,7 @@ -class apt::proxy_client { - - $real_apt_proxy = $apt_proxy ? { - "" => "http://localhost", - default => $apt_proxy - } - - $real_apt_proxy_port = $apt_proxy_port ? { - "" => "3142", - default => $apt_proxy_port - } +class apt::proxy_client( + $proxy = 'http://localhost', + $port = '3142', +){ apt_conf { "20proxy": content => template("apt/20proxy.erb"), diff --git a/templates/20proxy.erb b/templates/20proxy.erb index fd0c7fe..ea706b6 100644 --- a/templates/20proxy.erb +++ b/templates/20proxy.erb @@ -1,5 +1,5 @@ // This file is managed by Puppet // all local modifications will be overwritten -Acquire::http { Proxy "<%= real_apt_proxy %>:<%= real_apt_proxy_port %>"; }; +Acquire::http { Proxy "<%= proxy %>:<%= port %>"; }; Acquire::HTTP::Proxy::bugs.debian.org "DIRECT"; -- cgit v1.2.3 From 460c1d54d1d04c1dd648d60a0b10f473d801f9b8 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Wed, 22 Aug 2012 10:57:06 -0400 Subject: Add upgrade notices about the changes to parameterized classes; add a Requirements header; move things that used to be called variables into the appropriate parameterized class section --- README | 210 +++++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 140 insertions(+), 70 deletions(-) diff --git a/README b/README index 404a5cf..f4b6566 100644 --- a/README +++ b/README @@ -15,6 +15,67 @@ prevent accidental upgrades. Ubuntu support is lagging behind but not absent either. +! Upgrade Notice ! + + * the apt class has been moved to a paramterized class. if you were including + this class before, after passing some variables, you will need to move to + 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 + + 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 } + + * 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 + + you will need to remove the variables, and the include and instead do the + following: + + class { 'apt::apticron': email => "foo@example.com", notifynew => '1' } + + * the apt::listchanges class has been moved to a paramterized class. if you + were including this class before, after passing some variables, you will need + 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 + + you will need to remove the variables, and the include and instead do the + following: + + class { 'apt::listchanges': email => "foo@example.com" } + + * the apt::proxy_client class has been moved to a paramterized class. if you + were including this class before, after passing some variables, you will need + 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 + + 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' } + +Requirements +============ + This module needs: - the lsb module: git://labs.riseup.net/shared-lsb @@ -65,26 +126,6 @@ pull in the templates/site_apt/sources.list file: $custom_sources_list = template("site_apt/sources.list") -$custom_preferences -------------------- - -Since Debian Lenny's version of APT doesn't support the use of the -preferences.d directory for putting fragments of 'preferences', this -module will manage a default generic apt/preferences file with more -recent releases pinned to very low values so that any package -installation will not accidentally pull in packages from those suites -unless you explicitly specify the version number. This file will be -complemented with all of the preferences_snippet calls (see below). - -If the default preferences template doesn't suit your needs, you can create a -template located in your site_apt module, and set $custom_preferences with the -content (eg. $custom_preferences = template('site_apt/preferences') ) - -Setting this variable to false before including this class will force the -apt/preferences file to be absent: - - $custom_preferences = false - $custom_key_dir --------------- @@ -96,92 +137,110 @@ exist there, this module will 'apt-key add' each key. The debian-archive-keyring package is installed and kept current up to the latest revision (this includes the backports archive keyring). -$apt_proxy / $apt_proxy_port ----------------------------- -When you include the apt::proxy_client class in your nodes, you can set the -$apt_proxy variable to the URL of the proxy that will be used. -By default, the proxy will be queried on port 3142, but you can change the port -number by setting the $apt_proxy_port variable. +Classes +======= -Here's an example of setting the proxy to 'http://proxy.domain' at port 666: +apt +--- + +The apt class sets up most of the documented functionality. To use functionality +that is not enabled by default, you must set one of the following parameters. + +Example usage: - $apt_proxy = 'http://proxy.domain' - $apt_proxy_port = 666 - include apt::proxy_client + class { 'apt': use_next_release => true, debian_url => 'http://localhost:9999/debian/" } -$apt_volatile_enabled +volatile_enabled ----------------- If this variable is set to true the Debian Volatile sources (until Lenny) or CODENAME-updates (such as squeeze-updates, supported since Squeeze) are added. + By default this is false for backward compatibility with older versions of this module. -$apt_include_src ----------------- +include_src +------------ If this variable is set to true a deb-src source is added for every added binary archive source. + By default this is false for backward compatibility with older versions of this module. -$apt_use_next_release ---------------------- +use_next_release +----------------- If this variable is set to true the sources for the next Debian release are added. The default pinning configuration pins it to very low values. + By default this is false for backward compatibility with older versions of this module. -$apt_debian_url, $apt_security_url, $apt_backports_url, $apt_volatile_url -------------------------------------------------------------------------- +debian_url, security_url, backports_url, volatile_url +------------------------------------------------------ These variables allow to override the default APT mirrors respectively used for the standard Debian archives, the Debian security archive, the Debian official backports and the Debian Volatile archive. -$apt_ubuntu_url +apt_ubuntu_url --------------- These variables allows to override the default APT mirror used for all standard Ubuntu archives (including updates, security, backports). -$apt_repos +apt_repos ---------- If this variable is set the default repositories list ("main contrib non-free") is overriden. -Classes -======= +custom_preferences +------------------- -apt ---- +Since Debian Lenny's version of APT doesn't support the use of the +preferences.d directory for putting fragments of 'preferences', this +module will manage a default generic apt/preferences file with more +recent releases pinned to very low values so that any package +installation will not accidentally pull in packages from those suites +unless you explicitly specify the version number. This file will be +complemented with all of the preferences_snippet calls (see below). + +If the default preferences template doesn't suit your needs, you can create a +template located in your site_apt module, and set custom_preferences with the +content (eg. custom_preferences => template('site_apt/preferences') ) + +Setting this variable to false before including this class will force the +apt/preferences file to be absent: + + class { 'apt': custom_preferences => false } -The apt class sets up most of the documented functionality. To use -functionality that is not enabled by default, you must include one of -the following classes. apt::apticron ------------- -When you include this class, apticron will be installed, with the following -defaults, which you are free to change before you include the class: - - $apticron_ensure_version = "present" - $apticron_email = "root" - $apticron_config = "apt/${::operatingsystem}/apticron_${::lsbrelease}.erb" - $apticron_diff_only = "1" - $apticron_listchanges_profile = "apticron" - $apticron_system = false - $apticron_ipaddressnum = false - $apticron_ipaddresses = false - $apticron_notifyholds = "0" - $apticron_notifynew = "0" - $apticron_customsubject = "" +When you instantiate this class, apticron will be installed, with the following +defaults, which you are free to change: + + $ensure_version = 'installed', + $config = "apt/${::operatingsystem}/apticron_${::lsbdistcodename}.erb", + $email = 'root', + $diff_only = '1', + $listchanges_profile = 'apticron', + $system = false, + $ipaddressnum = false, + $ipaddresses = false, + $notifyholds = '0', + $notifynew = '0', + $customsubject = '' + +Example usage: + + class { 'apt::apticron': email => "foo@example.com", notifynew => '1' } apt::cron::download ------------------- @@ -254,22 +313,33 @@ suppress superfluous help screens. apt::listchanges ---------------- -This class, when included, installs apt-listchanges and configures it using the -following variables, the defaults are below: +This class, when instantiated, installs apt-listchanges and configures it using +the following parameterized variables, which can be changed: - $apt_listchanges_version = "present" - $apt_listchanges_config = "apt/${::operatingsystem}/listchanges_${::lsbrelease}.erb" - $apt_listchanges_frontend = "pager" - $apt_listchanges_email = "root" - $apt_listchanges_confirm = "0" - $apt_listchanges_saveseen = "/var/lib/apt/listchanges.db" - $apt_listchanges_which = "both" + version = "present" + config = "apt/${::operatingsystem}/listchanges_${::lsbrelease}.erb" + frontend = "pager" + email = "root" + confirm = "0" + saveseen = "/var/lib/apt/listchanges.db" + which = "both" + Example usage: + class { 'apt::listchanges': email => "foo@example.com" } + apt::proxy_client ----------------- This class adds the right configuration to apt to make it fetch packages via a -proxy. The variables $apt_proxy and $apt_proxy_port need to be set (see above). +proxy. The class parameters apt_proxy and apt_proxy_port need to be set: + +You can set the 'proxy' class parameter variable to the URL of the proxy that +will be used. By default, the proxy will be queried on port 3142, but you can +change the port number by setting the 'port' class parameter. + +Example: + + class { 'apt::proxy_client': proxy => 'http://proxy.domain', port => '666' } apt::reboot_required_notify --------------------------- -- cgit v1.2.3 From 978378623d250a06441650dd969eb01f90891b64 Mon Sep 17 00:00:00 2001 From: Gabriel Filion Date: Thu, 20 Sep 2012 02:54:26 -0400 Subject: 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 --- manifests/cron/dist_upgrade.pp | 17 +++++++++-------- manifests/cron/download.pp | 19 ++++++++++--------- manifests/init.pp | 3 ++- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/manifests/cron/dist_upgrade.pp b/manifests/cron/dist_upgrade.pp index 1c8adb1..bd29784 100644 --- a/manifests/cron/dist_upgrade.pp +++ b/manifests/cron/dist_upgrade.pp @@ -10,14 +10,15 @@ dist-upgrade -y -o APT::Get::Show-Upgraded=true -o 'DPkg::Options::=--force-conf package { "apt-listbugs": ensure => absent } - config_file { "/etc/cron-apt/action.d/4-dist-upgrade": - content => $action, - require => Package[cron-apt] - } - - config_file { "/etc/cron-apt/config.d/MAILON": - content => "MAILON=upgrade\n", - require => Package[cron-apt] + file { + "/etc/cron-apt/action.d/4-dist-upgrade": + content => $action, + mode => 0644, owner => root, group => 0, + require => Package[cron-apt]; + "/etc/cron-apt/config.d/MAILON": + content => "MAILON=upgrade\n", + mode => 0644, owner => root, group => 0, + require => Package[cron-apt]; } } diff --git a/manifests/cron/download.pp b/manifests/cron/download.pp index a27967d..5c2d3f9 100644 --- a/manifests/cron/download.pp +++ b/manifests/cron/download.pp @@ -3,19 +3,20 @@ 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, } - config_file { "/etc/cron-apt/action.d/3-download": - content => $action, - require => Package[cron-apt] - } - - config_file { "/etc/cron-apt/config.d/MAILON": - content => "MAILON=changes\n", - require => Package[cron-apt] + file { + "/etc/cron-apt/action.d/3-download": + content => $action, + mode => 0644, owner => root, group => 0, + require => Package[cron-apt]; + "/etc/cron-apt/config.d/MAILON": + content => "MAILON=changes\n", + mode => 0644, owner => root, group => 0, + require => Package[cron-apt]; } } diff --git a/manifests/init.pp b/manifests/init.pp index 2ae691f..9ce7330 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -77,7 +77,7 @@ class apt { $next_codename = debian_nextcodename($codename) $next_release = debian_nextrelease($release) - config_file { + file { # include main, security and backports # additional sources should be included via the apt::sources_list define "/etc/apt/sources.list": @@ -85,6 +85,7 @@ class apt { '' => template( "apt/$operatingsystem/sources.list.erb"), default => $custom_sources_list }, + mode => 0644, owner => root, group => 0, require => Package['lsb'], notify => Exec['refresh_apt'], } -- cgit v1.2.3 From 8229505ecb20da114d76a8704f4566483c965f83 Mon Sep 17 00:00:00 2001 From: Gabriel Filion Date: Thu, 20 Sep 2012 03:55:58 -0400 Subject: 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 --- README | 4 +--- manifests/init.pp | 6 +----- manifests/preferences.pp | 20 +++++++++----------- manifests/preferences_snippet.pp | 12 +++++------- 4 files changed, 16 insertions(+), 26 deletions(-) diff --git a/README b/README index be80c62..05781cc 100644 --- a/README +++ b/README @@ -18,8 +18,6 @@ Ubuntu support is lagging behind but not absent either. This module needs: - the lsb module: git://labs.riseup.net/shared-lsb -- the common module: git://labs.riseup.net/shared-common -- the concat module: git://labs.riseup.net/shared-concat By default, on normal hosts, this module sets the configuration option DSelect::Clean to 'auto'. On virtual servers, the value is set by default to @@ -383,7 +381,7 @@ upgrade_package { "perl": Resources ========= -Concat[apt_config] +File['apt_config'] ------------------ Use this resource to depend on or add to a completed apt configuration diff --git a/manifests/init.pp b/manifests/init.pp index 9ce7330..3caa376 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -138,10 +138,6 @@ class apt { # backports uses the normal archive key now package { "debian-backports-keyring": ensure => absent } - include common::moduledir - $apt_base_dir = "${common::moduledir::module_dir_path}/apt" - modules_dir { apt: } - if $custom_key_dir { file { "${apt_base_dir}/keys.d": source => "$custom_key_dir", @@ -155,7 +151,7 @@ class apt { } if $custom_preferences != false { Exec["custom_keys"] { - before => Concat[apt_config], + before => File['apt_config'], } } } diff --git a/manifests/preferences.pp b/manifests/preferences.pp index f188149..f766819 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -1,20 +1,18 @@ class apt::preferences { - concat::fragment{"apt_preferences_header": - content => $custom_preferences ? { - '' => $operatingsystem ? { - 'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"), - 'ubuntu' => template("apt/${operatingsystem}/preferences_${codename}.erb"), - }, - default => $custom_preferences + $pref_contents = $custom_preferences ? { + '' => $operatingsystem ? { + 'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"), + 'ubuntu' => template("apt/${operatingsystem}/preferences_${codename}.erb"), }, - order => 00, - target => '/etc/apt/preferences', + default => $custom_preferences } - concat{'/etc/apt/preferences': - alias => apt_config, + file { '/etc/apt/preferences': + ensure => present, + alias => 'apt_config', # only update together + content => $pref_contents, require => File["/etc/apt/sources.list"], owner => root, group => 0, mode => 0644; } diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 6a8e6bc..1aafe57 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -23,11 +23,9 @@ define apt::preferences_snippet( fail("apt::preferences_snippet requires either a 'pin' or 'release' argument, not both") } - include apt::preferences - - concat::fragment{"apt_preference_${name}": + file { "/etc/apt/preferences.d/${name}": ensure => $ensure, - target => '/etc/apt/preferences', + owner => root, group => 0, mode => 0644; } # This should really work in the same manner as sources_list and apt_conf @@ -37,19 +35,19 @@ define apt::preferences_snippet( '': { case $release { '': { - Concat::Fragment["apt_preference_${name}"]{ + File["/etc/apt/preferences.d/${name}"]{ content => template("apt/preferences_snippet.erb") } } default: { - Concat::Fragment["apt_preference_${name}"]{ + File["/etc/apt/preferences.d/${name}"]{ content => template("apt/preferences_snippet_release.erb") } } } } default: { - Concat::Fragment["apt_preference_${name}"]{ + File["/etc/apt/preferences.d/${name}"]{ source => $source } } -- cgit v1.2.3 From 2dee53c328f606cfc00ccd79e32f03ae2563c765 Mon Sep 17 00:00:00 2001 From: Gabriel Filion Date: Thu, 20 Sep 2012 03:59:58 -0400 Subject: Some stylistic corrections in manifest examples in the README Signed-off-by: Gabriel Filion --- README | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/README b/README index 05781cc..8094091 100644 --- a/README +++ b/README @@ -169,17 +169,17 @@ apt::apticron When you include this class, apticron will be installed, with the following defaults, which you are free to change before you include the class: - $apticron_ensure_version = "present" - $apticron_email = "root" + $apticron_ensure_version = 'present' + $apticron_email = 'root' $apticron_config = "apt/${operatingsystem}/apticron_${lsbrelease}.erb" - $apticron_diff_only = "1" - $apticron_listchanges_profile = "apticron" + $apticron_diff_only = 1 + $apticron_listchanges_profile = 'apticron' $apticron_system = false $apticron_ipaddressnum = false $apticron_ipaddresses = false - $apticron_notifyholds = "0" - $apticron_notifynew = "0" - $apticron_customsubject = "" + $apticron_notifyholds = 0 + $apticron_notifynew = 0 + $apticron_customsubject = '' apt::cron::download ------------------- @@ -192,7 +192,7 @@ $apt_cron_hours variable 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" + $apt_cron_hours = '*/3' Note that the default 4 AM cronjob won't be disabled. @@ -228,9 +228,9 @@ file's content changes. The initiator file is copied from the first available source amongst the following ones, in decreasing priority order: -- puppet:///site_apt/${fqdn}/upgrade_initiator -- puppet:///site_apt/upgrade_initiator -- puppet:///apt/upgrade_initiator +- puppet:///modules/site_apt/${fqdn}/upgrade_initiator +- puppet:///modules/site_apt/upgrade_initiator +- puppet:///modules/apt/upgrade_initiator This is useful when one does not want to setup a fully automated upgrade process but still needs a way to manually trigger full @@ -255,13 +255,13 @@ apt::listchanges This class, when included, installs apt-listchanges and configures it using the following variables, the defaults are below: - $apt_listchanges_version = "present" + $apt_listchanges_version = 'present' $apt_listchanges_config = "apt/${operatingsystem}/listchanges_${lsbrelease}.erb" - $apt_listchanges_frontend = "pager" - $apt_listchanges_email = "root" - $apt_listchanges_confirm = "0" - $apt_listchanges_saveseen = "/var/lib/apt/listchanges.db" - $apt_listchanges_which = "both" + $apt_listchanges_frontend = 'pager' + $apt_listchanges_email = 'root' + $apt_listchanges_confirm = 0 + $apt_listchanges_saveseen = '/var/lib/apt/listchanges.db' + $apt_listchanges_which = 'both' apt::proxy_client ----------------- @@ -295,8 +295,8 @@ meta-parameter to define content inline or with the help of a template. Example: - apt::apt_conf { "80download-only": - source => "puppet:///modules/site_apt/80download-only", + apt::apt_conf { '80download-only': + source => 'puppet:///modules/site_apt/80download-only', } apt::preferences_snippet @@ -306,20 +306,20 @@ A way to add pinning information to /etc/apt/preferences Example: - apt::preferences_snippet{ + apt::preferences_snippet { 'irssi-plugin-otr': release => 'lenny-backports', priority => 999; } - apt::preferences_snippet{ + apt::preferences_snippet { 'unstable_fallback': package => '*', release => 'unstable', priority => 1; } - apt::preferences_snippet{ + apt::preferences_snippet { 'ttdnsd': pin => 'origin deb.torproject.org', priority => 999; @@ -339,8 +339,8 @@ following in your manifest: You can also specify the content of the seed via the content parameter, for example: - apt::preseeded_package { "apticron": - content => "apticron apticron/notification string root@example.com", + apt::preseeded_package { 'apticron': + content => 'apticron apticron/notification string root@example.com', } apt::sources_list @@ -386,7 +386,7 @@ File['apt_config'] Use this resource to depend on or add to a completed apt configuration -Exec[apt_updated] +Exec['apt_updated'] ----------------- After this point the APT indexes are up-to-date. @@ -395,7 +395,7 @@ This resource is usually used like this to ensure current packages are installed by Package resources: include apt::update - Package { require => Exec[apt_updated] } + Package { require => Exec['apt_updated'] } Please note that the apt::upgrade_package define automatically uses this resource so you don't have to manage this yourself if you need to -- cgit v1.2.3 From 9d7b48e37cfcf6815ab247b67dd52fdd7c29691e Mon Sep 17 00:00:00 2001 From: Gabriel Filion Date: Thu, 20 Sep 2012 04:00:38 -0400 Subject: Define an alias when enforcing absence of /etc/apt/preferences This ensures that resources that set a dependecy on the "File['apt_config']" file, as mentioned in the README, can always resolve. Signed-off-by: Gabriel Filion --- manifests/preferences/absent.pp | 1 + 1 file changed, 1 insertion(+) diff --git a/manifests/preferences/absent.pp b/manifests/preferences/absent.pp index 0e96119..68ab400 100644 --- a/manifests/preferences/absent.pp +++ b/manifests/preferences/absent.pp @@ -1,6 +1,7 @@ class apt::preferences::absent { file { '/etc/apt/preferences': + alias => 'apt_config', ensure => absent, } } -- cgit v1.2.3 From d1d7f7b9bd73cfd982fe3c520f1de266c5836f8c Mon Sep 17 00:00:00 2001 From: Gabriel Filion Date: Thu, 20 Sep 2012 04:08:38 -0400 Subject: Precision on file name format in preferences.d directory Signed-off-by: Gabriel Filion --- README | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README b/README index 8094091..e3ce7d8 100644 --- a/README +++ b/README @@ -302,7 +302,7 @@ Example: apt::preferences_snippet ------------------------ -A way to add pinning information to /etc/apt/preferences +A way to add pinning information to files in /etc/apt/preferences.d/ Example: @@ -325,6 +325,17 @@ Example: priority => 999; } +The names of the resources will be used as the names of the files in the +preferences.d directory, so you should ensure that resource names follow the +prescribed naming scheme. + +From apt_preferences(5): + Note that the files in the /etc/apt/preferences.d directory are parsed in + alphanumeric ascending order and need to obey the following naming + convention: The files have no or "pref" as filename extension and which + only contain alphanumeric, hyphen (-), underscore (_) and period (.) + characters - otherwise they will be silently ignored. + apt::preseeded_package ---------------------- -- cgit v1.2.3 From 07a031f2050deecfefa205e1e0c63586692a06ff Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Wed, 5 Dec 2012 13:46:23 -0500 Subject: fix for $lsbdistcodename regression introduced by ac166366d7baa45b74e09974289d9fb2dad38e67 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:
+### 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') %>
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 --- README | 28 +++++++++++++++++++++------- manifests/init.pp | 10 ++++++---- manifests/preferences.pp | 4 ++-- templates/Debian/preferences_lenny.erb | 6 +++--- templates/Debian/preferences_squeeze.erb | 12 ++++++------ templates/Debian/preferences_wheezy.erb | 8 ++++---- templates/Debian/sources.list.erb | 2 +- templates/Ubuntu/preferences_maverick.erb | 18 +++++++++--------- templates/Ubuntu/sources.list.erb | 18 +++++++++--------- 9 files changed, 61 insertions(+), 45 deletions(-) diff --git a/README b/README index f4b6566..3cd341d 100644 --- a/README +++ b/README @@ -31,6 +31,17 @@ Ubuntu support is lagging behind but not absent either. class { 'apt': debian_url => "http://localhost:9999/debian/", use_next_release => true } + previously, you could manually set $lsbdistcodename which would enable forced + upgrades, but because this is a top-level facter variable, and newer puppet + versions do not let you assign variables to other namespaces, this is no + longer possible. However, there is a way to obtain this functionality, and + that is to pass the 'codename' parameter to the apt class, which will change + the sources.list and preferences files to be the codename you set, allowing + you to trigger upgrades: + + include 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: @@ -106,13 +117,6 @@ site_apt/files/some.host.com/03clean_vserver) Variables ========= -$::lsbdistcodename ----------------- - -Contains the codename ("etch", "lenny", ...) of the client's -release. While these values come from lsb-release by default, this -value can be set manually too, e.g. to enable forced upgrades. - $custom_sources_list -------------------- @@ -219,6 +223,16 @@ apt/preferences file to be absent: class { 'apt': custom_preferences => false } +codename +-------- + +Contains the codename ("squeeze", "wheezy", ...) of the client's release. While +these values come from lsb-release by default, this parameter can be set +manually, e.g. to enable forced upgrades. For example: + + include apt::dist_upgrade + class { 'apt': codename => 'wheezy', notify => Exec['apt_dist-upgrade'] } + apt::apticron ------------- diff --git a/manifests/init.pp b/manifests/init.pp index 509b6d1..3de4d9e 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -4,6 +4,7 @@ # See LICENSE for the full license granted to you. class apt( + $codename = '', $use_volatile = false, $include_src = false, $use_next_release = false, @@ -38,16 +39,17 @@ class apt( include lsb # init $release, $next_release, $codename, $next_codename, $release_version - case $::lsbdistcodename { + case $codename { '': { + $codename = $::lsbdistcodename $release = $::lsbdistrelease } default: { - $release = debian_release($::lsbdistcodename) + $release = debian_release($codename) } } - $release_version = debian_release_version($::lsbdistcodename) - $next_codename = debian_nextcodename($::lsbdistcodename) + $release_version = debian_release_version($codename) + $next_codename = debian_nextcodename($codename) $next_release = debian_nextrelease($release) file { diff --git a/manifests/preferences.pp b/manifests/preferences.pp index 8f532f8..e9a74ff 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -3,8 +3,8 @@ class apt::preferences { concat::fragment{"apt_preferences_header": content => $apt::custom_preferences ? { '' => $::operatingsystem ? { - 'debian' => template("apt/${::operatingsystem}/preferences_${::lsbdistcodename}.erb"), - 'ubuntu' => template("apt/${::operatingsystem}/preferences_${::lsbdistcodename}.erb"), + 'debian' => template("apt/${::operatingsystem}/preferences_${apt::codename}.erb"), + 'ubuntu' => template("apt/${::operatingsystem}/preferences_${apt::codename}.erb"), }, default => $custom_preferences }, diff --git a/templates/Debian/preferences_lenny.erb b/templates/Debian/preferences_lenny.erb index 4648ce1..5c3c829 100644 --- a/templates/Debian/preferences_lenny.erb +++ b/templates/Debian/preferences_lenny.erb @@ -1,4 +1,4 @@ -Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %> +Explanation: Debian <%= codename=scope.lookupvar('apt::codename') %> Package: * Pin: release o=Debian,a=<%= scope.lookupvar('apt::release') %>,v=<%= scope.lookupvar('apt::release_version') %>* Pin-Priority: 990 @@ -8,9 +8,9 @@ Package: * Pin: origin backports.debian.org Pin-Priority: 200 -Explanation: Debian <%= scope.lookupvar('apt::next_release') %> +Explanation: Debian <%= next_release=scope.lookupvar('apt::next_release') %> Package: * -Pin: release o=Debian,a=<%= scope.lookupvar('apt::next_release') %> +Pin: release o=Debian,a=<%= next_release %> Pin-Priority: 2 Explanation: Debian sid diff --git a/templates/Debian/preferences_squeeze.erb b/templates/Debian/preferences_squeeze.erb index e74515e..efe7720 100644 --- a/templates/Debian/preferences_squeeze.erb +++ b/templates/Debian/preferences_squeeze.erb @@ -1,16 +1,16 @@ -Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %> +Explanation: Debian <%= codename=scope.lookupvar('apt::codename') %> Package: * -Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %> +Pin: release o=Debian,n=<%= codename %> Pin-Priority: 990 -Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %>-updates +Explanation: Debian <%= codename %>-updates Package: * -Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %>-updates +Pin: release o=Debian,n=<%= codename %>-updates Pin-Priority: 990 -Explanation: Debian <%= scope.lookupvar('apt::next_codename') %> +Explanation: Debian <%= next_codename=scope.lookupvar('apt::next_codename') %> Package: * -Pin: release o=Debian,n=<%= scope.lookupvar('apt::next_codename') %> +Pin: release o=Debian,n=<%= next_codename %> Pin-Priority: 2 Explanation: Debian sid diff --git a/templates/Debian/preferences_wheezy.erb b/templates/Debian/preferences_wheezy.erb index e8c15d6..0cc0e5c 100644 --- a/templates/Debian/preferences_wheezy.erb +++ b/templates/Debian/preferences_wheezy.erb @@ -1,11 +1,11 @@ -Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %> +Explanation: Debian <%= codename=scope.lookupvar('apt::codename') %> Package: * -Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %> +Pin: release o=Debian,n=<%= codename %> Pin-Priority: 990 -Explanation: Debian <%= scope.lookupvar('::lsbdistcodename') %>-updates +Explanation: Debian <%= codename %>-updates Package: * -Pin: release o=Debian,n=<%= scope.lookupvar('::lsbdistcodename') %>-updates +Pin: release o=Debian,n=<%= codename %>-updates Pin-Priority: 990 Explanation: Debian sid diff --git a/templates/Debian/sources.list.erb b/templates/Debian/sources.list.erb index ddfcaab..04c13ea 100644 --- a/templates/Debian/sources.list.erb +++ b/templates/Debian/sources.list.erb @@ -1,7 +1,7 @@ # This file is managed by puppet # all local modifications will be overwritten -### Debian current: <%= codename = scope.lookupvar('::lsbdistcodename') %> +### Debian current: <%= codename=scope.lookupvar('apt::codename') %> # basic deb <%= debian_url=scope.lookupvar('apt::debian_url') %> <%= codename %> <%= lrepos=scope.lookupvar('apt::real_repos') %> diff --git a/templates/Ubuntu/preferences_maverick.erb b/templates/Ubuntu/preferences_maverick.erb index 6f6ea45..801ddd4 100644 --- a/templates/Ubuntu/preferences_maverick.erb +++ b/templates/Ubuntu/preferences_maverick.erb @@ -1,26 +1,26 @@ -Explanation: Ubuntu <%= scope.lookupvar('::lsbdistcodename') %> security +Explanation: Ubuntu <%= codename=scope.lookupvar('apt::codename') %> security Package: * -Pin: release o=Ubuntu,a=<%= scope.lookupvar('::lsbdistcodename') %>-security +Pin: release o=Ubuntu,a=<%= codename %>-security Pin-Priority: 990 -Explanation: Ubuntu <%= scope.lookupvar('::lsbdistcodename') %> updates +Explanation: Ubuntu <%= codename %> updates Package: * -Pin: release o=Ubuntu,a=<%= scope.lookupvar('::lsbdistcodename') %>-updates +Pin: release o=Ubuntu,a=<%= codename %>-updates Pin-Priority: 980 -Explanation: Ubuntu <%= scope.lookupvar('::lsbdistcodename') %> +Explanation: Ubuntu <%= codename %> Package: * -Pin: release o=Ubuntu,a=<%= scope.lookupvar('::lsbdistcodename') %> +Pin: release o=Ubuntu,a=<%= codename %> Pin-Priority: 970 Explanation: Ubuntu backports Package: * -Pin: release a=<%= scope.lookupvar('::lsbdistcodename') %>-backports +Pin: release a=<%= codename %>-backports Pin-Priority: 200 -Explanation: Ubuntu <%= scope.lookupvar('apt::next_release') %> +Explanation: Ubuntu <%= next_release=scope.lookupvar('apt::next_release') %> Package: * -Pin: release o=Ubuntu,a=<%= scope.lookupvar('apt::next_release') %> +Pin: release o=Ubuntu,a=<%= next_release %> Pin-Priority: 2 Explanation: Ubuntu fallback diff --git a/templates/Ubuntu/sources.list.erb b/templates/Ubuntu/sources.list.erb index ed31fbc..c1a6115 100644 --- a/templates/Ubuntu/sources.list.erb +++ b/templates/Ubuntu/sources.list.erb @@ -1,26 +1,26 @@ # This file is managed by puppet # all local modifications will be overwritten -# basic <%= lsbdistcodename=scope.lookupvar('::lsbdistcodename') %> -deb <%= ubuntu_url=scope.lookupvar('apt::ubuntu_url') %> <%= lsbdistcodename %> <%= lrepos=scope.lookupvar('apt::real_repos') %> +# basic <%= codename=scope.lookupvar('apt::codename') %> +deb <%= ubuntu_url=scope.lookupvar('apt::ubuntu_url') %> <%= codename %> <%= lrepos=scope.lookupvar('apt::real_repos') %> <% if include_src=scope.lookupvar('apt::include_src') -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %> <%= lrepos %> +deb-src <%= ubuntu_url %> <%= codename %> <%= lrepos %> <% end -%> # updates -deb <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= lrepos %> +deb <%= ubuntu_url %> <%= codename %>-updates <%= lrepos %> <% if include_src -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= lrepos %> +deb-src <%= ubuntu_url %> <%= codename %>-updates <%= lrepos %> <% end -%> # security suppport -deb <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= lrepos %> +deb <%= ubuntu_url %> <%= codename %>-security <%= lrepos %> <% if include_src -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= lrepos %> +deb-src <%= ubuntu_url %> <%= codename %>-security <%= lrepos %> <% end -%> # backports -deb <%= ubuntu_url %> <%= lsbdistcodename %>-backports main <%= lrepos %> +deb <%= ubuntu_url %> <%= codename %>-backports main <%= lrepos %> <% if include_src -%> -deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-backports <%= lrepos %> +deb-src <%= ubuntu_url %> <%= codename %>-backports <%= lrepos %> <% end -%> -- cgit v1.2.3 From e66823269e7799d88e5f071b32bd3415c1e477ce Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 18 Dec 2012 16:41:10 -0500 Subject: switch default $debian_url to use http.debian.net which is more accurate and up-to-date than cdn.debian.net --- manifests/init.pp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/manifests/init.pp b/manifests/init.pp index 2ae691f..581f058 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -21,7 +21,7 @@ class apt { } $debian_url = $apt_debian_url ? { - '' => 'http://cdn.debian.net/debian/', + '' => 'http://http.debian.net/debian/', default => "${apt_debian_url}", } $security_url = $apt_security_url ? { @@ -68,6 +68,9 @@ class apt { $codename = $lsbdistcodename $release = $lsbdistrelease } + 'n/a': { + fail("Unknown lsbdistcodename reported by facter: '$lsbdistcodename', please fix this by setting this variable in your manifest.") + } default: { $codename = $lsbdistcodename $release = debian_release($codename) -- cgit v1.2.3 From 37e40416d2aa7614cfbcd4330d4cd543f9874093 Mon Sep 17 00:00:00 2001 From: nadir Date: Wed, 19 Dec 2012 18:30:29 +0100 Subject: exec{'apt_dist-upgrade'} just requires Exec['apt_updated'] if apt::disable_update if false --- manifests/dist_upgrade.pp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/manifests/dist_upgrade.pp b/manifests/dist_upgrade.pp index 47b1cff..ed25b0b 100644 --- a/manifests/dist_upgrade.pp +++ b/manifests/dist_upgrade.pp @@ -7,7 +7,10 @@ class apt::dist_upgrade { exec { 'apt_dist-upgrade': command => "/usr/bin/apt-get -q -y -o 'DPkg::Options::=--force-confold' dist-upgrade", refreshonly => true, - require => Exec['apt_updated'], + require => $apt::disable_update ? { + true => undef, + default => Exec['apt_updated'], + } } } -- cgit v1.2.3 From fbe9bac5ae62f32743c8f5a21f54ba1cc63c0331 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 2 Jan 2013 16:38:59 +0100 Subject: Finish updating README to reflect move to parameterized classes. --- README | 121 +++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 57 insertions(+), 64 deletions(-) diff --git a/README b/README index f2cda47..0685b55 100644 --- a/README +++ b/README @@ -115,15 +115,6 @@ site_apt/files/some.host.com/03clean_vserver) Variables ========= -$apt_disable_update -------------------- - -Disable "apt-get update" which is normally triggered by apt::upgrade_package -and apt::dist_upgrade. -Note that nodes can be updated once a day by using - APT::Periodic::Update-Package-Lists "1"; -in i.e. /etc/apt/apt.conf.d/80_apt_update_daily. - $custom_sources_list -------------------- @@ -162,84 +153,86 @@ Example usage: class { 'apt': use_next_release => true, debian_url => 'http://localhost:9999/debian/" } -volatile_enabled ------------------ +Class parameters: -If this variable is set to true the Debian Volatile sources (until -Lenny) or CODENAME-updates (such as squeeze-updates, supported since -Squeeze) are added. +* use_volatile -By default this is false for backward compatibility with older -versions of this module. + If this variable is set to true the Debian Volatile sources (until + Lenny) or CODENAME-updates (such as squeeze-updates, supported since + Squeeze) are added. -include_src ------------- + By default this is false for backward compatibility with older + versions of this module. -If this variable is set to true a deb-src source is added for every -added binary archive source. +* include_src -By default this is false for backward compatibility with older -versions of this module. + If this variable is set to true a deb-src source is added for every + added binary archive source. -use_next_release ------------------ + By default this is false for backward compatibility with older + versions of this module. -If this variable is set to true the sources for the next Debian -release are added. The default pinning configuration pins it to very -low values. +* use_next_release -By default this is false for backward compatibility with older -versions of this module. + If this variable is set to true the sources for the next Debian + release are added. The default pinning configuration pins it to very + low values. -debian_url, security_url, backports_url, volatile_url ------------------------------------------------------- + By default this is false for backward compatibility with older + versions of this module. -These variables allow to override the default APT mirrors respectively -used for the standard Debian archives, the Debian security archive, -the Debian official backports and the Debian Volatile archive. +* debian_url, security_url, backports_url, volatile_url -apt_ubuntu_url ---------------- + These variables allow to override the default APT mirrors respectively + used for the standard Debian archives, the Debian security archive, + the Debian official backports and the Debian Volatile archive. -These variables allows to override the default APT mirror used for all -standard Ubuntu archives (including updates, security, backports). +* ubuntu_url -apt_repos ----------- + These variables allows to override the default APT mirror used for all + standard Ubuntu archives (including updates, security, backports). -If this variable is set the default repositories list ("main contrib non-free") -is overriden. +* repos -custom_preferences -------------------- + If this variable is set the default repositories list ("main contrib non-free") + is overriden. -Since Debian Lenny's version of APT doesn't support the use of the -preferences.d directory for putting fragments of 'preferences', this -module will manage a default generic apt/preferences file with more -recent releases pinned to very low values so that any package -installation will not accidentally pull in packages from those suites -unless you explicitly specify the version number. This file will be -complemented with all of the preferences_snippet calls (see below). +* disable_update -If the default preferences template doesn't suit your needs, you can create a -template located in your site_apt module, and set custom_preferences with the -content (eg. custom_preferences => template('site_apt/preferences') ) + Disable "apt-get update" which is normally triggered by apt::upgrade_package + and apt::dist_upgrade. -Setting this variable to false before including this class will force the -apt/preferences file to be absent: + Note that nodes can be updated once a day by using + APT::Periodic::Update-Package-Lists "1"; + in i.e. /etc/apt/apt.conf.d/80_apt_update_daily. - class { 'apt': custom_preferences => false } +* custom_preferences -codename --------- + Since Debian Lenny's version of APT doesn't support the use of the + preferences.d directory for putting fragments of 'preferences', this + module will manage a default generic apt/preferences file with more + recent releases pinned to very low values so that any package + installation will not accidentally pull in packages from those suites + unless you explicitly specify the version number. This file will be + complemented with all of the preferences_snippet calls (see below). -Contains the codename ("squeeze", "wheezy", ...) of the client's release. While -these values come from lsb-release by default, this parameter can be set -manually, e.g. to enable forced upgrades. For example: + If the default preferences template doesn't suit your needs, you can create a + template located in your site_apt module, and set custom_preferences with the + content (eg. custom_preferences => template('site_apt/preferences') ) - include apt::dist_upgrade - class { 'apt': codename => 'wheezy', notify => Exec['apt_dist-upgrade'] } + Setting this variable to false before including this class will force the + apt/preferences file to be absent: + + class { 'apt': custom_preferences => false } + +* codename + + Contains the codename ("squeeze", "wheezy", ...) of the client's release. While + these values come from lsb-release by default, this parameter can be set + manually, e.g. to enable forced upgrades. For example: + include apt::dist_upgrade + class { 'apt': codename => 'wheezy', notify => Exec['apt_dist-upgrade'] } apt::apticron ------------- -- cgit v1.2.3 From dc38efc8912c1fe72c1254c612c9805cbae53c4c Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 2 Jan 2013 16:39:24 +0100 Subject: Fix README formatting. --- README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index 0685b55..8750172 100644 --- a/README +++ b/README @@ -441,7 +441,7 @@ for example: } apt::sources_list -------------- +----------------- Creates a file in the apt/sources.list.d directory to easily add additional apt sources. One can use either the 'source' meta-parameter to specify a list of @@ -484,7 +484,7 @@ File['apt_config'] Use this resource to depend on or add to a completed apt configuration Exec['apt_updated'] ------------------ +------------------- After this point the APT indexes are up-to-date. -- cgit v1.2.3 From 09710a29b116427a1bda8641a44d6383975e0844 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 2 Jan 2013 16:40:26 +0100 Subject: Remove duplicated settings, resulting from wrong merge. --- manifests/init.pp | 1 - 1 file changed, 1 deletion(-) diff --git a/manifests/init.pp b/manifests/init.pp index c098ef3..a851011 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -64,7 +64,6 @@ class apt( '' => template( "apt/${::operatingsystem}/sources.list.erb"), default => $custom_sources_list }, - mode => 0644, owner => root, group => 0, require => Package['lsb'], notify => Exec['refresh_apt'], owner => root, group => 0, mode => 0644; -- cgit v1.2.3 From aac83e728c11ec576ea07e8c5ea990740c66e908 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 2 Jan 2013 16:52:10 +0100 Subject: Lookup next_release in template the same way we lookup next_codename. next_release was forgotten when next_codename was fixed. --- templates/Debian/sources.list.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/Debian/sources.list.erb b/templates/Debian/sources.list.erb index 04c13ea..49cf38c 100644 --- a/templates/Debian/sources.list.erb +++ b/templates/Debian/sources.list.erb @@ -49,7 +49,7 @@ deb-src <%= debian_url %> <%= codename %>-updates <%= lrepos %> <% end -%> <% if next_release=scope.lookupvar('apt::use_next_release') -%> -### Debian next: <%= next_codename=scope.lookupvar('apt::next_codename') %> +### Debian next: <%= next_release=scope.lookupvar('apt::next_release') ; next_codename=scope.lookupvar('apt::next_codename') %> # basic deb <%= debian_url %> <%= next_codename %> <%= lrepos %> -- cgit v1.2.3 From 17f67d9fac83193f4436e82fc6046e065d9ab024 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Wed, 2 Jan 2013 16:54:03 +0100 Subject: Simplify codename handling. Have the codename class parameter default to $::lsbdistcodename, and derive $release from it. --- manifests/init.pp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index a851011..5c0738b 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -4,7 +4,7 @@ # See LICENSE for the full license granted to you. class apt( - $codename = '', + $codename = $::lsbdistcodename, $use_volatile = false, $include_src = false, $use_next_release = false, @@ -39,12 +39,8 @@ class apt( include lsb - # init $release, $next_release, $codename, $next_codename, $release_version + # init $release, $next_release, $next_codename, $release_version case $codename { - '': { - $codename = $::lsbdistcodename - $release = $::lsbdistrelease - } 'n/a': { fail("Unknown lsbdistcodename reported by facter: '$lsbdistcodename', please fix this by setting this variable in your manifest.") } -- cgit v1.2.3 From ded81d8edcc9a7cc8275a68f669fde896379b12e Mon Sep 17 00:00:00 2001 From: Gabriel Filion Date: Wed, 2 Jan 2013 08:12:11 -0500 Subject: Apply code style corrections from puppet-lint Signed-off-by: Gabriel Filion + 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 --- manifests/apt_conf.pp | 6 ++- manifests/apticron.pp | 10 +++-- manifests/cron/base.pp | 2 +- manifests/cron/dist_upgrade.pp | 22 ++++++----- manifests/cron/download.pp | 14 ++++--- manifests/dist_upgrade.pp | 12 +++--- manifests/dist_upgrade/initiator.pp | 10 ++--- manifests/dot_d_directories.pp | 14 +++---- manifests/dselect.pp | 8 ++-- manifests/init.pp | 75 +++++++++++++++++++++---------------- manifests/listchanges.pp | 12 +++--- manifests/preferences.pp | 14 +++---- manifests/preferences/absent.pp | 2 +- manifests/preferences_snippet.pp | 20 +++++----- manifests/preseeded_package.pp | 26 +++++++------ manifests/proxy_client.pp | 4 +- manifests/reboot_required_notify.pp | 2 +- manifests/sources_list.pp | 6 +-- manifests/unattended_upgrades.pp | 16 ++++---- manifests/update.pp | 7 ++-- manifests/upgrade_package.pp | 28 ++++++++------ 21 files changed, 173 insertions(+), 137 deletions(-) diff --git a/manifests/apt_conf.pp b/manifests/apt_conf.pp index fe07546..d78fb9b 100644 --- a/manifests/apt_conf.pp +++ b/manifests/apt_conf.pp @@ -19,8 +19,10 @@ define apt::apt_conf( # apparently doesn't. file { "/etc/apt/apt.conf.d/${name}": ensure => $ensure, - owner => root, group => 0, mode => 0644, - notify => Exec["refresh_apt"], + owner => root, + group => 0, + mode => '0644', + notify => Exec['refresh_apt'], } if $source { diff --git a/manifests/apticron.pp b/manifests/apticron.pp index ebdd5b5..54d7b71 100644 --- a/manifests/apticron.pp +++ b/manifests/apticron.pp @@ -12,11 +12,13 @@ class apt::apticron( $customsubject = '' ) { - package { apticron: ensure => $ensure_version } + package { 'apticron': ensure => $ensure_version } - file { "/etc/apticron/apticron.conf": + file { '/etc/apticron/apticron.conf': content => template($apt::apticron::config), - mode => 0644, owner => root, group => root, - require => Package["apticron"]; + owner => root, + group => root, + mode => '0644', + require => Package['apticron']; } } diff --git a/manifests/cron/base.pp b/manifests/cron/base.pp index 7ccfce6..39fc306 100644 --- a/manifests/cron/base.pp +++ b/manifests/cron/base.pp @@ -1,6 +1,6 @@ class apt::cron::base { - package { cron-apt: ensure => installed } + package { 'cron-apt': ensure => installed } case $apt_cron_hours { '': {} diff --git a/manifests/cron/dist_upgrade.pp b/manifests/cron/dist_upgrade.pp index 68460f2..a880a66 100644 --- a/manifests/cron/dist_upgrade.pp +++ b/manifests/cron/dist_upgrade.pp @@ -4,22 +4,26 @@ class apt::cron::dist_upgrade inherits apt::cron::base { dist-upgrade -y -o APT::Get::Show-Upgraded=true -o 'DPkg::Options::=--force-confold' " - file { "/etc/cron-apt/action.d/3-download": + file { '/etc/cron-apt/action.d/3-download': ensure => absent, } - package { "apt-listbugs": ensure => absent } + package { 'apt-listbugs': ensure => absent } - file { "/etc/cron-apt/action.d/4-dist-upgrade": + file { '/etc/cron-apt/action.d/4-dist-upgrade': content => $action, - require => Package[cron-apt], - owner => root, group => 0, mode => 0644; + owner => root, + group => 0, + mode => '0644', + require => Package[cron-apt]; } - file { "/etc/cron-apt/config.d/MAILON": - content => "MAILON=upgrade\n", - require => Package[cron-apt], - owner => root, group => 0, mode => 0644; + file { '/etc/cron-apt/config.d/MAILON': + content => 'MAILON=upgrade\n', + owner => root, + group => 0, + mode => '0644', + require => Package[cron-apt]; } } diff --git a/manifests/cron/download.pp b/manifests/cron/download.pp index f4e9184..4a19fec 100644 --- a/manifests/cron/download.pp +++ b/manifests/cron/download.pp @@ -4,20 +4,24 @@ class apt::cron::download inherits apt::cron::base { dist-upgrade -d -y -o APT::Get::Show-Upgraded=true " - file { "/etc/cron-apt/action.d/4-dist-upgrade": + file { '/etc/cron-apt/action.d/4-dist-upgrade': ensure => absent, } - file { "/etc/cron-apt/action.d/3-download": + file { '/etc/cron-apt/action.d/3-download': content => $action, require => Package[cron-apt], - owner => root, group => 0, mode => 0644; + owner => root, + group => 0, + mode => '0644'; } - file { "/etc/cron-apt/config.d/MAILON": + file { '/etc/cron-apt/config.d/MAILON': content => "MAILON=changes\n", require => Package[cron-apt], - owner => root, group => 0, mode => 0644; + owner => root, + group => 0, + mode => '0644'; } } diff --git a/manifests/dist_upgrade.pp b/manifests/dist_upgrade.pp index ed25b0b..bf78dcc 100644 --- a/manifests/dist_upgrade.pp +++ b/manifests/dist_upgrade.pp @@ -4,13 +4,15 @@ class apt::dist_upgrade { include apt::update } + $req = $apt::disable_update ? { + true => undef, + default => Exec['apt_updated'], + } + exec { 'apt_dist-upgrade': - command => "/usr/bin/apt-get -q -y -o 'DPkg::Options::=--force-confold' dist-upgrade", + command => '/usr/bin/apt-get -q -y -o \'DPkg::Options::=--force-confold\' dist-upgrade', refreshonly => true, - require => $apt::disable_update ? { - true => undef, - default => Exec['apt_updated'], - } + require => $req } } diff --git a/manifests/dist_upgrade/initiator.pp b/manifests/dist_upgrade/initiator.pp index f1d522b..d238988 100644 --- a/manifests/dist_upgrade/initiator.pp +++ b/manifests/dist_upgrade/initiator.pp @@ -4,15 +4,15 @@ class apt::dist_upgrade::initiator inherits apt::dist_upgrade { $initiator_abs = "${apt::apt_base_dir}/${initiator}" file { 'apt_upgrade_initiator': - mode => 0644, + mode => '0644', owner => root, group => 0, - path => "${initiator_abs}", + path => $initiator_abs, checksum => md5, source => [ - "puppet:///modules/site_apt/${::fqdn}/${initiator}", - "puppet:///modules/site_apt/${initiator}", - "puppet:///modules/apt/${initiator}", + "puppet:///modules/site_apt/${::fqdn}/${initiator}", + "puppet:///modules/site_apt/${initiator}", + "puppet:///modules/apt/${initiator}", ], } diff --git a/manifests/dot_d_directories.pp b/manifests/dot_d_directories.pp index 742aad4..37c3fc8 100644 --- a/manifests/dot_d_directories.pp +++ b/manifests/dot_d_directories.pp @@ -2,20 +2,20 @@ class apt::dot_d_directories { # watch .d directories and ensure they are present file { - "/etc/apt/apt.conf.d": - ensure => directory, + '/etc/apt/apt.conf.d': + ensure => directory, checksum => mtime, - notify => Exec['refresh_apt']; - "/etc/apt/sources.list.d": - ensure => directory, + notify => Exec['refresh_apt']; + '/etc/apt/sources.list.d': + ensure => directory, checksum => mtime, - notify => Exec['refresh_apt']; + notify => Exec['refresh_apt']; } exec { # "&& sleep 1" is workaround for older(?) clients 'refresh_apt': - command => '/usr/bin/apt-get update && sleep 1', + command => '/usr/bin/apt-get update && sleep 1', refreshonly => true, } diff --git a/manifests/dselect.pp b/manifests/dselect.pp index 44f0e19..6feeb9f 100644 --- a/manifests/dselect.pp +++ b/manifests/dselect.pp @@ -1,10 +1,10 @@ class apt::dselect { # suppress annoying help texts of dselect - line { dselect_expert: - file => "/etc/dpkg/dselect.cfg", - line => "expert", + line { 'dselect_expert': + file => '/etc/dpkg/dselect.cfg', + line => 'expert', } - package { dselect: ensure => installed } + package { 'dselect': ensure => installed } } diff --git a/manifests/init.pp b/manifests/init.pp index 5c0738b..020c1cc 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -20,7 +20,7 @@ class apt( case $::operatingsystem { 'debian': { $real_repos = $repos ? { - 'auto' => 'main contrib non-free', + 'auto' => 'main contrib non-free', default => $repos, } } @@ -32,8 +32,8 @@ class apt( } } - package { apt: - ensure => installed, + package { 'apt': + ensure => installed, require => undef, } @@ -42,7 +42,7 @@ class apt( # init $release, $next_release, $next_codename, $release_version case $codename { 'n/a': { - fail("Unknown lsbdistcodename reported by facter: '$lsbdistcodename', please fix this by setting this variable in your manifest.") + fail("Unknown lsbdistcodename reported by facter: '$::lsbdistcodename', please fix this by setting this variable in your manifest.") } default: { $release = debian_release($codename) @@ -52,41 +52,44 @@ class apt( $next_codename = debian_nextcodename($codename) $next_release = debian_nextrelease($release) + $sources_content = $::custom_sources_list ? { + '' => template( "apt/${::operatingsystem}/sources.list.erb"), + default => $::custom_sources_list + } file { # include main, security and backports # additional sources should be included via the apt::sources_list define - "/etc/apt/sources.list": - content => $custom_sources_list ? { - '' => template( "apt/${::operatingsystem}/sources.list.erb"), - default => $custom_sources_list - }, + '/etc/apt/sources.list': + content => $sources_content, require => Package['lsb'], - notify => Exec['refresh_apt'], - owner => root, group => 0, mode => 0644; + notify => Exec['refresh_apt'], + owner => root, + group => 0, + mode => '0644'; } - apt_conf { "02show_upgraded": + apt_conf { '02show_upgraded': source => [ "puppet:///modules/site_apt/${::fqdn}/02show_upgraded", - "puppet:///modules/site_apt/02show_upgraded", - "puppet:///modules/apt/02show_upgraded" ] + 'puppet:///modules/site_apt/02show_upgraded', + 'puppet:///modules/apt/02show_upgraded' ] } - if ( $::virtual == "vserver" ) { - apt_conf { "03clean_vserver": + if ( $::virtual == 'vserver' ) { + apt_conf { '03clean_vserver': source => [ "puppet:///modules/site_apt/${::fqdn}/03clean_vserver", - "puppet:///modules/site_apt/03clean_vserver", - "puppet:///modules/apt/03clean_vserver" ], - alias => "03clean"; + 'puppet:///modules/site_apt/03clean_vserver', + 'puppet:///modules/apt/03clean_vserver' ], + alias => '03clean'; } } else { - apt_conf { "03clean": + apt_conf { '03clean': source => [ "puppet:///modules/site_apt/${::fqdn}/03clean", - "puppet:///modules/site_apt/03clean", - "puppet:///modules/apt/03clean" ] + 'puppet:///modules/site_apt/03clean', + 'puppet:///modules/apt/03clean' ] } } - + case $custom_preferences { false: { include apt::preferences::absent @@ -101,29 +104,35 @@ class apt( include apt::dot_d_directories ## This package should really always be current - package { "debian-archive-keyring": ensure => latest } + package { 'debian-archive-keyring': ensure => latest } # backports uses the normal archive key now - package { "debian-backports-keyring": ensure => absent } + package { 'debian-backports-keyring': ensure => absent } + + include common::moduledir + $apt_base_dir = "${common::moduledir::module_dir_path}/apt" + modules_dir { 'apt': } - if $custom_key_dir { + if $::custom_key_dir { file { "${apt_base_dir}/keys.d": - source => "$custom_key_dir", + source => $::custom_key_dir, recurse => true, - mode => 0755, owner => root, group => root, + owner => root, + group => root, + mode => '0755', } - exec { "custom_keys": - command => "find ${apt_base_dir}/keys.d -type f -exec apt-key add '{}' \\; && /usr/bin/apt-get update", - subscribe => File["${apt_base_dir}/keys.d"], + exec { 'custom_keys': + command => "find ${apt_base_dir}/keys.d -type f -exec apt-key add '{}' \\; && /usr/bin/apt-get update", + subscribe => File["${apt_base_dir}/keys.d"], refreshonly => true, } if $custom_preferences != false { - Exec["custom_keys"] { + Exec['custom_keys'] { before => File['apt_config'], } } } # workaround for preseeded_package component - file { [ "/var/cache", "/var/cache/local", "/var/cache/local/preseeding" ]: ensure => directory } + file { [ '/var/cache', '/var/cache/local', '/var/cache/local/preseeding' ]: ensure => directory } } diff --git a/manifests/listchanges.pp b/manifests/listchanges.pp index 4194463..0c163ae 100644 --- a/manifests/listchanges.pp +++ b/manifests/listchanges.pp @@ -7,11 +7,13 @@ class apt::listchanges( $saveseen = '/var/lib/apt/listchanges.db', $which = 'both' ){ - package { apt-listchanges: ensure => $ensure_version } - - file { "/etc/apt/listchanges.conf": + package { 'apt-listchanges': ensure => $ensure_version } + + file { '/etc/apt/listchanges.conf': content => template($apt::listchanges::config), - mode => 0644, owner => root, group => root, - require => Package["apt-listchanges"]; + owner => root, + group => root, + mode => '0644', + require => Package['apt-listchanges']; } } diff --git a/manifests/preferences.pp b/manifests/preferences.pp index 66f36a7..9ed24c1 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -1,20 +1,20 @@ class apt::preferences { - $pref_contents = $custom_preferences ? { - '' => $operatingsystem ? { + $pref_contents = $apt::custom_preferences ? { + '' => $::operatingsystem ? { 'debian' => template("apt/${::operatingsystem}/preferences_${apt::codename}.erb"), 'ubuntu' => template("apt/${::operatingsystem}/preferences_${apt::codename}.erb"), }, - default => $custom_preferences + default => $apt::custom_preferences } file { '/etc/apt/preferences': - ensure => present, - alias => 'apt_config', + ensure => present, + alias => 'apt_config', # only update together content => $pref_contents, - require => File["/etc/apt/sources.list"], - owner => root, group => 0, mode => 0644; + require => File['/etc/apt/sources.list'], + owner => root, group => 0, mode => '0644'; } } diff --git a/manifests/preferences/absent.pp b/manifests/preferences/absent.pp index 68ab400..f32e030 100644 --- a/manifests/preferences/absent.pp +++ b/manifests/preferences/absent.pp @@ -1,7 +1,7 @@ class apt::preferences::absent { file { '/etc/apt/preferences': - alias => 'apt_config', ensure => absent, + alias => 'apt_config', } } diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 1aafe57..0bff85c 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -1,11 +1,11 @@ -define apt::preferences_snippet( +define apt::preferences_snippet ( + $priority, $package = false, $ensure = 'present', $source = '', $release = '', - $pin = '', - $priority ) -{ + $pin = '' +) { $real_package = $package ? { false => $name, @@ -13,19 +13,19 @@ define apt::preferences_snippet( } if $custom_preferences == false { - fail("Trying to define a preferences_snippet with \$custom_preferences set to false.") + fail('Trying to define a preferences_snippet with $custom_preferences set to false.') } if !$pin and !$release { - fail("apt::preferences_snippet requires one of the 'pin' or 'release' argument to be set") + fail('apt::preferences_snippet requires one of the \'pin\' or \'release\' argument to be set') } if $pin and $release { - fail("apt::preferences_snippet requires either a 'pin' or 'release' argument, not both") + fail('apt::preferences_snippet requires either a \'pin\' or \'release\' argument, not both') } file { "/etc/apt/preferences.d/${name}": ensure => $ensure, - owner => root, group => 0, mode => 0644; + owner => root, group => 0, mode => '0644'; } # This should really work in the same manner as sources_list and apt_conf @@ -36,12 +36,12 @@ define apt::preferences_snippet( case $release { '': { File["/etc/apt/preferences.d/${name}"]{ - content => template("apt/preferences_snippet.erb") + content => template('apt/preferences_snippet.erb') } } default: { File["/etc/apt/preferences.d/${name}"]{ - content => template("apt/preferences_snippet_release.erb") + content => template('apt/preferences_snippet_release.erb') } } } diff --git a/manifests/preseeded_package.pp b/manifests/preseeded_package.pp index ac9a821..9bca8b1 100644 --- a/manifests/preseeded_package.pp +++ b/manifests/preseeded_package.pp @@ -1,17 +1,21 @@ -define apt::preseeded_package ($content = "", $ensure = "installed") { +define apt::preseeded_package ( + $ensure = 'installed', + $content = '' +) { $seedfile = "/var/cache/local/preseeding/${name}.seeds" + $real_content = $content ? { + '' => template ( "site_apt/${::lsbdistcodename}/${name}.seeds" ), + default => $content + } file { $seedfile: - content => $content ? { - "" => template ( "site_apt/${::lsbdistcodename}/${name}.seeds" ), - default => $content - }, - mode => 0600, owner => root, group => root, - } + content => $real_content, + mode => '0600', owner => root, group => root, + } package { $name: - ensure => $ensure, + ensure => $ensure, responsefile => $seedfile, - require => File[$seedfile], - } -} + require => File[$seedfile], + } +} diff --git a/manifests/proxy_client.pp b/manifests/proxy_client.pp index c284c74..9ba79f2 100644 --- a/manifests/proxy_client.pp +++ b/manifests/proxy_client.pp @@ -3,7 +3,7 @@ class apt::proxy_client( $port = '3142', ){ - apt_conf { "20proxy": - content => template("apt/20proxy.erb"), + apt_conf { '20proxy': + content => template('apt/20proxy.erb'), } } diff --git a/manifests/reboot_required_notify.pp b/manifests/reboot_required_notify.pp index 3603aa2..722e8a5 100644 --- a/manifests/reboot_required_notify.pp +++ b/manifests/reboot_required_notify.pp @@ -3,7 +3,7 @@ class apt::reboot_required_notify { # This package installs the script that created /var/run/reboot-required*. # This script (/usr/share/update-notifier/notify-reboot-required) is # triggered e.g. by kernel packages. - package { update-notifier-common: + package { 'update-notifier-common': ensure => installed, } diff --git a/manifests/sources_list.pp b/manifests/sources_list.pp index 499116d..00f6097 100644 --- a/manifests/sources_list.pp +++ b/manifests/sources_list.pp @@ -1,8 +1,8 @@ define apt::sources_list ( $ensure = 'present', $source = '', - $content = undef ) -{ + $content = undef +) { if $source == '' and $content == undef { fail("One of \$source or \$content must be specified for apt_sources_snippet ${name}") @@ -18,7 +18,7 @@ define apt::sources_list ( # apparently doesn't. file { "/etc/apt/sources.list.d/${name}": ensure => $ensure, - owner => root, group => 0, mode => 0644, + owner => root, group => 0, mode => '0644', notify => Exec['refresh_apt'], } diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index b5bf829..37e8321 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -1,21 +1,21 @@ class apt::unattended_upgrades { package { 'unattended-upgrades': - ensure => present, + ensure => present, require => undef, } - apt_conf { "50unattended-upgrades": + apt_conf { '50unattended-upgrades': source => [ - "puppet:///modules/site_apt/${::lsbdistcodename}/50unattended-upgrades", - "puppet:///modules/site_apt/50unattended-upgrades", - "puppet:///modules/apt/${::lsbdistcodename}/50unattended-upgrades" ], + "puppet:///modules/site_apt/${::lsbdistcodename}/50unattended-upgrades", + 'puppet:///modules/site_apt/50unattended-upgrades', + "puppet:///modules/apt/${::lsbdistcodename}/50unattended-upgrades" ], require => Package['unattended-upgrades'], } - if $custom_preferences != false { - Apt_conf["50unattended-upgrades"] { - before => Concat[apt_config], + if $apt::custom_preferences != false { + Apt_conf['50unattended-upgrades'] { + before => Concat['apt_config'], } } } diff --git a/manifests/update.pp b/manifests/update.pp index 9c773ab..3f45125 100644 --- a/manifests/update.pp +++ b/manifests/update.pp @@ -2,11 +2,12 @@ class apt::update { exec { 'update_apt': command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean', - require => [ File['/etc/apt/apt.conf.d', '/etc/apt/preferences' ], - File['/etc/apt/sources.list'] ], + require => [ + File['/etc/apt/apt.conf.d', '/etc/apt/preferences' ], + File['/etc/apt/sources.list'] ], loglevel => info, # Another Semaphor for all packages to reference - alias => "apt_updated" + alias => 'apt_updated' } } diff --git a/manifests/upgrade_package.pp b/manifests/upgrade_package.pp index 2ce6932..d607150 100644 --- a/manifests/upgrade_package.pp +++ b/manifests/upgrade_package.pp @@ -1,7 +1,9 @@ -define apt::upgrade_package ($version = "") { +define apt::upgrade_package ( + $version = '' +) { - if $apt::disable_update == false { - include apt::update + if $apt::disable_update == false { + include apt::update } $version_suffix = $version ? { @@ -12,25 +14,29 @@ define apt::upgrade_package ($version = "") { if !defined(Package['apt-show-versions']) { package { 'apt-show-versions': - ensure => installed, + ensure => installed, require => undef, } } if !defined(Package['dctrl-tools']) { package { 'dctrl-tools': - ensure => installed, + ensure => installed, require => undef, } } + $req = $apt::disable_update ? { + true => Package['apt-show-versions', 'dctrl-tools'], + default => [ + Exec['apt_updated'], + Package['apt-show-versions', 'dctrl-tools'] + ], + } + exec { "apt-get -q -y -o 'DPkg::Options::=--force-confold' install ${name}${version_suffix}": - onlyif => [ "grep-status -F Status installed -a -P $name -q", "apt-show-versions -u $name | grep -q upgradeable" ], - require => $apt::disable_update ? { - true => Package['apt-show-versions', 'dctrl-tools'], - default => [ Exec['apt_updated'], - Package['apt-show-versions', 'dctrl-tools'] ], - } + onlyif => [ "grep-status -F Status installed -a -P $name -q", "apt-show-versions -u $name | grep -q upgradeable" ], + require => $req } } -- cgit v1.2.3 From f3daf58b9eb14aba385c20abb73191c0c408f367 Mon Sep 17 00:00:00 2001 From: varac Date: Wed, 2 Jan 2013 17:29:05 +0100 Subject: forgot ${distro_codename}-updates in 50unattended-upgrades fallback --- files/50unattended-upgrades | 1 + 1 file changed, 1 insertion(+) diff --git a/files/50unattended-upgrades b/files/50unattended-upgrades index 36c1f54..ebf9f49 100644 --- a/files/50unattended-upgrades +++ b/files/50unattended-upgrades @@ -3,6 +3,7 @@ Unattended-Upgrade::Origins-Pattern { // Debian "o=${distro_id},n=${distro_codename}"; + "o=${distro_id},n=${distro_codename}-updates"; "o=${distro_id},n=${distro_codename},l=Debian-security"; "o=${distro_id} Backports,n=${distro_codename}-backports"; // Ubuntu specific -- cgit v1.2.3 From 1fe1fe66c3f75987833756ff22427af4821b3700 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Thu, 3 Jan 2013 19:57:44 +0100 Subject: Fix overzealous linting. We do want to see \n expanded in this string. --- manifests/cron/dist_upgrade.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/cron/dist_upgrade.pp b/manifests/cron/dist_upgrade.pp index a880a66..74403bb 100644 --- a/manifests/cron/dist_upgrade.pp +++ b/manifests/cron/dist_upgrade.pp @@ -19,7 +19,7 @@ dist-upgrade -y -o APT::Get::Show-Upgraded=true -o 'DPkg::Options::=--force-conf } file { '/etc/cron-apt/config.d/MAILON': - content => 'MAILON=upgrade\n', + content => "MAILON=upgrade\n", owner => root, group => 0, mode => '0644', -- cgit v1.2.3 From 9a3e6c173ec0f3ec3b4dd39848faba5a4d195d8f Mon Sep 17 00:00:00 2001 From: intrigeri Date: Thu, 3 Jan 2013 19:59:37 +0100 Subject: Add dependency back to the README. It was erroneously removed at some point, but this module still depends on the "common" one, at least for the time being. --- README | 1 + 1 file changed, 1 insertion(+) diff --git a/README b/README index 8750172..d13479e 100644 --- a/README +++ b/README @@ -90,6 +90,7 @@ Requirements This module needs: - the lsb module: git://labs.riseup.net/shared-lsb +- the common module: git://labs.riseup.net/shared-common By default, on normal hosts, this module sets the configuration option DSelect::Clean to 'auto'. On virtual servers, the value is set by default to -- cgit v1.2.3 From 39f089405e024956dad659e0dab8c775972a5688 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 3 Jan 2013 14:18:44 -0500 Subject: lint README --- README | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/README b/README index d13479e..f241a19 100644 --- a/README +++ b/README @@ -22,14 +22,14 @@ 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_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 upgrades, but because this is a top-level facter variable, and newer puppet @@ -46,29 +46,29 @@ Ubuntu support is lagging behind but not absent either. 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" + $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': email => "foo@example.com", notifynew => '1' } + class { 'apt::apticron': email => 'foo@example.com', notifynew => '1' } * the apt::listchanges class has been moved to a paramterized class. if you were including this class before, after passing some variables, you will need 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" + $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 were including this class before, after passing some variables, you will need @@ -127,7 +127,7 @@ this variable to the content that you desire to use instead. For example, setting the following variable before including this class will pull in the templates/site_apt/sources.list file: - $custom_sources_list = template("site_apt/sources.list") + $custom_sources_list = template('site_apt/sources.list') $custom_key_dir --------------- @@ -152,7 +152,7 @@ that is not enabled by default, you must set one of the following parameters. Example usage: - class { 'apt': use_next_release => true, debian_url => 'http://localhost:9999/debian/" } + class { 'apt': use_next_release => true, debian_url => 'http://localhost:9999/debian/' } Class parameters: @@ -255,7 +255,7 @@ defaults, which you are free to change: Example usage: - class { 'apt::apticron': email => "foo@example.com", notifynew => '1' } + class { 'apt::apticron': email => 'foo@example.com', notifynew => '1' } apt::cron::download ------------------- @@ -331,7 +331,7 @@ apt::listchanges This class, when instantiated, installs apt-listchanges and configures it using the following parameterized variables, which can be changed: - version = "present" + version = 'present' config = "apt/${::operatingsystem}/listchanges_${::lsbrelease}.erb" frontend = 'pager' email = 'root' @@ -340,7 +340,7 @@ the following parameterized variables, which can be changed: which = 'both' Example usage: - class { 'apt::listchanges': email => "foo@example.com" } + class { 'apt::listchanges': email => 'foo@example.com' } apt::proxy_client ----------------- @@ -395,7 +395,7 @@ Example: apt::preferences_snippet { 'irssi-plugin-otr': - release => 'lenny-backports', + release => 'squeeze-backports', priority => 999; } @@ -451,9 +451,9 @@ meta-parameter to define content inline or with the help of a template. Example: - apt::sources_list { "company_internals.list": - source => ["puppet:///modules/site_apt/${::fqdn}/company_internals.list", - "puppet:///modules/site_apt/company_internals.list"], + apt::sources_list { 'company_internals.list': + source => [ "puppet:///modules/site_apt/${::fqdn}/company_internals.list", + 'puppet:///modules/site_apt/company_internals.list' ], } apt::upgrade_package @@ -469,11 +469,11 @@ For example, the following upgrades the perl package to version 5.8.8-7etch1 (if it is installed), it also upgrades the syslog-ng and perl-modules packages to their latest (also, only if they are installed): -upgrade_package { "perl": +upgrade_package { 'perl': version => '5.8.8-7etch1'; - "syslog-ng": + 'syslog-ng': version => latest; - "perl-modules": + 'perl-modules': } Resources -- cgit v1.2.3 From 2fe3df225c1144d108a7f33f90344310b55687a4 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 3 Jan 2013 14:55:55 -0500 Subject: replace a missed Concat reference change with File['apt_config'] --- manifests/unattended_upgrades.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/unattended_upgrades.pp b/manifests/unattended_upgrades.pp index 37e8321..d2a2352 100644 --- a/manifests/unattended_upgrades.pp +++ b/manifests/unattended_upgrades.pp @@ -15,7 +15,7 @@ class apt::unattended_upgrades { if $apt::custom_preferences != false { Apt_conf['50unattended-upgrades'] { - before => Concat['apt_config'], + before => File['apt_config'], } } } -- cgit v1.2.3 From 14670466be5eceba043e697d5f6f0f0ada9d5b07 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Tue, 8 Jan 2013 18:13:23 +0100 Subject: Don't check for source / content to be set when removing an APT source. Else, the sanity checks prevent one from using a simple apt::sources_list { "sid.list": ensure => absent } --- manifests/sources_list.pp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/manifests/sources_list.pp b/manifests/sources_list.pp index 00f6097..3367f83 100644 --- a/manifests/sources_list.pp +++ b/manifests/sources_list.pp @@ -4,11 +4,13 @@ define apt::sources_list ( $content = undef ) { - if $source == '' and $content == undef { - fail("One of \$source or \$content must be specified for apt_sources_snippet ${name}") - } - if $source != '' and $content != undef { - fail("Only one of \$source or \$content must specified for apt_sources_snippet ${name}") + if $ensure == 'present' { + if $source == '' and $content == undef { + fail("One of \$source or \$content must be specified for apt_sources_snippet ${name}") + } + if $source != '' and $content != undef { + fail("Only one of \$source or \$content must specified for apt_sources_snippet ${name}") + } } include apt::dot_d_directories -- cgit v1.2.3