From 1a8bf7c0df6db5462e01e67da2e259c1ef574011 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Wed, 3 Jul 2024 12:26:10 -0700 Subject: BIND local_zonepath override --- FS/FS/part_export/bind.pm | 2 ++ bin/bind.export | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/FS/FS/part_export/bind.pm b/FS/FS/part_export/bind.pm index 1ef7b6598..dd60b2a28 100644 --- a/FS/FS/part_export/bind.pm +++ b/FS/FS/part_export/bind.pm @@ -11,6 +11,8 @@ tie %options, 'Tie::IxHash', default=> '/etc/bind/named.conf' }, 'zonepath' => { label => 'path to zone files', default=> '/etc/bind/', }, + 'local_zonepath'=>{ label => 'path to zone files in named.conf (optional override)', + }, 'bind_release' => { label => 'ISC BIND Release', type => 'select', options => [qw(BIND8 BIND9)], diff --git a/bin/bind.export b/bin/bind.export index a3bbd1ac5..9c5130b11 100755 --- a/bin/bind.export +++ b/bin/bind.export @@ -20,10 +20,10 @@ mkdir $spooldir, 0700 unless -d $spooldir; my @exports = qsearch('part_export', { 'exporttype' => 'bind' } ); my @sexports = qsearch('part_export', { 'exporttype' => 'bind_slave' } ); -my $rsync = File::Rsync->new({ +my $rsync = File::Rsync->new( rsh => 'ssh', # dry_run => 1, -}); +); foreach my $export ( @exports ) { @@ -50,7 +50,8 @@ foreach my $export ( @exports ) { close CONF_HEADER; } - my $zonepath = $export->option('zonepath'); + my $zonepath = $export->option('local_zonepath') + || $export->option('zonepath'); $zonepath =~ s/\/$//; my @svc_domain = $export->svc_x; @@ -112,18 +113,18 @@ END } - $rsync->exec( { + $rsync->exec( src => "$prefix/", recursive => 1, dest => "root\@$machine:$zonepath/", exclude => [qw( *.import named.conf.HEADER named.conf )], - } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); + ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); # warn $rsync->out; - $rsync->exec( { + $rsync->exec( src => "$prefix/named.conf", dest => "root\@$machine:". $export->option('named_conf'), - } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); + ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); # warn $rsync->out; ssh("root\@$machine", "$ndc_cmd reload"); @@ -177,10 +178,10 @@ END } - $rsync->exec( { + $rsync->exec( src => "$prefix/named.conf", dest => "root\@$machine:". $sexport->option('named_conf'), - } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); + ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); # warn $rsync->out; ssh("root\@$machine", "$ndc_cmd reload"); -- cgit v1.2.1