module-apt/manifests/apt_conf.pp
varac f16a0727dc Install unattended-upgrades after Exec[refresh_apt]
Before, including apt::unattended_upgrades on a host without
the unattended-upgrades package would fail on the first run,
because the module tries to install the package before apt is
finally configured.
This commit does:

- introduce the option $refresh_apt for apt::apt_conf
  (Defaults to true). Can be used to not trigger Exec['refresh_apt']
- install the unattended-upgrades package after a final
  Exec['refresh_apt']. To not run into a loop, it calls
  Apt_conf['50unattended-upgrades'] with the option
  refresh_apt => false, which is also not needed for the configuration
2013-02-01 15:52:29 +01:00

45 lines
994 B
Puppet

define apt::apt_conf(
$ensure = 'present',
$source = '',
$content = undef,
$refresh_apt = true )
{
if $source == '' and $content == undef {
fail("One of \$source or \$content must be specified for apt_conf ${name}")
}
if $source != '' and $content != undef {
fail("Only one of \$source or \$content must specified for apt_conf ${name}")
}
include apt::dot_d_directories
# One would expect the 'file' resource on sources.list.d to trigger an
# apt-get update when files are added or modified in the directory, but it
# apparently doesn't.
file { "/etc/apt/apt.conf.d/${name}":
ensure => $ensure,
owner => root,
group => 0,
mode => '0644',
}
if $source {
File["/etc/apt/apt.conf.d/${name}"] {
source => $source,
}
}
else {
File["/etc/apt/apt.conf.d/${name}"] {
content => $content,
}
}
if $refresh_apt {
File["/etc/apt/apt.conf.d/${name}"] {
notify => Exec['refresh_apt'],
}
}
}