Puppet Class: bacula::filedaemon

Inherits:
bacula::params
Defined in:
manifests/filedaemon.pp

Overview

Class: bacula::filedaemon

Setup Bacula Director daemon. The list of backed up machines is generated dynamically from configuration file fragments exported by nodes that include the bacula::filedaemon class. In other words, the filedaemon nodes add themselves to the backup cycle.

Parameters

manage

Manage Bacula Filedaemon using Puppet. Valid values are true (default) and false.

manage_packetfilter

Manage packet filtering rules. Valid values are true (default) and false.

manage_monit

Manage monit rules. Valid values are true (default) and false.

export_tag

Export Bacula Director configuration fragments with this tag. This must match what is configured for ::bacula::director. Defaults to ‘bacula-dir.conf.d-fragment’ for compatibility with old module versions.

status

Status of the Bacula Filedaemon. Valid values are ‘present’ and ‘absent’. Default value is ‘present’. This is primary useful when decommissioning nodes to ensure that exported resources are cleaned up properly.

is_director

Determines if this node is a Director also. Used to add catalog backup job and to instantiate the filedaemon’s main backup job without exporting it first. Valid values are true and false (default).

package_name

Override the default package name obtained from params.pp. This is useful if your operating system provides two different bacula-fd/bacula-client versions under different names, e.g. for compatibility reasons. For example on FreeBSD 10 you need to set this parameter to ‘bacula5-client’ to be able to connect to 5.2.x-based Directors and StorageDaemons.

director_address_ipv4

IP-address for incoming Bacula Director packets.

pwd_for_director

Password for the Director that contacts this filedaemon

pwd_for_monitor

Password for the Monitor that contacts this filedaemon

bind_address

Bind to this IPv4 address. Defaults to ‘127.0.0.1’. Use ‘0.0.0.0’ to bind to all interfaces.

tls_enable

Enable TLS. Valid values are true and false (default).

use_puppet_certs

Use puppet certs for TLS. Valid values are true (default) and false.

backup_files

An array containing the list of directories/files to backup

exclude_files

An array containing a list of directories/files/wildcards to exclude from backups. Defaults to undef.

schedules

An array containing “Run” lines for a Filedaemon-specific schedule. Defaults to undef which means that the default Schedule called “default-schedule” defined in the bacula::director class is used.

messages

Which messages should be sent via email. Use “All” for (almost) all messages and “AllButInformational” for everything except “Backup OK of <node>…” messages and like. Defaults to “All”.

monitor_email

Email address where local service monitoring software sends it’s reports to. Defaults to global variable $::servermonitor.

Authors

Samuli Seppänen <samuli.seppanen@gmail.com>

Samuli Seppänen <samuli@openvpn.net>

License

BSD-license. See file LICENSE for details.

Parameters:

  • director_address_ipv4 (Any)
  • pwd_for_director (Any)
  • pwd_for_monitor (Any)
  • backup_files (Any)
  • status (Enum['present','absent']) (defaults to: 'present')
  • manage (Boolean) (defaults to: true)
  • manage_packetfilter (Boolean) (defaults to: true)
  • manage_monit (Boolean) (defaults to: true)
  • use_puppet_certs (Boolean) (defaults to: true)
  • tls_enable (Boolean) (defaults to: false)
  • export_tag (Any) (defaults to: 'bacula-dir.conf.d-fragment')
  • package_name (Any) (defaults to: $::bacula::params::bacula_filedaemon_package)
  • is_director (Any) (defaults to: false)
  • bind_address (Any) (defaults to: '127.0.0.1')
  • exclude_files (Any) (defaults to: undef)
  • schedules (Any) (defaults to: undef)
  • messages (Any) (defaults to: 'All')
  • monitor_email (Any) (defaults to: $::servermonitor)


76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'manifests/filedaemon.pp', line 76

class bacula::filedaemon
(
            $director_address_ipv4,
            $pwd_for_director,
            $pwd_for_monitor,
            $backup_files,
    Enum['present','absent'] $status = 'present',
    Boolean $manage = true,
    Boolean $manage_packetfilter = true,
    Boolean $manage_monit = true,
    Boolean $use_puppet_certs = true,
    Boolean $tls_enable = false,
            $export_tag = 'bacula-dir.conf.d-fragment',
            $package_name = $::bacula::params::bacula_filedaemon_package,
            $is_director = false,
            $bind_address = '127.0.0.1',
            $exclude_files = undef,
            $schedules = undef,
            $messages = 'All',
            $monitor_email = $::servermonitor

) inherits bacula::params
{

if $manage {

    # Remove obsolete configurations
    include ::bacula::filedaemon::absent

    if ( $use_puppet_certs ) and ( $tls_enable ) {
        include ::bacula::puppetcerts
    }

    include ::bacula::common

    class { '::bacula::filedaemon::install':
        status       => $status,
        package_name => $package_name,
    }

    class { '::bacula::filedaemon::config':
        status           => $status,
        is_director      => $is_director,
        export_tag       => $export_tag,
        pwd_for_director => $pwd_for_director,
        pwd_for_monitor  => $pwd_for_monitor,
        bind_address     => $bind_address,
        tls_enable       => $tls_enable,
        backup_files     => $backup_files,
        exclude_files    => $exclude_files,
        schedules        => $schedules,
        messages         => $messages,
    }

    class { '::bacula::filedaemon::service':
        ensure => $status,
    }

    if $manage_packetfilter {
        class { '::bacula::filedaemon::packetfilter':
            status                => $status,
            director_address_ipv4 => $director_address_ipv4,
        }
    }

    if $manage_monit {
        class { '::bacula::filedaemon::monit':
            status        => $status,
            monitor_email => $monitor_email,
        }
    }
}
}