2942cd0dd8
Managing requirements for installing the lsb package has proven over time to make no sense. The best approach to this is to require lsb-release to be installed alongside puppet, since otherwise there are so much facts that get no value during the run and you end up needing to run puppet twice to get the real end result. Also, since we're not including a class that is actually installing the 'lsb' package, that require line makes it so that including the apt module doesn't work, and there's no documentation in the README about needing to provide a package{'lsb':} resource with the apt class. Because of all that, it makes more sense to just get rid of that require line and mark lsb as a pre-requirement in the README file.
143 lines
4.3 KiB
Puppet
143 lines
4.3 KiB
Puppet
# apt.pp - common components and defaults for handling apt
|
|
# Copyright (C) 2008 Micah Anerson <micah@riseup.net>
|
|
# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
|
|
# See LICENSE for the full license granted to you.
|
|
|
|
class apt(
|
|
$use_lts = $apt::params::use_lts,
|
|
$use_volatile = $apt::params::use_volatile,
|
|
$use_backports = $apt::params::use_backports,
|
|
$include_src = $apt::params::include_src,
|
|
$use_next_release = $apt::params::use_next_release,
|
|
$debian_url = $apt::params::debian_url,
|
|
$security_url = $apt::params::security_url,
|
|
$backports_url = $apt::params::backports_url,
|
|
$lts_url = $apt::params::lts_url,
|
|
$volatile_url = $apt::params::volatile_url,
|
|
$ubuntu_url = $apt::params::ubuntu_url,
|
|
$repos = $apt::params::repos,
|
|
$custom_preferences = $apt::params::custom_preferences,
|
|
$custom_sources_list = '',
|
|
$disable_update = $apt::params::disable_update,
|
|
$custom_key_dir = $apt::params::custom_key_dir
|
|
) inherits apt::params {
|
|
case $::operatingsystem {
|
|
'debian': {
|
|
$real_repos = $repos ? {
|
|
'auto' => 'main contrib non-free',
|
|
default => $repos,
|
|
}
|
|
}
|
|
'ubuntu': {
|
|
$real_repos = $repos ? {
|
|
'auto' => 'main restricted universe multiverse',
|
|
default => $repos,
|
|
}
|
|
}
|
|
}
|
|
|
|
package { 'apt':
|
|
ensure => installed,
|
|
require => undef,
|
|
}
|
|
|
|
$sources_content = $custom_sources_list ? {
|
|
'' => template( "apt/${::operatingsystem}/sources.list.erb"),
|
|
default => $custom_sources_list
|
|
}
|
|
file {
|
|
# include main and security
|
|
# additional sources should be included via the apt::sources_list define
|
|
'/etc/apt/sources.list':
|
|
content => $sources_content,
|
|
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' ]
|
|
}
|
|
|
|
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' ]
|
|
}
|
|
}
|
|
|
|
case $custom_preferences {
|
|
false: {
|
|
include apt::preferences::absent
|
|
}
|
|
default: {
|
|
# When squeeze becomes the stable branch, transform this file's header
|
|
# into a preferences.d file
|
|
include apt::preferences
|
|
}
|
|
}
|
|
|
|
include apt::dot_d_directories
|
|
|
|
## This package should really always be current
|
|
package { 'debian-archive-keyring': ensure => latest }
|
|
|
|
# backports uses the normal archive key now
|
|
package { 'debian-backports-keyring': ensure => absent }
|
|
|
|
if ($use_backports and !($::debian_release in ['testing', 'unstable', 'experimental'])) {
|
|
apt::sources_list {
|
|
'backports':
|
|
content => "deb $backports_url ${::debian_codename}-backports ${apt::real_repos}",
|
|
}
|
|
if $include_src {
|
|
apt::sources_list {
|
|
'backports-src':
|
|
content => "deb-src $backports_url ${::debian_codename}-backports ${apt::real_repos}",
|
|
}
|
|
}
|
|
}
|
|
|
|
include common::moduledir
|
|
common::module_dir { 'apt': }
|
|
$apt_base_dir = "${common::moduledir::module_dir_path}/apt"
|
|
|
|
if $custom_key_dir {
|
|
file { "${apt_base_dir}/keys.d":
|
|
source => $custom_key_dir,
|
|
recurse => true,
|
|
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"],
|
|
refreshonly => true,
|
|
}
|
|
if $custom_preferences != false {
|
|
Exec['custom_keys'] {
|
|
before => [ Exec[refresh_apt], File['apt_config'] ]
|
|
}
|
|
} else {
|
|
Exec['custom_keys'] {
|
|
before => Exec[refresh_apt]
|
|
}
|
|
}
|
|
}
|
|
|
|
# workaround for preseeded_package component
|
|
file { [ '/var/cache', '/var/cache/local', '/var/cache/local/preseeding' ]: ensure => directory }
|
|
}
|