# Specifies a keyserver to provide the GPG key. Valid options: a string containing a domain name or a full URL (http://, https://, or
# hkp://).
#
+# @param key_options
+# Specifies the default options for apt::key resources.
+#
# @param ppa_options
# Supplies options to be passed to the `add-apt-repository` command.
#
# @param config_files
# A hash made up of the various configuration files used by Apt.
#
+# @param sources_list_force
+# Specifies whether to perform force purge or delete. Default false.
+#
class apt (
Hash $update_defaults = $apt::params::update_defaults,
Hash $purge_defaults = $apt::params::purge_defaults,
Hash $include_defaults = $apt::params::include_defaults,
String $provider = $apt::params::provider,
String $keyserver = $apt::params::keyserver,
+ Optional[String] $key_options = $apt::params::key_options,
Optional[String] $ppa_options = $apt::params::ppa_options,
Optional[String] $ppa_package = $apt::params::ppa_package,
Optional[Hash] $backports = $apt::params::backports,
String $conf_d = $apt::params::conf_d,
String $preferences = $apt::params::preferences,
String $preferences_d = $apt::params::preferences_d,
+ String $apt_conf_d = $apt::params::apt_conf_d,
Hash $config_files = $apt::params::config_files,
- Hash $source_key_defaults = $apt::params::source_key_defaults,
+ Boolean $sources_list_force = $apt::params::sources_list_force,
+
+ Hash $source_key_defaults = {
+ 'server' => $keyserver,
+ 'options' => undef,
+ 'content' => undef,
+ 'source' => undef,
+ }
+
) inherits apt::params {
- if $facts['osfamily'] != 'Debian' {
- fail(translate('This module only works on Debian or derivatives like Ubuntu'))
+ if $facts['os']['family'] != 'Debian' {
+ fail('This module only works on Debian or derivatives like Ubuntu')
}
if $update['frequency'] {
if $purge['preferences.d'] {
assert_type(Boolean, $purge['preferences.d'])
}
+ if $sources_list_force {
+ assert_type(Boolean, $sources_list_force)
+ }
+ if $purge['apt.conf.d'] {
+ assert_type(Boolean, $purge['apt.conf.d'])
+ }
$_purge = merge($::apt::purge_defaults, $purge)
$_proxy = merge($apt::proxy_defaults, $proxy)
}
}
- $sources_list_content = $_purge['sources.list'] ? {
- true => "# Repos managed by puppet.\n",
- default => undef,
+ if $sources_list_force {
+ $sources_list_ensure = $_purge['sources.list'] ? {
+ true => absent,
+ default => file,
+ }
+ $sources_list_content = $_purge['sources.list'] ? {
+ true => nil,
+ default => undef,
+ }
}
+ else
+ {
+ $sources_list_ensure = $_purge['sources.list'] ? {
+ true => file,
+ default => file,
+ }
+ $sources_list_content = $_purge['sources.list'] ? {
+ true => "# Repos managed by puppet.\n",
+ default => undef,
+ }
+ }
$preferences_ensure = $_purge['preferences'] ? {
true => absent,
}
file { 'sources.list':
- ensure => file,
+ ensure => $sources_list_ensure,
path => $::apt::sources_list,
owner => root,
group => root,
- mode => '0644',
content => $sources_list_content,
notify => Class['apt::update'],
}
path => $::apt::sources_list_d,
owner => root,
group => root,
- mode => '0644',
purge => $_purge['sources.list.d'],
recurse => $_purge['sources.list.d'],
notify => Class['apt::update'],
path => $::apt::preferences,
owner => root,
group => root,
- mode => '0644',
notify => Class['apt::update'],
}
path => $::apt::preferences_d,
owner => root,
group => root,
- mode => '0644',
purge => $_purge['preferences.d'],
recurse => $_purge['preferences.d'],
notify => Class['apt::update'],
}
+ file { 'apt.conf.d':
+ ensure => directory,
+ path => $::apt::apt_conf_d,
+ owner => root,
+ group => root,
+ purge => $_purge['apt.conf.d'],
+ recurse => $_purge['apt.conf.d'],
+ notify => Class['apt::update'],
+ }
+
if $confs {
create_resources('apt::conf', $confs)
}
owner => $auth_conf_owner,
group => 'root',
mode => '0600',
- content => "${confheadertmp}${auth_conf_tmp}",
+ content => Sensitive("${confheadertmp}${auth_conf_tmp}"),
notify => Class['apt::update'],
}
}
}
# required for adding GPG keys on Debian 9 (and derivatives)
- ensure_packages(['dirmngr'])
+ ensure_packages(['gnupg'])
}