Puppet Class: bareos::director::director

Defined in:
manifests/director/director.pp

Overview

Class: bareos::director::director

To define the Director’s name and its access password used for authenticating the Console program. Only a single Director resource definition may appear in the Director’s configuration file.

Parameters

ensure

present or absent the config file.

absolute_job_timeout

Absolute Job Timeout

Bareos Datatype: pint32 Bareos Default: Not set Required: false

audit_events

Audit Events

May be specified as Array. Bareos Datatype: audit_command_list Bareos Default: Not set Required: false

auditing

Auditing

Bareos Datatype: boolean Bareos Default: false Required: false

backend_directory

Backend Directory

May be specified as Array. Bareos Datatype: directory_list Bareos Default: /usr/lib/bareos/backends Required: false

description

Description

Bareos Datatype: string Bareos Default: Not set Required: false

dir_address

Dir Address

Bareos Datatype: address Bareos Default: 9101 Required: false

dir_addresses

Dir Addresses

Bareos Datatype: addresses Bareos Default: 9101 Required: false

dir_port

Dir Port

Bareos Datatype: port Bareos Default: 9101 Required: false

dir_source_address

Dir Source Address

Bareos Datatype: address Bareos Default: 0 Required: false

fd_connect_timeout

Fd Connect Timeout

Bareos Datatype: time Bareos Default: 180 Required: false

heartbeat_interval

Heartbeat Interval

Bareos Datatype: time Bareos Default: 0 Required: false

key_encryption_key

Key Encryption Key

Bareos Datatype: autopassword Bareos Default: Not set Required: false

log_timestamp_format

Log Timestamp Format

Bareos Datatype: string Bareos Default: Not set Required: false

maximum_concurrent_jobs

Maximum Concurrent Jobs

Bareos Datatype: pint32 Bareos Default: 1 Required: false

maximum_connections

Maximum Connections

Bareos Datatype: pint32 Bareos Default: 30 Required: false

maximum_console_connections

Maximum Console Connections

Bareos Datatype: pint32 Bareos Default: 20 Required: false

messages

Messages

Bareos Datatype: res Bareos Default: Not set Required: false

name_director

Name of this director. Note: name is usually reserved by puppet for resource titles, since this is an class and not and define use name_director.

Bareos Datatype: name Bareos Default: Not set Required: true

ndmp_log_level

Ndmp Log Level

Bareos Datatype: pint32 Bareos Default: 4 Required: false

ndmp_snooping

Ndmp Snooping

Bareos Datatype: boolean Bareos Default: Not set Required: false

omit_defaults

Omit Defaults

Bareos Datatype: boolean Bareos Default: true Required: false

optimize_for_size

Optimize For Size

Bareos Datatype: boolean Bareos Default: false Required: false

optimize_for_speed

Optimize For Speed

Bareos Datatype: boolean Bareos Default: false Required: false

password

Password

Bareos Datatype: autopassword Bareos Default: Not set Required: true

pid_directory

Pid Directory

Bareos Datatype: directory Bareos Default: /var/lib/bareos Required: false

plugin_directory

Plugin Directory: Plugins are loaded from this directory. To load only specific plugins, use ‘Plugin Names’.

Bareos Datatype: directory Bareos Default: Not set Required: false

plugin_names

Plugin Names: List of plugins, that should get loaded from ‘Plugin Directory’ (only basenames, ‘-dir.so’ is added automatically). If empty, all plugins will get loaded.

Bareos Datatype: plugin_names Bareos Default: Not set Required: false

query_file

Query File

Bareos Datatype: directory Bareos Default: Not set Required: true

scripts_directory

Scripts Directory: This directive is currently unused.

Bareos Datatype: directory Bareos Default: Not set Required: false

sd_connect_timeout

Sd Connect Timeout

Bareos Datatype: time Bareos Default: 1800 Required: false

secure_erase_command

Secure Erase Command: Specify command that will be called when bareos unlinks files.

