Merge remote-tracking branch 'remotes/shared/master'

This commit is contained in:
varac 2013-01-30 16:47:30 +01:00
commit 6c135ea7bc
34 changed files with 571 additions and 539 deletions

381
README
View file

@ -15,11 +15,82 @@ 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 }
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:
$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
- 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
@ -45,13 +116,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
--------------------
@ -63,27 +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_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_sources_list = template('site_apt/sources.list')
$custom_key_dir
---------------
@ -96,73 +140,6 @@ 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.
Here's an example of setting the proxy to 'http://proxy.domain' at port 666:
$apt_proxy = 'http://proxy.domain'
$apt_proxy_port = 666
include apt::proxy_client
$apt_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
----------------
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
---------------------
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
-------------------------------------------------------------------------
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
---------------
These variables allows to override the default APT mirror used for all
standard Ubuntu archives (including updates, security, backports).
$apt_repos
----------
If this variable is set the default repositories list ("main contrib non-free")
is overriden.
$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.
Classes
=======
@ -170,27 +147,115 @@ Classes
apt
---
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.
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:
class { 'apt': use_next_release => true, debian_url => 'http://localhost:9999/debian/' }
Class parameters:
* use_volatile
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.
* 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.
* 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.
* 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.
* ubuntu_url
These variables allows to override the default APT mirror used for all
standard Ubuntu archives (including updates, security, backports).
* repos
If this variable is set the default repositories list ("main contrib non-free")
is overriden.
* 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_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:
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
-------------
When you include this class, apticron will be installed, with the following
defaults, which you are free to change before you include the class:
When you instantiate this class, apticron will be installed, with the following
defaults, which you are free to change:
$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 = ""
$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
-------------------
@ -203,7 +268,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.
@ -239,9 +304,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
@ -263,22 +328,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
---------------------------
@ -306,43 +382,54 @@ 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
------------------------
A way to add pinning information to /etc/apt/preferences
A way to add pinning information to files in /etc/apt/preferences.d/
Example:
apt::preferences_snippet{
apt::preferences_snippet {
'irssi-plugin-otr':
release => 'lenny-backports',
release => 'squeeze-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;
}
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
----------------------
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: }
@ -350,12 +437,12 @@ 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
-------------
-----------------
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
@ -364,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
@ -382,23 +469,23 @@ 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
=========
Concat[apt_config]
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.
@ -406,7 +493,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

View file

@ -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

View file

@ -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 {

View file

@ -1,54 +1,24 @@
class apt::apticron {
class apt::apticron(
$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 = ''
) {
case $apticron_ensure_version {
'': { $apticron_ensure_version = "present" }
}
package { 'apticron': ensure => $ensure_version }
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 }
file { "/etc/apticron/apticron.conf":
content => template($apticron_config),
mode => 0644, owner => root, group => root,
require => Package["apticron"];
file { '/etc/apticron/apticron.conf':
content => template($apt::apticron::config),
owner => root,
group => root,
mode => '0644',
require => Package['apticron'];
}
}

View file

@ -1,6 +1,6 @@
class apt::cron::base {
package { cron-apt: ensure => installed }
package { 'cron-apt': ensure => installed }
case $apt_cron_hours {
'': {}

View file

@ -4,20 +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 }
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]
owner => root,
group => 0,
mode => '0644',
require => Package[cron-apt];
}
config_file { "/etc/cron-apt/config.d/MAILON":
file { '/etc/cron-apt/config.d/MAILON':
content => "MAILON=upgrade\n",
require => Package[cron-apt]
owner => root,
group => 0,
mode => '0644',
require => Package[cron-apt];
}
}

View file

@ -3,19 +3,25 @@ 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":
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":
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';
}
}

View file

@ -4,10 +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 => Exec['apt_updated'],
require => $req
}
}

View file

@ -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}",
],
}

View file

@ -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,
}

View file

@ -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 }
}

View file

