#2535 PR merged
: #2152: make bacula aware of different location of config files¶
Labels: enhancement
, fixed / solved / done
, minor bug
,
external tool
gdha opened issue at 2020-12-08 16:35:¶
Signed-off-by: Gratien Dhaese gratien.dhaese@gmail.com
Pull Request Details:¶
-
Type: Bug Fix
-
Impact: Normal
-
Reference to related issue (URL): #2152
-
How was this pull request tested? Not yet tested - waiting on Bacula user to do that for us
-
Brief description of the changes in this pull request: The Enterprise Bacula uses different locations for keeping the configuration files than the community version of Bacula, hence, the enhancement to detect the correct location via preparation flow.
gdha commented at 2020-12-09 08:11:¶
I used this PR as an example for https://relax-and-recover.org/rear-user-guide/development/github-pr.html
jsmeix commented at 2020-12-09 10:07:¶
I noticed many StopIfError
calls in the code.
I recommend to never use StopIfError
, see the explanation about
"Using the ...IfError functions can result unexpected behaviour in
certain cases"
in usr/share/rear/lib/_input-output-functions.sh
https://github.com/rear/rear/blob/master/usr/share/rear/lib/_input-output-functions.sh#L704
Better use
ERROR_CONDITION && Error "..."
or
SUCCESS_CONDITION || Error "..."
as needed.
The ...IfError
functions are only there for backward compatibility in
old code.
jsmeix commented at 2020-12-09 10:14:¶
@gdha
I can feel your pain with getting that old style code reasonably well...
jsmeix commented at 2020-12-09 13:26:¶
@gdha
if you like you may have a look at
https://github.com/rear/rear/pull/2535#discussion_r539299628
and
https://github.com/rear/rear/pull/2535#discussion_r539301797
for a possible further improvement.
gdha commented at 2020-12-09 13:34:¶
@jsmeix Thank you for your endless patience and clear view on good practice of the bash language. I asked the 2 Bacula users for their advice on the ping matter - we will see what comes back...
VN1977 commented at 2020-12-09 14:11:¶
To my mind using ping is worse than checking if the service is really accessible. So I'd have listened to @jsmeix
jsmeix commented at 2020-12-09 14:15:¶
@VN1977
since IPv6 'ping' has become even worser than worse ;-)
One must try both IPv4 and IPv6 and guess what it could mean if one
fails :-(
gdha commented at 2020-12-09 14:19:¶
@VN1977 Ok, how can we test if the BACULA_DIRECTOR is responding if we don't use ping? I need your advise here.
VN1977 commented at 2020-12-09 14:39:¶
@gdha
I think we can use something like this
nc -vz BACULA_DIRECTOR 9101 2>&1 | grep -i connected | wc -l
But not every system has netcat installed. You can add it to dependencies.
jsmeix commented at 2020-12-09 14:44:¶
I know nothing at all how Bacula works but I think the final testing
in
prep/BACULA/default/500_check_BACULA_bconsole_results.sh
# We want these two lines to show that we can connect to the director
# and that the director can connect to the file daemon on this system.
# "Connecting to Director 'director_name-fd:9101'"
# "Connecting to Client 'bacula_client_name-fd at FQDN:9102"
BACULA_CLIENT=$(grep $(hostname -s) $BACULA_CONF_DIR/bacula-fd.conf | grep "\-fd" | awk '{print $3}' | sed -e "s/-fd//g")
[ "${BACULA_CLIENT}" ] || Error "Client $(hostname -s) not defined in $BACULA_CONF_DIR/bacula-fd.conf"
BACULA_RESULT=( $(echo -e " status client=${BACULA_CLIENT}-fd" | bconsole | grep Connect) )
director=${BACULA_RESULT[3]}
client=${BACULA_RESULT[9]}
[ "$director" ] || Error "Bacula director not reachable."
[ "$client" ] || Error "Bacula client status unknown on director."
looks as if it tests both the Bacula director (implicitly) and the
Bacula client.
This was the reason why I was wondering what that 'ping' test is
actually good for
when also the Bacula director gets implicitly tested by the final
testing.
VN1977 commented at 2020-12-09 15:16:¶
@jsmeix this is two steps check. Firstly we check if director accesible
at network level then connect to it and look for config of designated
client.
If step #1 failed we excplicitily understand what caused it and we
don't need to connect with bconsole.
linuxdan commented at 2020-12-09 21:41:¶
Where did this get sidetracked about ping testing ?
The original issue I opened a year and a half ago is about how the
Enterprise Bacula client is in a different location than the open source
client.
jsmeix commented at 2020-12-10 10:18:¶
@linuxdan
I set you as the assignee here so you can fix your things as you want
it.
Please follow our coding style
https://github.com/rear/rear/wiki/Coding-Style
Perhaps best is when you submit a completely new pull request
so we can decide better about your changes.
gdha commented at 2020-12-16 16:22:¶
@linuxdan @VN1977 Please verify if the Bacula director check works or not?
VN1977 commented at 2020-12-16 19:49:¶
I can check on Friday only
gdha commented at 2021-01-15 15:08:¶
@VN1977 today is Friday ;-) possible to have a quick check please?
VN1977 commented at 2021-01-22 10:09:¶
Hi,
we had a huge holiday.... so sorry for the delay.
I don't really know how to compile the new version to check quickly.
Could you please help?
gdha commented at 2021-01-22 10:31:¶
@VN1977 You can download the latest ReaR snapshot packages (of today) from http://download.opensuse.org/repositories/Archiving:/Backup:/Rear:/Snapshot/CentOS_7/x86_64/ (for CentOS 7), or otherwise use the link http://download.opensuse.org/repositories/Archiving:/Backup:/Rear:/Snapshot/ to select the OS version you need.
VN1977 commented at 2021-01-22 10:47:¶
2021-01-22 13:42:14.644359166 Including prep/BACULA/default/450_check_BACULA_client_configured.sh
2021-01-22 13:42:14.655556702 ERROR: Bacula File Daemon is missing
Should I add some parameters to site.conf or not?
gdha commented at 2021-01-22 12:50:¶
@VN1977
2021-01-22 13:42:14.644359166 Including prep/BACULA/default/450_check_BACULA_client_configured.sh
2021-01-22 13:42:14.655556702 ERROR: Bacula File Daemon is missing
The script says bacula-fd
is missing (or it couldn't find it in the
default PATH). Could you verify this? And, while you're busy check also
if bconsole
responds correctly.
VN1977 commented at 2021-01-22 13:03:¶
My bacula config files are placed at /opt/bacula/etc so script can not find them.What concerns bconsole the config file also placed there.I thought that you made changes to scripts for supporting non-default config files.--
gdha commented at 2021-01-22 13:18:¶
@VN1977 Yes, of course it is the purpose to test this PR - first
git clone https://github.com/rear/rear/tree/issue2152-prep-bacula
and
then use this newly branch to test out if the PR would make sense or
not. Therefore, go into this branch and copy your /etc/rear/local.conf
to this branch your_cloned_rear_path/etc/rear/
and also start rear
from within this cloned PR (use relative path to rear script:
your_cloned_rear_path/usr/sbin/rear -v mkrescue
VN1977 commented at 2021-01-22 15:39:¶
@gdha everything works great!
[Export of Github issue for rear/rear.]