Bareos Datatype: string Bareos Default: Not set Required: false

statistics_collect_interval

Statistics Collect Interval

Bareos Datatype: pint32 Bareos Default: 150 Required: false

statistics_retention

Statistics Retention

Bareos Datatype: time Bareos Default: 160704000 Required: false

subscriptions

Subscriptions

Bareos Datatype: pint32 Bareos Default: 0 Required: false

tls_allowed_cn

Tls Allowed Cn: “Common Name”s (CNs) of the allowed peer certificates.

May be specified as Array. Bareos Datatype: string_list Bareos Default: Not set Required: false

tls_authenticate

Tls Authenticate: Use TLS only to authenticate, not for encryption.

Bareos Datatype: boolean Bareos Default: false Required: false

tls_ca_certificate_dir

Tls Ca Certificate Dir: Path of a TLS CA certificate directory.

Bareos Datatype: directory Bareos Default: Not set Required: false

tls_ca_certificate_file

Tls Ca Certificate File: Path of a PEM encoded TLS CA certificate(s) file.

Bareos Datatype: directory Bareos Default: Not set Required: false

tls_certificate

Tls Certificate: Path of a PEM encoded TLS certificate.

Bareos Datatype: directory Bareos Default: Not set Required: false

tls_certificate_revocation_list

Tls Certificate Revocation List: Path of a Certificate Revocation List file.

Bareos Datatype: directory Bareos Default: Not set Required: false

tls_cipher_list

Tls Cipher List: List of valid TLS Ciphers.

Bareos Datatype: string Bareos Default: Not set Required: false

tls_dh_file

Tls Dh File: Path to PEM encoded Diffie-Hellman parameter file. If this directive is specified, DH key exchange will be used for the ephemeral keying, allowing for forward secrecy of communications.

Bareos Datatype: directory Bareos Default: Not set Required: false

tls_enable

Tls Enable: Enable TLS support.

Bareos Datatype: boolean Bareos Default: false Required: false

tls_key

Tls Key: Path of a PEM encoded private key. It must correspond to the specified “TLS Certificate”.

Bareos Datatype: directory Bareos Default: Not set Required: false

tls_require

Tls Require: Without setting this to yes, Bareos can fall back to use unencryption connections. Enabling this implicietly sets “TLS Enable = yes”.

Bareos Datatype: boolean Bareos Default: false Required: false

tls_verify_peer

Tls Verify Peer: If disabled, all certificates signed by a known CA will be accepted. If enabled, the CN of a certificate must the Address or in the “TLS Allowed CN” list.

Bareos Datatype: boolean Bareos Default: true Required: false

ver_id

Ver Id

Bareos Datatype: string Bareos Default: Not set Required: false

working_directory

Working Directory

Bareos Datatype: directory Bareos Default: /var/lib/bareos Required: false