@ -3,81 +3,48 @@
# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
# 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}",
}
$disable_update = $apt_disable_update ? {
'' => false,
default => $apt_disable_update
}
case $operatingsystem {
class apt(
$codename = $::lsbdistcodename,
$use_volatile = false,
$include_src = false,
$use_next_release = false,
$debian_url = 'http://http.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 = '',
$disable_update = false
){
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,
}
}
}
package { apt:
ensure => installed,
package { 'apt':
ensure => installed,
require => undef,
}
include lsb
# init $release, $next_release, $codename, $next_codename, $release_version
case $lsbdistcodename {
'': {
$codename = $lsbdistcodename
$release = $lsbdistrelease
}
# 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: {
$codename = $lsbdistcodename
$release = debian_release($codename)
}
}
@ -85,40 +52,44 @@ class apt {
$next_codename = debian_nextcodename($codename)
$next_release = debian_nextrelease($release)
config_file {
$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'],
notify => Exec['refresh_apt'],
owner => root,
group => 0,
mode => '0644';
}
apt_conf { "02show_upgraded":
source => [ "puppet:///modules/site_apt/${fqdn}/02show_upgraded",
"puppet:///modules/site_apt/02show_upgraded",
"puppet:///modules/apt/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' ]
}
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";
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';
}
}
else {
apt_conf { "03clean":
source => [ "puppet:///modules/site_apt/${fqdn}/03clean",
"puppet:///modules/site_apt/03clean",
"puppet:///modules/apt/03clean" ]
apt_conf { '03clean':
source => [ "puppet:///modules/site_apt/${::fqdn}/03clean",
'puppet:///modules/site_apt/03clean',
'puppet:///modules/apt/03clean' ]
}
}
case $custom_preferences {
false: {
include apt::preferences::absent
@ -130,43 +101,38 @@ 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
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: }
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"] {
before => Concat[apt_config],
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 }
}

View file

@ -1,38 +1,19 @@
class apt::listchanges {
class apt::listchanges(
$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 }
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 }
file { "/etc/apt/listchanges.conf":
content => template($apt_listchanges_config),
mode => 0644, owner => root, group => root,
require => Package["apt-listchanges"];
file { '/etc/apt/listchanges.conf':
content => template($apt::listchanges::config),
owner => root,
group => root,
mode => '0644',
require => Package['apt-listchanges'];
}
}

View file

@ -1,22 +1,20 @@
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 = $apt::custom_preferences ? {
'' => $::operatingsystem ? {
'debian' => template("apt/${::operatingsystem}/preferences_${apt::codename}.erb"),
'ubuntu' => template("apt/${::operatingsystem}/preferences_${apt::codename}.erb"),
},
order => 00,
target => '/etc/apt/preferences',
default => $apt::custom_preferences
}
concat{'/etc/apt/preferences':
alias => apt_config,
file { '/etc/apt/preferences':
ensure => present,
alias => 'apt_config',
# only update together
require => File["/etc/apt/sources.list"],
owner => root, group => 0, mode => 0644;
content => $pref_contents,
require => File['/etc/apt/sources.list'],
owner => root, group => 0, mode => '0644';
}
}

View file

@ -2,5 +2,6 @@ class apt::preferences::absent {
file { '/etc/apt/preferences':
ensure => absent,
alias => 'apt_config',
}
}

View file

@ -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,21 +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')
}
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}"]{
content => template("apt/preferences_snippet.erb")
File["/etc/apt/preferences.d/${name}"]{
content => template('apt/preferences_snippet.erb')
}
}
default: {
Concat::Fragment["apt_preference_${name}"]{
content => template("apt/preferences_snippet_release.erb")
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
}
}

View file

@ -1,18 +1,21 @@
define apt::preseeded_package ($content = "", $ensure = "installed") {
$seedfile = "/var/cache/local/preseeding/$name.seeds"
$real_content = $content ? {
"" => template ( "site_apt/$lsbdistcodename/$name.seeds" ),
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 => $real_content,
mode => 0600, owner => root, group => root,
}
mode => '0600', owner => root, group => root,
}
package { $name:
ensure => $ensure,
ensure => $ensure,
responsefile => $seedfile,
require => File[$seedfile],
}
}
require => File[$seedfile],
}
}

View file

@ -1,16 +1,9 @@
class apt::proxy_client {
class apt::proxy_client(
$proxy = 'http://localhost',
$port = '3142',
){
$real_apt_proxy = $apt_proxy ? {
"" => "http://localhost",
default => $apt_proxy
}
$real_apt_proxy_port = $apt_proxy_port ? {
"" => "3142",
default => $apt_proxy_port
}
apt_conf { "20proxy":
content => template("apt/20proxy.erb"),
apt_conf { '20proxy':
content => template('apt/20proxy.erb'),
}
}

View file

@ -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,
}

View file

@ -1,14 +1,16 @@
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}")
}
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
@ -18,7 +20,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'],
}

View file

@ -1,21 +1,22 @@
class apt::unattended_upgrades {
package { 'unattended-upgrades':
ensure => present,
ensure => present,
require => undef,
}
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" ],
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' ],
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 => File['apt_config'],
}
}
}

View file

@ -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' ],
Config_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'
}
}

View file

@ -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
}
}

View file

@ -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";

View file

@ -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 -%>
<%- unless scope.lookupvar('apt::apticron::ipaddresses').to_s == "false" -%>
<%= "IPADDRESSES=\"#{scope.lookupvar('apt::apticron::ipaddresses')}\"" %>
<%- end -%>

