From: intrigeri Date: Sun, 21 Nov 2010 16:03:57 +0000 (+0100) Subject: Merge remote branch 'immerda/master'. X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=10c7939f65ae8e2f771d83d54c4ba56108bc509e;p=puppet-apt.git Merge remote branch 'immerda/master'. Conflicts: README files/preferences templates/Debian/sources.list.deb-src.erb templates/Debian/sources.list.volatile.erb templates/Ubuntu/sources.list.backports.erb templates/Ubuntu/sources.list.deb-src.erb --- 10c7939f65ae8e2f771d83d54c4ba56108bc509e diff --cc README index 12ec3fa,355ee72..2cbf246 --- a/README +++ b/README @@@ -9,30 -9,18 +9,23 @@@ package download current backports.debian.org is added. - dselect is switched to expert mode to suppress superfluous help screens. - - sources.list and apt_preferences are managed. More recent Debian - releases are pinned to very low values by default to prevent - accidental upgrades. -/etc/apt/sources.list and /etc/apt/preferences are managed. Testing and -unstable are pinned to very low values by default to prevent accidental -upgrades. ++/etc/apt/sources.list and /etc/apt/preferences are managed. More ++recent Debian releases are pinned to very low values by default to ++prevent accidental upgrades. -This module needs lsb-release installed. +Ubuntu support is lagging behind but not absent either. -By default, this module sets the cofiguration option DSelect::Clean to 'auto'. +This module needs: + +- lsb-release installed +- the common module: git://labs.riseup.net/shared-common + ++By default, this module sets the configuration option DSelect::Clean to 'auto'. + It is the recommended value on normal hosts. On virtual servers, the + recommended value is 'pre-auto', since virtual servers are usually more + space-bound and have better recovery mechanisms via the host: - Variables - ========= - - $apt_clean - ---------- - Sets DSelect::Clean, defaults to 'auto' on normal hosts and 'pre-auto' - in vservers, since the latter are usually more space-bound and have - better recovery mechanisms via the host: - - From apt.conf(5), 0.7.2: + From apt.conf(5), 0.7.2: "Cache Clean mode; this value may be one of always, prompt, auto, pre-auto and never. always and prompt will remove all packages from the cache after upgrading, prompt (the default) does so @@@ -41,35 -29,73 +34,60 @@@ instance). pre-auto performs this action before downloading new packages." + To change the default setting for DSelect::Clean, you can create a file named + "03clean" in a 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) + + 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 + value can be set manually too, e.g. to enable forced upgrades. -$main_apt_source ----------------- - -If the default sources.list template (see next variable) suits your needs but -you simply need to change the URL to the apt source used, set this variable to -the URL that is desired. The default value for this variable is -"http://ftp.debian.org/debian/" for Debian and -"http://de.archive.ubuntu.com/ubuntu/" for Ubuntu. - -Here's an example for setting a local source near Montreal, Quebec, Canada: - - $apt_main_source = "ftp://debian.mirror.iweb.ca/debian/" - $custom_sources_list -------------------- - By default this module will use a basic apt/sources.list. - If you need to set more specific sources, e.g. for proxies, etc. you - can set this variable to the location of your sources.list template. - For example, setting the following variable before including this - class will pull in the templates/apt/sources.list file: - $custom_sources_list ='template("apt/sources.list")' - + -By default this module will use a basic apt/sources.list template with a -generic debian mirror. If you need to set more specific sources, e.g. changing -the sections included in the source or removing backports, etc. you can set ++By default this module will use a basic apt/sources.list template with ++a generic Debian mirror. If you need to set more specific sources, ++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: + + $custom_sources_list = template("site-apt/sources.list") + -$custom_preferences -------------------- +$custom_preferences +-------------------- - By default this module will use a basic apt/preferences file with - more recent releases pinned to very low values so that any package + -Since Debian stable'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 basic apt/preferences file with unstable and testing -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). ++Since Debian stable'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. You can set this - variable to pull in a customized apt/preferences template, for - example, setting the following variable before including this class - will pull in the templates/apt/preferences file: - $custom_preferences = 'template("apt/preferences")' ++unless you explicitly specify the version number. This file will be ++complemented with all of the preferences_snippet calls (see below). + -If you are not using the 'stable' branch or if the default preferences file -doesn't suit your needs, you can create a file named 'preferences' in a -site-apt module's files directory. You can also create a host-specific file: ++If the default preferences template doesn't suit your needs, you can ++create a file named 'preferences' in a site-apt module's files ++directory. You can also create a host-specific file: + + site-apt + - files/ + - server.domain.com/ + - preferences + preferences - Also, if you need the preferences file to be absent, set this variable to false: -You can set this variable to false before including this class will force the ++Setting this variable to false before including this class will force the + apt/preferences file to be absent: - $custom_preferences = false + $custom_preferences = false $custom_key_dir --------------- @@@ -76,78 -103,47 +95,105 @@@ If you have different apt-key files that you want to get added to your apt keyring, you can set this variable to a path in your fileserver where individual key files can be placed. If this is set and keys - exist there, this module will apt-key add each key + exist there, this module will 'apt-key add' each key. - $apt_unattended_upgrades - ------------------------ + $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. - If this variable is set to true apt::unattended_upgrades is included, - which will install the package unattended-upgrades and configure it to - daily upgrade the system. + 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 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 ======= -Most of the functionality is provided by the 'apt' class, but some -functionality is not inclulded by default. To use it, you must inlucde one of -the following classes: +apt +--- + - The apt class sets up all documented functionality but cron-apt. ++The apt class sets up most of the documented functionality. To use ++functionality that is not enabled by default, you must inlucde one of ++the following classes. + +apt::cron::download +------------------- + +This class sets up cron-apt so that it downloads upgradable packages, +does not actually do any upgrade and email when the output changes. + +apt::cron::dist-upgrade +----------------------- + +This class sets up cron-apt so that it dist-upgrades the system and +email when upgrades are performed. + apt::dselect + ------------ + + This class, when included, installs dselect and switches it to expert mode to + suppress superfluous help screens. + + 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). + + apt::unattended_upgrades + ------------------------ + + If this class is included, it will install the package 'unattended-upgrades' + and configure it to daily upgrade the system. + Defines ======= @@@ -210,10 -246,8 +296,10 @@@ Package { require => Exec[apt_updated] TODO ==== - Enable debian-archive-keyring handling for sarge, lenny and sid. + Currently this module updates the caches on every run. Running apt-get update is -an expensive operation and should be done only on schedule by using apticron. ++an expensive operation and should be done only on schedule by using ++apticron or cron-apt. + - Currently this module updates the caches on every run. Running dselect update is - a expensive operation and should be done only on schedule by using apticron. Sometimes -- especially when initially starting management or deploying new packages -- a immediate update is really needed to be able to install the right packages without errors. Thus a method should be devised to be able to specify diff --cc templates/Debian/sources.list.erb index 7fb9bdf,aa26415..f2e8fd8 --- a/templates/Debian/sources.list.erb +++ b/templates/Debian/sources.list.erb @@@ -1,63 -1,13 +1,63 @@@ - # This file is brought to you by puppet + # This file is managed by puppet # all local modifications will be overwritten -# basic <%= lsbdistcodename %> -deb <%= real_main_apt_source %> <%= lsbdistcodename %> main contrib non-free -# security suppport -<% if (lsbdistcodename == "sid" || lsbdistcodename == "unstable") -%> -# There is no security mirror for <%= lsbdistcodename %> +### Debian current: <%= codename %> + +# basic +deb <%= debian_url %> <%= codename %> <%= repos %> +<% if include_src then -%> +deb-src <%= debian_url %> <%= codename %> <%= repos %> +<% end -%> + +# security +<% if (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 %> +<% end -%> +<% end -%> + +# backports +<% 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 %> +<% end -%> +<% end -%> + +<% if use_volatile -%> +# volatile +<% if (release == "testing" || release == "unstable" || release == "experimental") -%> +# There is no volatile archive for <%= release %> +<% else -%> +deb <%= volatile_url %> <%= codename %>/volatile <%= repos %> +<% if include_src then -%> +deb-src <%= volatile_url %> <%= codename %>/volatile <%= repos %> +<% end -%> +<% end -%> +<% end -%> + +<% if use_next_release then -%> +### Debian next: <%= next_codename %> + +# basic +deb <%= debian_url %> <%= next_codename %> <%= repos %> +<% if include_src then -%> +deb-src <%= debian_url %> <%= next_codename %> <%= repos %> +<% end -%> + +# security +<% if (next_release == "unstable" || next_release == "experimental") -%> +# There is no security support for <%= next_release %> <% else -%> -deb http://security.debian.org/ <%= lsbdistcodename %>/updates main contrib non-free +deb <%= security_url %> <%= next_codename %>/updates <%= repos %> +<% if include_src then -%> +deb-src <%= security_url %> <%= next_codename %>/updates <%= repos %> +<% end -%> <% end -%> # backports