-class bacula {
+# bacula class -- defines all the variables we care about in our bacula deployment
+#
+# @param public_addresses this host's public IP addresses. The ones it connects out from and is reachable from outsite.
+# @param has_ipv4 daemons should listen on ipv4
+# @param has_ipv6 daemons should listen on ipv6
+class bacula (
+ String $bacula_operator_email = 'bacula-reports@admin.debian.org',
- $bacula_operator_email = 'debian-admin@debian.org'
+ String $bacula_ca_path = '/etc/ssl/debian/certs/ca.crt',
+ String $bacula_ssl_client_cert = '/etc/ssl/debian/certs/thishost.crt',
+ String $bacula_ssl_client_key = '/etc/ssl/private/thishost.key',
+ String $bacula_ssl_server_cert = '/etc/ssl/debian/certs/thishost-server.crt',
+ String $bacula_ssl_server_key = '/etc/ssl/private/thishost-server.key',
- $bacula_director_name = 'debian-dir'
- $bacula_storage_name = 'debian-sd'
- $bacula_client_name = "${::fqdn}-fd"
- $bacula_monitor_name = 'debian-mon'
- $bacula_filestor_name = 'File'
- $bacula_filestor_device = 'FileStorage'
- $bacula_pool_name = 'debian'
+ String $bacula_dsa_client_list = '/etc/bacula/dsa-clients',
+ String $tag_bacula_dsa_client_list = 'bacula::dsa::clientlist',
- $bacula_director_address = 'dinis.debian.org'
- $bacula_director_port = 9101
- $bacula_storage_address = 'beethoven.debian.org'
- $bacula_storage_port = 9103
- $bacula_client_port = 9102
- $bacula_db_address = 'danzi.debian.org'
- $bacula_db_port = 5433
+ Array[Stdlib::IP::Address] $public_addresses = $base::public_addresses,
- $bacula_backup_path = '/srv/bacula'
-
- $bacula_director_secret = hmac('/etc/puppet/secret', "bacula-dir-${::hostname}")
- $bacula_db_secret = hmac('/etc/puppet/secret', "bacula-db-${::hostname}")
- $bacula_storage_secret = hmac('/etc/puppet/secret', "bacula-sd-${bacula_storage_name}")
- $bacula_client_secret = hmac('/etc/puppet/secret', "bacula-fd-${::fqdn}")
- $bacula_monitor_secret = hmac('/etc/puppet/secret', "bacula-monitor-${bacula_director_name}")
-
- package { 'bacula-console':
- ensure => installed;
- }
-
- file { '/etc/bacula/bconsole.conf':
- content => template('bacula/bconsole.conf.erb'),
- mode => '0640',
- group => bacula,
- require => Package['bacula-console']
- }
+ 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 },
+) {
+ file { '/usr/local/sbin/bacula-idle-restart':
+ mode => '0555',
+ source => 'puppet:///modules/bacula/bacula-idle-restart',
+ }
}