Parameters:

  • ensure (Any) (defaults to: present)
  • absolute_job_timeout (Any) (defaults to: undef)
  • audit_events (Any) (defaults to: undef)
  • auditing (Any) (defaults to: undef)
  • backend_directory (Any) (defaults to: undef)
  • description (Any) (defaults to: undef)
  • dir_address (Any) (defaults to: undef)
  • dir_addresses (Any) (defaults to: undef)
  • dir_port (Any) (defaults to: undef)
  • dir_source_address (Any) (defaults to: undef)
  • fd_connect_timeout (Any) (defaults to: undef)
  • heartbeat_interval (Any) (defaults to: undef)
  • key_encryption_key (Any) (defaults to: undef)
  • log_timestamp_format (Any) (defaults to: undef)
  • maximum_concurrent_jobs (Any) (defaults to: undef)
  • maximum_connections (Any) (defaults to: undef)
  • maximum_console_connections (Any) (defaults to: undef)
  • messages (Any) (defaults to: undef)
  • name_director (Any) (defaults to: 'bareos-dir')
  • ndmp_log_level (Any) (defaults to: undef)
  • ndmp_snooping (Any) (defaults to: undef)
  • omit_defaults (Any) (defaults to: undef)
  • optimize_for_size (Any) (defaults to: undef)
  • optimize_for_speed (Any) (defaults to: undef)
  • password (Any) (defaults to: 'PleaseChangeMe')
  • pid_directory (Any) (defaults to: undef)
  • plugin_directory (Any) (defaults to: undef)
  • plugin_names (Any) (defaults to: undef)
  • query_file (Any) (defaults to: '/usr/lib/bareos/scripts/query.sql')
  • scripts_directory (Any) (defaults to: undef)
  • sd_connect_timeout (Any) (defaults to: undef)
  • secure_erase_command (Any) (defaults to: undef)
  • statistics_collect_interval (Any) (defaults to: undef)
  • statistics_retention (Any) (defaults to: undef)
  • subscriptions (Any) (defaults to: undef)
  • tls_allowed_cn (Any) (defaults to: undef)
  • tls_authenticate (Any) (defaults to: undef)
  • tls_ca_certificate_dir (Any) (defaults to: undef)
  • tls_ca_certificate_file (Any) (defaults to: undef)
  • tls_certificate (Any) (defaults to: undef)
  • tls_certificate_revocation_list (Any) (defaults to: undef)
  • tls_cipher_list (Any) (defaults to: undef)
  • tls_dh_file (Any) (defaults to: undef)
  • tls_enable (Any) (defaults to: undef)
  • tls_key (Any) (defaults to: undef)
  • tls_require (Any) (defaults to: undef)
  • tls_verify_peer (Any) (defaults to: undef)
  • ver_id (Any) (defaults to: undef)
  • working_directory (Any) (defaults to: undef)


349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
# File 'manifests/director/director.pp', line 349

