e2578c3b98
Currently, it's either we use the default source that's hardcoded in the sources.list template or we redefine entirely this template. Make it easier to just change the URL of the apt source while using the rest of the default template by adding a $main_apt_source variable. Signed-off-by: Gabriel Filion <lelutin@gmail.com>
105 lines
3.1 KiB
Puppet
105 lines
3.1 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 {
|
|
|
|
package { apt:
|
|
ensure => installed,
|
|
require => undef,
|
|
}
|
|
|
|
$real_main_apt_source = $main_apt_source ? {
|
|
'' => $operatingsystem ? {
|
|
"Ubuntu" => "http://de.archive.ubuntu.com/ubuntu/",
|
|
default => "http://ftp.debian.org/debian/",
|
|
},
|
|
default => $main_apt_source,
|
|
}
|
|
|
|
include lsb
|
|
config_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
|
|
},
|
|
require => Package['lsb'];
|
|
}
|
|
|
|
# 01autoremove already present by default
|
|
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 { "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: {
|
|
include apt::preferences
|
|
}
|
|
}
|
|
|
|
if $apt_unattended_upgrades {
|
|
include apt::unattended_upgrades
|
|
}
|
|
|
|
# watch apt.conf.d
|
|
file { "/etc/apt/apt.conf.d": ensure => directory, checksum => mtime; }
|
|
|
|
exec {
|
|
# "&& sleep 1" is workaround for older(?) clients
|
|
'refresh_apt':
|
|
command => '/usr/bin/apt-get update && sleep 1',
|
|
refreshonly => true,
|
|
subscribe => File['/etc/apt/sources.list',
|
|
'/etc/apt/apt.conf.d',
|
|
'/etc/apt/preferences'];
|
|
'update_apt':
|
|
command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean',
|
|
require => File['/etc/apt/sources.list',
|
|
'/etc/apt/preferences'],
|
|
loglevel => info,
|
|
# Another Semaphor for all packages to reference
|
|
alias => "apt_updated";
|
|
}
|
|
|
|
## 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 }
|
|
|
|
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",
|
|
recurse => true,
|
|
mode => 0755, owner => root, group => root,
|
|
}
|
|
exec { "find ${apt_base_dir}/keys.d -type f -exec apt-key add '{}' \\; && apt-get update":
|
|
alias => "custom_keys",
|
|
subscribe => File["${apt_base_dir}/keys.d"],
|
|
refreshonly => true,
|
|
before => Concatenated_file[apt_config];
|
|
}
|
|
}
|
|
|
|
# workaround for preseeded_package component
|
|
file { [ "/var/cache", "/var/cache/local", "/var/cache/local/preseeding" ]: ensure => directory }
|
|
}
|