#
# This is stored config by a client, collected on the director
#
-# @param port_fd port that this node's bacula-fd is listening on
-# @param client The name of the client (relevant for device names, media type names, etc.)
+# @param port_fd port that this node's bacula-fd is listening on
+# @param client name of the client (relevant for device names, media type names, etc.)
+# @param client_name bacula client name
+# @param client_secret shared secret between director and client
+# @param file_retention how long to keep information about which files are in which volumes/jobs
+# @param job_retention how long to keep job records
define bacula::director::client (
- Integer $port_fd = 9102,
- String $client = $name,
+ Integer $port_fd,
+ Stdlib::Host $client = $name,
+ String $client_name,
+ String $client_secret,
+ String $file_retention = '30 days', # XXX remove defaults
+ String $job_retention = '100 days', # XXX remove defaults
) {
- include bacula
+ include bacula::director
- $bacula_pool_name = $bacula::bacula_pool_name
- $bacula_filestor_name = $bacula::bacula_filestor_name
- $bacula_filestor_device = $bacula::bacula_filestor_device
- $bacula_storage_address = $bacula::bacula_storage_address
- $bacula_storage_port = $bacula::bacula_storage_port
- $bacula_storage_secret = $bacula::bacula_storage_secret
-
- $bacula_ca_path = $bacula::bacula_ca_path
+ $bacula_ca_path = $bacula::bacula_ca_path
$bacula_ssl_client_cert = $bacula::bacula_ssl_client_cert
$bacula_ssl_client_key = $bacula::bacula_ssl_client_key
- $bacula_client_name = "${client}-fd"
- $bacula_client_secret = hkdf('/etc/puppet/secret', "bacula-fd-${client}")
+ # we define this in both bacula::director::client_from_storage and
+ # bacula::director::client and it needs to match.
+ $pool_name = "${bacula::director::pool_name}-${client}"
file { "/etc/bacula/conf.d/${client}.conf":
content => template('bacula/director/dir-per-client.erb'),
group => bacula,
notify => Exec['bacula-director reload']
}
-
- file { "/etc/bacula/storages-list.d/${client}.storage":
- content => "${bacula::bacula_filestor_name}-${client}\n",
- mode => '0440',
- group => bacula,
- notify => Exec['bacula-director reload']
- }
}