Add apt_conf_snippet and use it where possible

With the new define, it's easy to add an apt.conf snippet in apt.conf.d
It accepts either 'sources' to get a static file or 'content' to define
content inline or with the help of a template.

Put it to use where we create files in apt.conf.d

Finally, fix the dependancy to the apt_config file (however, I don't see
the need for this dependancy)

Signed-off-by: Gabriel Filion <lelutin@gmail.com>
This commit is contained in:
Gabriel Filion 2010-10-24 09:07:34 -04:00
parent e22029433a
commit ac76a5d52d
7 changed files with 51 additions and 17 deletions

1
files/02show_upgraded Normal file
View file

@ -0,0 +1 @@
APT::Get::Show-Upgraded true;

1
files/03clean Normal file
View file

@ -0,0 +1 @@
DSelect::Clean auto;

View file

@ -0,0 +1,29 @@
define apt::apt_conf_snippet(
$ensure = 'present',
$source = '',
$content = undef
){
if $source == '' and $content == undef {
fail("One of \$source or \$content must be specified for apt_conf_snippet ${name}")
}
if $source != '' and $content != undef {
fail("Only one of \$source or \$content must specified for apt_conf_snippet ${name}")
}
if $source {
file { "/etc/apt/apt.conf.d/${name}":
ensure => $ensure,
source => $source,
notify => Exec["refresh_apt"],
owner => root, group => 0, mode => 0600;
}
}
else {
file { "/etc/apt/apt.conf.d/${name}":
ensure => $ensure,
content => $content,
notify => Exec["refresh_apt"],
owner => root, group => 0, mode => 0600;
}
}
}

View file

@ -23,7 +23,8 @@ class apt {
'': {
config_file {
# include main, security and backports
# additional sources could be included via an array
# additional sources should be included via the custom_sources_template
# define
"/etc/apt/sources.list":
content => template( "apt/$operatingsystem/sources.list.erb"),
require => Package['lsb'];
@ -37,11 +38,17 @@ class apt {
}
}
config_file {
# little default settings which keep the system sane
"/etc/apt/apt.conf.d/from_puppet":
content => "APT::Get::Show-Upgraded true;\nDSelect::Clean $real_apt_clean;\n",
before => Concatenated_file['/etc/apt/preferences'];
# 01autoremove already present by default
apt_conf_snippet{ "02show_upgraded":
source => ["puppet:///modules/site-apt/${fqdn}/02show_upgraded",
"puppet:///modules/site-apt/02show_upgraded",
"puppet:///modules/apt/02show_upgraded"]
}
apt_conf_snippet{ "03clean":
source => ["puppet:///modules/site-apt/${fqdn}/03clean",
"puppet:///modules/site-apt/03clean",
"puppet:///modules/apt/03clean"]
}
case $custom_preferences {

View file

@ -10,9 +10,7 @@ class apt::proxy-client {
default => $apt_proxy_port
}
file { "/etc/apt/apt.conf.d/20proxy":
ensure => present,
content => "Acquire::http { Proxy \"http://$real_apt_proxy:$real_apt_proxy_port\"; };\n",
owner => root, group => 0, mode => 0644;
apt_conf_snippet { "20proxy":
content => template("apt/20proxy.erb"),
}
}

View file

@ -4,14 +4,11 @@ class apt::unattended_upgrades {
require => undef,
}
config_file {
"/etc/apt/apt.conf.d/50unattended-upgrades":
source => ["puppet:///modules/site-apt/50unattended-upgrades",
"puppet:///modules/apt/50unattended-upgrades" ],
apt_conf_snippet { "50unattended-upgrades":
source => ["puppet:///modules/site-apt/50unattended-upgrades",
"puppet:///modules/apt/50unattended-upgrades" ],
# err: Could not run Puppet configuration client: Could not find dependent Config_file[apt_config] for Config_file[/etc/apt/apt.conf.d/50unattended-upgrades] at /etc/puppet/modules/apt/manifests/unattended_upgrades.pp:14
#before => Config_file[apt_config],
before => Concatenated_file[apt_config],
require => Package['unattended-upgrades'],
}
}

1
templates/20proxy.erb Normal file
View file

@ -0,0 +1 @@
Acquire::http { Proxy "http://<%= real_apt_proxy %>:<%= real_apt_proxy_port %>"; };