Refactor: manage .d directories when using sources_list and apt_conf
The .d directories are only managed by the main 'apt' class. However, both 'sources_list' and 'apt_conf' defines depend on those directories. So in practice, the defines have an implicit need for those directories to be somehow managed. Let's turn this into an explicit relation, and include the directories in the defines. This makes it possible to use both defines without having to include the main 'apt' class. (maybe when using puppet apply?) Signed-off-by: Gabriel Filion <lelutin@gmail.com>
This commit is contained in:
parent
66433e665e
commit
4d0ddd0057
4 changed files with 27 additions and 15 deletions
|
@ -12,6 +12,8 @@ define apt::apt_conf(
|
|||
fail("Only one of \$source or \$content must specified for apt_conf ${name}")
|
||||
}
|
||||
|
||||
include apt::dot_d_directories
|
||||
|
||||
file { "/etc/apt/apt.conf.d/${name}":
|
||||
ensure => $ensure,
|
||||
notify => Exec["refresh_apt"],
|
||||
|
|
22
manifests/dot_d_directories.pp
Normal file
22
manifests/dot_d_directories.pp
Normal file
|
@ -0,0 +1,22 @@
|
|||
class apt::dot_d_directories {
|
||||
|
||||
# watch .d directories and ensure they are present
|
||||
file {
|
||||
"/etc/apt/apt.conf.d":
|
||||
ensure => directory,
|
||||
checksum => mtime,
|
||||
notify => Exec['refresh_apt'];
|
||||
"/etc/apt/sources.list.d":
|
||||
ensure => directory,
|
||||
checksum => mtime,
|
||||
notify => Exec['refresh_apt'];
|
||||
}
|
||||
|
||||
exec {
|
||||
# "&& sleep 1" is workaround for older(?) clients
|
||||
'refresh_apt':
|
||||
command => '/usr/bin/apt-get update && sleep 1',
|
||||
refreshonly => true,
|
||||
}
|
||||
|
||||
}
|
|
@ -128,21 +128,7 @@ class apt {
|
|||
require => [ Apt_conf['02show_upgraded'], Apt_conf['03clean'] ];
|
||||
}
|
||||
|
||||
# watch .d directories and ensure they are present
|
||||
file { "/etc/apt/apt.conf.d": ensure => directory, checksum => mtime; }
|
||||
file { "/etc/apt/sources.list.d":
|
||||
ensure => directory,
|
||||
checksum => mtime,
|
||||
notify => Exec['refresh_apt'],
|
||||
}
|
||||
|
||||
exec {
|
||||
# "&& sleep 1" is workaround for older(?) clients
|
||||
'refresh_apt':
|
||||
command => '/usr/bin/apt-get update && sleep 1',
|
||||
refreshonly => true,
|
||||
subscribe => [ File['/etc/apt/apt.conf.d'], Config_file['/etc/apt/sources.list'] ];
|
||||
}
|
||||
include apt::dot_d_directories
|
||||
|
||||
## This package should really always be current
|
||||
package { "debian-archive-keyring": ensure => latest }
|
||||
|
|
|
@ -11,6 +11,8 @@ define apt::sources_list (
|
|||
fail("Only one of \$source or \$content must specified for apt_sources_snippet ${name}")
|
||||
}
|
||||
|
||||
include apt::dot_d_directories
|
||||
|
||||
file { "/etc/apt/sources.list.d/${name}":
|
||||
ensure => $ensure,
|
||||
owner => root, group => 0, mode => 0644;
|
||||
|
|
Loading…
Reference in a new issue