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

This commit is contained in:
Micah Anderson 2012-08-22 10:57:06 -04:00
parent b528cd0005
commit 460c1d54d1

278
README
View file

@ -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,64 +137,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.
Classes
=======
@ -161,27 +144,103 @@ 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/" }
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.
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.
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.
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 }
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
-------------------
@ -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
---------------------------