From cb4132d9bf7d27a4981c365fd0ac5ddca5bd4455 Mon Sep 17 00:00:00 2001 From: Mark Ruys Date: Fri, 5 Aug 2022 10:21:04 +0200 Subject: [PATCH 1/4] Support puppetlabs/concat 7.* and hence drop support for Puppet 5 --- metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index 30d9a67..0a6c274 100644 --- a/metadata.json +++ b/metadata.json @@ -14,7 +14,7 @@ "dependencies": [ { "name": "puppetlabs/concat", - "version_requirement": ">= 4.1.0 < 7.0.0" + "version_requirement": ">= 4.1.0 < 8.0.0" }, { "name": "puppetlabs/stdlib", @@ -28,7 +28,7 @@ "requirements": [ { "name": "puppet", - "version_requirement": ">= 5.5.8 < 7.0.0" + "version_requirement": ">= 6.0.0 < 7.0.0" } ] } From e2f81b92862abac113a990205c3cb4ab59376c58 Mon Sep 17 00:00:00 2001 From: Mark Ruys Date: Fri, 5 Aug 2022 10:21:44 +0200 Subject: [PATCH 2/4] Add support for Puppet 7 --- metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index 0a6c274..3d8f5c2 100644 --- a/metadata.json +++ b/metadata.json @@ -28,7 +28,7 @@ "requirements": [ { "name": "puppet", - "version_requirement": ">= 6.0.0 < 7.0.0" + "version_requirement": ">= 6.0.0 < 8.0.0" } ] } From 6a7231eda1594db166527d150c88a5642854f342 Mon Sep 17 00:00:00 2001 From: Mark Ruys Date: Fri, 5 Aug 2022 14:52:04 +0200 Subject: [PATCH 3/4] Clean up resouces when ensure is set to absent Note that purging is only partially implemented. --- manifests/client.pp | 12 +++++++----- manifests/server.pp | 4 +++- manifests/virtual.pp | 17 +++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/manifests/client.pp b/manifests/client.pp index 6bad28f..848b924 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -1,8 +1,9 @@ class amanda::client ( - $remote_user = undef, - $server = "backup.${facts['networking']['domain']}", - $xinetd = true, - $export_host_keys = false, + String $ensure = 'present', + Optional[String] $remote_user = undef, + String $server = "backup.${facts['networking']['domain']}", + Boolean $xinetd = true, + Boolean $export_host_keys = false, ) { include amanda include amanda::params @@ -28,6 +29,7 @@ } amanda::amandahosts { "amanda::client::amdump_${remote_user_real}@${server}": + ensure => $ensure, content => "${server} ${remote_user_real} amdump", order => '00'; } @@ -35,7 +37,7 @@ if ($export_host_keys) { ## export our ssh host keys @@sshkey { "${::clientcert}_amanda": # lint:ignore:legacy_facts - ensure => present, + ensure => $ensure, host_aliases => [$facts['networking']['fqdn'],$facts['networking']['ip']], key => $::sshrsakey, # lint:ignore:legacy_facts type => 'ssh-rsa', diff --git a/manifests/server.pp b/manifests/server.pp index 72b8bb1..0b2d821 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -1,4 +1,5 @@ class amanda::server ( + String $ensure = 'present', Array[String] $configs = [], Optional[Boolean] $configs_directory = undef, Boolean $manage_configs_directory = true, @@ -50,12 +51,13 @@ } amanda::amandahosts { 'amanda::server::server_root@localhost': + ensure => $ensure, content => 'localhost root amindexd amidxtaped', order => '10'; } amanda::config { $configs: - ensure => present, + ensure => $ensure, manage_configs_directory => $manage_configs_directory, configs_directory => $configs_directory, manage_configs_source => $manage_configs_source, diff --git a/manifests/virtual.pp b/manifests/virtual.pp index 3dcae43..561fb74 100644 --- a/manifests/virtual.pp +++ b/manifests/virtual.pp @@ -1,6 +1,17 @@ class amanda::virtual { include amanda::params + if $amanda::client::ensure == 'absent' { + $client_ensure = 'absent' + } else { + $client_ensure = 'present' + } + if $amanda::server::ensure == 'absent' { + $server_ensure = 'absent' + } else { + $server_ensure = 'present' + } + case $facts['os']['name'] { 'Solaris': { include amanda::virtual::solaris } default: {} # do nothing @@ -72,10 +83,12 @@ } } else { @package { 'amanda/client': + ensure => $client_ensure, name => $amanda::params::client_package, before => $post_package, } @package { 'amanda/server': + ensure => $server_ensure, name => $amanda::params::server_package, before => $post_package, } @@ -96,6 +109,7 @@ } @xinetd::service { 'amanda_udp': + ensure => $client_ensure, service_name => 'amanda', socket_type => 'dgram', protocol => 'udp', @@ -106,6 +120,7 @@ server_args => "-auth=bsd ${amanda::params::client_daemons}", } @xinetd::service { 'amanda_tcp': + ensure => $client_ensure, service_name => 'amanda', socket_type => 'stream', protocol => 'tcp', @@ -116,6 +131,7 @@ server_args => "-auth=bsdtcp ${amanda::params::client_daemons}", } @xinetd::service { 'amanda_indexd': + ensure => $server_ensure, service_name => 'amandaidx', socket_type => 'stream', protocol => 'tcp', @@ -128,6 +144,7 @@ server_args => "-auth=bsdtcp ${amanda::params::server_daemons}", } @xinetd::service { 'amanda_taped': + ensure => $server_ensure, service_name => 'amidxtape', socket_type => 'stream', protocol => 'tcp', From 1e7248eb16d7095a3809ad6036f7eb529ed47956 Mon Sep 17 00:00:00 2001 From: Mark Ruys Date: Thu, 18 Aug 2022 09:07:02 +0200 Subject: [PATCH 4/4] Up minimal Puppet version to 6.1.0; tighten parameter types --- manifests/client.pp | 10 +++++----- manifests/server.pp | 24 ++++++++++++------------ metadata.json | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/manifests/client.pp b/manifests/client.pp index 848b924..67efac5 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -1,9 +1,9 @@ class amanda::client ( - String $ensure = 'present', - Optional[String] $remote_user = undef, - String $server = "backup.${facts['networking']['domain']}", - Boolean $xinetd = true, - Boolean $export_host_keys = false, + Enum['present', 'absent'] $ensure = 'present', + Optional[String] $remote_user = undef, + String[1] $server = "backup.${facts['networking']['domain']}", + Boolean $xinetd = true, + Boolean $export_host_keys = false, ) { include amanda include amanda::params diff --git a/manifests/server.pp b/manifests/server.pp index 0b2d821..b144cf8 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -1,16 +1,16 @@ class amanda::server ( - String $ensure = 'present', - Array[String] $configs = [], - Optional[Boolean] $configs_directory = undef, - Boolean $manage_configs_directory = true, - Boolean $manage_configs_source = true, - String $configs_source = 'modules/amanda/server/example', - String $mode = '0644', - Optional[Boolean] $group = undef, - Optional[Boolean] $owner = undef, - Boolean $xinetd = true, - Boolean $manage_dle = false, - Boolean $export_host_keys = false, + Enum['present', 'absent'] $ensure = 'present', + Array[String] $configs = [], + Optional[Boolean] $configs_directory = undef, + Boolean $manage_configs_directory = true, + Boolean $manage_configs_source = true, + String $configs_source = 'modules/amanda/server/example', + String $mode = '0644', + Optional[Boolean] $group = undef, + Optional[Boolean] $owner = undef, + Boolean $xinetd = true, + Boolean $manage_dle = false, + Boolean $export_host_keys = false, ) { include amanda include amanda::params diff --git a/metadata.json b/metadata.json index 3d8f5c2..35f00eb 100644 --- a/metadata.json +++ b/metadata.json @@ -28,7 +28,7 @@ "requirements": [ { "name": "puppet", - "version_requirement": ">= 6.0.0 < 8.0.0" + "version_requirement": ">= 6.1.0 < 8.0.0" } ] }