# @param port_sd port for the sd to listen on
# @param storage_name bacula name of this sd instance
# @param storage_address address of this sd instance that other instances should connect to (dns name)
+# @param has_ipv4 SD should listen on ipv4
+# @param has_ipv6 SD should listen on ipv6
class bacula::storage (
String $backup_path = '/srv/bacula',
String $filestor_device = 'FileStorage',
Integer $port_sd = 9103,
String $storage_name = "${::fqdn}-sd",
Stdlib::Host $storage_address = $::fqdn,
+ 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 },
) inherits bacula {
$storage_secret = hkdf('/etc/puppet/secret', "bacula-sd-${::fqdn}")
# bacula, on Debian 9 (stretch), does not resolve a single name
# to both v4 and v6 addresses. Se we can't just say
# ip = { addr = <hostname> }. Boo.
- <%- if scope.lookupvar('deprecated::nodeinfo')['misc']['has_v4_ldap'] -%>
+ <%- if @has_ipv4 -%>
ipv4 = {
# use the hostname rather than the IP address from LDAP,
# as /etc/hosts might have a better answer in case of natted hosts.
port = <%= @port_sd %>
}
<%- end -%>
- <%- if scope.lookupvar('deprecated::nodeinfo')['misc']['has_v6_ldap'] -%>
+ <%- if @has_ipv6 -%>
ipv6 = {
addr = <%= @storage_address %>
port = <%= @port_sd %>