diff --git a/manifests/client.pp b/manifests/client.pp index 6bad28f..67efac5 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, + 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 @@ -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..b144cf8 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -1,15 +1,16 @@ class amanda::server ( - 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 @@ -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', diff --git a/metadata.json b/metadata.json index 30d9a67..35f00eb 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.1.0 < 8.0.0" } ] }