# bacula class -- defines all the variables we care about in our bacula deployment
#
# @param public_addresses this host's public IP addresses. The ones it connects out from and is reachable from outsite.
+# @param has_ipv4 daemons should listen on ipv4
+# @param has_ipv6 daemons should listen on ipv6
class bacula (
String $bacula_operator_email = 'bacula-reports@admin.debian.org',
- String $bacula_director_name = 'debian-dir',
- String $bacula_storage_name = 'debian-sd',
- String $bacula_client_name = "${::fqdn}-fd",
- String $bacula_monitor_name = 'debian-mon',
- String $bacula_filestor_name = 'File',
- String $bacula_filestor_device = 'FileStorage',
- String $bacula_pool_name = 'debian',
-
- String $bacula_director_address = 'dinis.debian.org',
- Integer $bacula_director_port = 9101,
- String $bacula_storage_address = 'storace.debian.org',
- Integer $bacula_storage_port = 9103,
-
- String $bacula_director_secret = hkdf('/etc/puppet/secret', "bacula-dir-${::hostname}"),
- String $bacula_db_secret = hkdf('/etc/puppet/secret', "bacula-db-${::hostname}"),
- String $bacula_storage_secret = hkdf('/etc/puppet/secret', "bacula-sd-${bacula_storage_name}"),
- String $bacula_client_secret = hkdf('/etc/puppet/secret', "bacula-fd-${::fqdn}"),
- String $bacula_monitor_secret = hkdf('/etc/puppet/secret', "bacula-monitor-${bacula_director_name}"),
String $bacula_ca_path = '/etc/ssl/debian/certs/ca.crt',
String $bacula_ssl_client_cert = '/etc/ssl/debian/certs/thishost.crt',
String $tag_bacula_dsa_client_list = 'bacula::dsa::clientlist',
Array[Stdlib::IP::Address] $public_addresses = $base::public_addresses,
+
+ Boolean $has_ipv4 = $bacula::public_addresses.any |$addr| { $addr =~ Stdlib::IP::Address::V4 },
+ Boolean $has_ipv6 = $bacula::public_addresses.any |$addr| { $addr =~ Stdlib::IP::Address::V6 },
) {
file { '/usr/local/sbin/bacula-idle-restart':
mode => '0555',