+# Bacula fd config: director snippet
+#
+# Each/The director exports this class to be collected by each fd.
+#
+# @param director_name bacula name of the dir instance
+# @param director_address address of this dir instance that other instances should connect to (dns name)
+define bacula::client::director(
+ String $director_name,
+ Stdlib::Host $director_address,
+) {
+ include bacula::client
+
+ $dir_client_secret = hkdf('/etc/puppet/secret', "bacula::director<->fd::${director_address}<->${::fqdn}")
+
+ @@bacula::director::client { $bacula::client::client:
+ port_fd => $bacula::client::port_fd,
+ client => $bacula::client::client,
+ client_name => $bacula::client::client_name,
+ client_secret => $dir_client_secret,
+ tag => "bacula::to-director::${director_address}",
+ }
+
+ file {
+ "/etc/bacula/storage-conf.d/Dir_${director_address}.conf":
+ content => template('bacula/storage/sd-per-director.conf.erb'),
+ mode => '0440',
+ group => bacula,
+ notify => Exec['bacula-sd restart-when-idle'],
+ ;
+ }
+}