From 5bdc9b7db9dab51eca0fee1f06a2d67cfb250f58 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Tue, 24 Sep 2019 09:54:45 +0200 Subject: [PATCH] Try to move bacula fd port config to the client class --- modules/bacula/manifests/client.pp | 10 +++++++--- modules/bacula/manifests/init.pp | 1 - modules/bacula/manifests/node.pp | 11 +++++++++-- modules/bacula/templates/bacula-fd.conf.erb | 4 ++-- modules/bacula/templates/per-client.conf.erb | 2 +- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/modules/bacula/manifests/client.pp b/modules/bacula/manifests/client.pp index f46cc026b..436d80ef8 100644 --- a/modules/bacula/manifests/client.pp +++ b/modules/bacula/manifests/client.pp @@ -2,7 +2,11 @@ # # this mostly configures the file daemon, but also firewall rules and # fragments to sent to the other servers. +# +# @param port_fd Port that bacula-fd listens on +# @param ensure present or absent class bacula::client( + Integer $port_fd = 9102, Enum['present', 'absent'] $ensure = defined(Class['bacula::not_a_client']) ? { true => 'absent', default => 'present' }, ) inherits bacula { $package_ensure = $ensure ? { 'present' => 'installed', 'absent' => 'purged' } @@ -14,7 +18,7 @@ class bacula::client( @@bacula::storage_per_node { $::fqdn: } @@bacula::node { $::fqdn: - bacula_client_port => $bacula::bacula_client_port, + port_fd => $port_fd, } @@concat::fragment { "bacula-dsa-client-list::${::fqdn}": @@ -27,7 +31,7 @@ class bacula::client( # allow access from director Ferm::Rule::Simple <<| tag == "bacula::director-to-fd::${bacula::bacula_director_address}" |>> { - port => $bacula::bacula_client_port, + port => $port_fd, } # get access to the storage @@ -62,7 +66,7 @@ class bacula::client( exec { 'bacula-fd restart-when-idle': path => '/usr/bin:/usr/sbin:/bin:/sbin', - command => "sh -c 'setsid /usr/local/sbin/bacula-idle-restart ${bacula::bacula_client_port} bacula-fd &'", + command => "sh -c 'setsid /usr/local/sbin/bacula-idle-restart ${port_fd} bacula-fd &'", refreshonly => true, subscribe => [ File[$bacula::bacula_ssl_server_cert], File[$bacula::bacula_ssl_client_cert] ], require => File['/usr/local/sbin/bacula-idle-restart'], diff --git a/modules/bacula/manifests/init.pp b/modules/bacula/manifests/init.pp index 6c1b9e22a..5084ffb0a 100644 --- a/modules/bacula/manifests/init.pp +++ b/modules/bacula/manifests/init.pp @@ -15,7 +15,6 @@ class bacula ( Integer $bacula_director_port = 9101, String $bacula_storage_address = 'storace.debian.org', Integer $bacula_storage_port = 9103, - Integer $bacula_client_port = 9102, String $bacula_backup_path = '/srv/bacula', diff --git a/modules/bacula/manifests/node.pp b/modules/bacula/manifests/node.pp index 6a704b24c..05f96fce8 100644 --- a/modules/bacula/manifests/node.pp +++ b/modules/bacula/manifests/node.pp @@ -1,5 +1,12 @@ -# a bacula node. This is stored config by a client, collected on the director -define bacula::node($bacula_client_port = $bacula::bacula_client_port) { +# Bacula client config on the director +# +# This is stored config by a client, collected on the director +# +# @param port_fd port that this node's bacula-fd is listening on +define bacula::node ( + Integer $port_fd = 9102, + Integer $bacula_client_port = $bacula::bacula_client_port +) { include bacula $bacula_pool_name = $bacula::bacula_pool_name diff --git a/modules/bacula/templates/bacula-fd.conf.erb b/modules/bacula/templates/bacula-fd.conf.erb index 29521958d..861209de9 100644 --- a/modules/bacula/templates/bacula-fd.conf.erb +++ b/modules/bacula/templates/bacula-fd.conf.erb @@ -31,13 +31,13 @@ FileDaemon { # use the hostname rather than the IP address from LDAP, # as /etc/hosts might have a better answer in case of natted hosts. addr = <%= @fqdn %> - port = <%= @bacula_client_port %> + port = <%= @port_fd %> } <%- end -%> <%- scope.lookupvar('deprecated::nodeinfo')['misc']['v6_ldap'].each do |addr| -%> ipv6 = { addr = <%= addr %> - port = <%= @bacula_client_port %> + port = <%= @port_fd %> } <%- end -%> } diff --git a/modules/bacula/templates/per-client.conf.erb b/modules/bacula/templates/per-client.conf.erb index b8c8d31a9..ab1a7aaca 100644 --- a/modules/bacula/templates/per-client.conf.erb +++ b/modules/bacula/templates/per-client.conf.erb @@ -26,7 +26,7 @@ Job { Client { Name = <%= @bacula_client_name %> Address = <%= @client %> - FDPort = <%= @bacula_client_port %> + FDPort = <%= @port_fd %> Catalog = MyCatalog Password = "<%= @bacula_client_secret %>" File Retention = 30 days -- 2.20.1