View file

@ -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') %>"

View file

@ -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') %>"

View file

@ -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') %>

View file

@ -1,6 +1,6 @@
Explanation: Debian <%= codename %>
Explanation: Debian <%= codename=scope.lookupvar('apt::codename') %>
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,7 +8,7 @@ Package: *
Pin: origin backports.debian.org
Pin-Priority: 200
Explanation: Debian <%= next_release %>
Explanation: Debian <%= next_release=scope.lookupvar('apt::next_release') %>
Package: *
Pin: release o=Debian,a=<%= next_release %>
Pin-Priority: 2

View file

@ -1,4 +1,4 @@
Explanation: Debian <%= codename %>
Explanation: Debian <%= codename=scope.lookupvar('apt::codename') %>
Package: *
Pin: release o=Debian,n=<%= codename %>
Pin-Priority: 990
@ -8,7 +8,7 @@ Package: *
Pin: release o=Debian,n=<%= codename %>-updates
Pin-Priority: 990
Explanation: Debian <%= next_codename %>
Explanation: Debian <%= next_codename=scope.lookupvar('apt::next_codename') %>
Package: *
Pin: release o=Debian,n=<%= next_codename %>
Pin-Priority: 2

View file

@ -1,4 +1,4 @@
Explanation: Debian <%= codename %>
Explanation: Debian <%= codename=scope.lookupvar('apt::codename') %>
Package: *
Pin: release o=Debian,n=<%= codename %>
Pin-Priority: 990

View file

@ -1,21 +1,21 @@
# This file is managed by puppet
# all local modifications will be overwritten
### Debian current: <%= codename %>
### Debian current: <%= codename=scope.lookupvar('apt::codename') %>
# basic
deb <%= debian_url %> <%= codename %> <%= repos %>
<% if include_src then -%>
deb-src <%= debian_url %> <%= codename %> <%= 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 %> <%= lrepos %>
<% 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-src <%= 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 <%= lrepos %>
<% end -%>
<% end -%>
@ -23,47 +23,47 @@ 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-src <%= 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 <%= lrepos %>
<% 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-src <%= 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 <%= lrepos %>
<% end -%>
<% else -%>
deb <%= debian_url %> <%= codename %>-updates <%= repos %>
<% if include_src then -%>
deb-src <%= debian_url %> <%= codename %>-updates <%= repos %>
deb <%= debian_url %> <%= codename %>-updates <%= lrepos %>
<% if include_src -%>
deb-src <%= debian_url %> <%= codename %>-updates <%= lrepos %>
<% 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_release=scope.lookupvar('apt::next_release') ; 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 -%>

View file

@ -1,4 +1,4 @@
Explanation: Ubuntu <%= codename %> security
Explanation: Ubuntu <%= codename=scope.lookupvar('apt::codename') %> security
Package: *
Pin: release o=Ubuntu,a=<%= codename %>-security
Pin-Priority: 990
@ -18,7 +18,7 @@ Package: *
Pin: release a=<%= codename %>-backports
Pin-Priority: 200
Explanation: Ubuntu <%= next_release %>
Explanation: Ubuntu <%= next_release=scope.lookupvar('apt::next_release') %>
Package: *
Pin: release o=Ubuntu,a=<%= next_release %>
Pin-Priority: 2

View file

@ -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 -%>
deb-src <%= ubuntu_url %> <%= lsbdistcodename %> <%= 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 %> <%= codename %> <%= lrepos %>
<% end -%>
# updates
deb <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= repos %>
<% if include_src then -%>
deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-updates <%= repos %>
deb <%= ubuntu_url %> <%= codename %>-updates <%= lrepos %>
<% if include_src -%>
deb-src <%= ubuntu_url %> <%= codename %>-updates <%= lrepos %>
<% end -%>
# security suppport
deb <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= repos %>
<% if include_src then -%>
deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-security <%= repos %>
deb <%= ubuntu_url %> <%= codename %>-security <%= lrepos %>
<% if include_src -%>
deb-src <%= ubuntu_url %> <%= codename %>-security <%= lrepos %>
<% end -%>
# backports
deb <%= ubuntu_url %> <%= lsbdistcodename %>-backports main <%= repos %>
<% if include_src then -%>
deb-src <%= ubuntu_url %> <%= lsbdistcodename %>-backports <%= repos %>
deb <%= ubuntu_url %> <%= codename %>-backports main <%= lrepos %>
<% if include_src -%>
deb-src <%= ubuntu_url %> <%= codename %>-backports <%= lrepos %>
<% end -%>