class bareos::director::director (
  $ensure = present,
  $absolute_job_timeout = undef,
  $audit_events = undef,
  $auditing = undef,
  $backend_directory = undef,
  $description = undef,
  $dir_address = undef,
  $dir_addresses = undef,
  $dir_port = undef,
  $dir_source_address = undef,
  $fd_connect_timeout = undef,
  $heartbeat_interval = undef,
  $key_encryption_key = undef,
  $log_timestamp_format = undef,
  $maximum_concurrent_jobs = undef,
  $maximum_connections = undef,
  $maximum_console_connections = undef,
  $messages = undef,
  $name_director = 'bareos-dir',
  $ndmp_log_level = undef,
  $ndmp_snooping = undef,
  $omit_defaults = undef,
  $optimize_for_size = undef,
  $optimize_for_speed = undef,
  $password = 'PleaseChangeMe',
  $pid_directory = undef,
  $plugin_directory = undef,
  $plugin_names = undef,
  $query_file = '/usr/lib/bareos/scripts/query.sql',
  $scripts_directory = undef,
  $sd_connect_timeout = undef,
  $secure_erase_command = undef,
  $statistics_collect_interval = undef,
  $statistics_retention = undef,
  $subscriptions = undef,
  $tls_allowed_cn = undef,
  $tls_authenticate = undef,
  $tls_ca_certificate_dir = undef,
  $tls_ca_certificate_file = undef,
  $tls_certificate = undef,
  $tls_certificate_revocation_list = undef,
  $tls_cipher_list = undef,
  $tls_dh_file = undef,
  $tls_enable = undef,
  $tls_key = undef,
  $tls_require = undef,
  $tls_verify_peer = undef,
  $ver_id = undef,
  $working_directory = undef,
) {
  include ::bareos::director

  $_resource = 'Director'
  $_resource_dir = 'director'

  unless $ensure in [ 'present', 'absent' ] {
    fail('Invalid value for ensure')
  }

  if $ensure == 'present' {
    $_require_res_messages = $messages ? { undef => undef, default => Bareos::Director::Messages[$messages] }

    $_require_resource = delete_undef_values([
      $_require_res_messages,
    ])

    $_settings = bareos_settings(
      [$name_director, 'Name', 'name', true],
      [$description, 'Description', 'string', false],
      [$absolute_job_timeout, 'Absolute Job Timeout', 'pint32', false],
      [$audit_events, 'Audit Events', 'audit_command_list', false],
      [$auditing, 'Auditing', 'boolean', false],
      [$backend_directory, 'Backend Directory', 'directory_list', false],
      [$dir_address, 'Dir Address', 'address', false],
      [$dir_addresses, 'Dir Addresses', 'addresses', false],
      [$dir_port, 'Dir Port', 'port', false],
      [$dir_source_address, 'Dir Source Address', 'address', false],
      [$fd_connect_timeout, 'Fd Connect Timeout', 'time', false],
      [$heartbeat_interval, 'Heartbeat Interval', 'time', false],
      [$key_encryption_key, 'Key Encryption Key', 'autopassword', false],
      [$log_timestamp_format, 'Log Timestamp Format', 'string', false],
      [$maximum_concurrent_jobs, 'Maximum Concurrent Jobs', 'pint32', false],
      [$maximum_connections, 'Maximum Connections', 'pint32', false],
      [$maximum_console_connections, 'Maximum Console Connections', 'pint32', false],
      [$messages, 'Messages', 'res', false],
      [$ndmp_log_level, 'Ndmp Log Level', 'pint32', false],
      [$ndmp_snooping, 'Ndmp Snooping', 'boolean', false],
      [$omit_defaults, 'Omit Defaults', 'boolean', false],
      [$optimize_for_size, 'Optimize For Size', 'boolean', false],
      [$optimize_for_speed, 'Optimize For Speed', 'boolean', false],
      [$password, 'Password', 'autopassword', true],
      [$pid_directory, 'Pid Directory', 'directory', false],
      [$plugin_directory, 'Plugin Directory', 'directory', false],
      [$plugin_names, 'Plugin Names', 'plugin_names', false],
      [$query_file, 'Query File', 'directory', true],
      [$scripts_directory, 'Scripts Directory', 'directory', false],
      [$sd_connect_timeout, 'Sd Connect Timeout', 'time', false],
      [$secure_erase_command, 'Secure Erase Command', 'string', false],
      [$statistics_collect_interval, 'Statistics Collect Interval', 'pint32', false],
      [$statistics_retention, 'Statistics Retention', 'time', false],
      [$subscriptions, 'Subscriptions', 'pint32', false],
      [$tls_allowed_cn, 'Tls Allowed Cn', 'string_list', false],
      [$tls_authenticate, 'Tls Authenticate', 'boolean', false],
      [$tls_ca_certificate_dir, 'Tls Ca Certificate Dir', 'directory', false],
      [$tls_ca_certificate_file, 'Tls Ca Certificate File', 'directory', false],
      [$tls_certificate, 'Tls Certificate', 'directory', false],
      [$tls_certificate_revocation_list, 'Tls Certificate Revocation List', 'directory', false],
      [$tls_cipher_list, 'Tls Cipher List', 'string', false],
      [$tls_dh_file, 'Tls Dh File', 'directory', false],
      [$tls_enable, 'Tls Enable', 'boolean', false],
      [$tls_key, 'Tls Key', 'directory', false],
      [$tls_require, 'Tls Require', 'boolean', false],
      [$tls_verify_peer, 'Tls Verify Peer', 'boolean', false],
      [$ver_id, 'Ver Id', 'string', false],
      [$working_directory, 'Working Directory', 'directory', false]
    )
  } else {
    $_require_resource = undef
  }

  file { "${::bareos::director::config_dir}/${_resource_dir}/${name_director}.conf":
    ensure  => $ensure,
    mode    => $::bareos::file_mode,
    owner   => $::bareos::file_owner,
    group   => $::bareos::file_group,
    content => template('bareos/resource.erb'),
    notify  => Service[$::bareos::director::service_name],
    require => $_require_resource,
  }
}