#3067 Issue open: Trying to build rescue ISO for Bacula backup

Labels: support / question

ZENAdmin-Ops opened issue at 2023-11-06 05:44:

  • ReaR version ("/usr/sbin/rear -V"): 2.7

  • If your ReaR version is not the current version, explain why you can't upgrade:

  • OS version ("cat /etc/os-release" or "lsb_release -a" or "cat /etc/rear/os.conf"): Debian 11

  • ReaR configuration files ("cat /etc/rear/site.conf" and/or "cat /etc/rear/local.conf"):

OUTPUT=ISO
OUTPUT_URL=file:///home/zen/debian11-recovery.iso
BACKUP=BACULA
BACULA_CONF_DIR=”/opt/bacula/etc”
BACULA_BIN_DIR=”/opt/bacula/bin”
USE_STATIC_NETWORKING="Yes"
IP=192.168.200.41
NM=255.255.255.0
GW=192.168.200.200
  • Hardware vendor/product (PC or PowerNV BareMetal or ARM) or VM (KVM guest or PowerVM LPAR): Hyper-V VM

  • Description of the issue (ideally so that others can reproduce it):
    Hello,

Attempting to create a ReaR recovery environment to perform a restore using Bacula

Latest output from sudo rear mkrescue -v

2023-11-05 12:25:07.005672167 Including prep/BACULA/default/450_check_BACULA_client_configured.sh
2023-11-05 12:25:07.008836829 Including prep/default/490_store_write_protect_settings.sh
2023-11-05 12:25:07.011793294 Including prep/GNU/Linux/500_EFISTUB_check_kernel.sh
2023-11-05 12:25:07.015053855 Including prep/BACULA/default/500_check_BACULA_bconsole_results.sh
2023-11-05 12:25:07.029257686 ERROR: Bacula director debian11-DR6 is not responding.
===== Stack trace =====
Trace 0: /usr/sbin/rear:696 main
Trace 1: /usr/share/rear/lib/mkrescue-workflow.sh:12 WORKFLOW_mkrescue
Trace 2: /usr/share/rear/lib/framework-functions.sh:129 SourceStage
Trace 3: /usr/share/rear/lib/framework-functions.sh:59 Source
Trace 4: /usr/share/rear/prep/BACULA/default/500_check_BACULA_bconsole_results.sh:21 source

I think this is likely to be a configuration error as this system has Bacula installed and operational.

After troubleshooting suggestions.

Thank you.

ZENAdmin-Ops commented at 2023-11-06 05:50:

Hello,

Possibly the issue might be that I need to define a 'client' that the ReaR recovery environment will use when performing the restore.

I must admit that I'm not entirely clear on this aspect of the configuration at present.

ZENAdmin-Ops commented at 2023-11-07 23:12:

Hello,

I've attempted some troubleshooting and this error appears to be a bug

sudo rear mkrescue -v
Relax-and-Recover 2.7 / 2022-07-13
Running rear mkrescue (PID 405169 date 2023-11-08 10:07:54)
Using log file: /var/log/rear/rear-debian11-DR6.log
Running workflow mkrescue on the normal/original system
Using UEFI Boot Loader for Linux (USING_UEFI_BOOTLOADER=1)
Using autodetected kernel '/boot/vmlinuz-5.10.0-26-amd64' as kernel in the recovery system
ERROR: Bacula director debian11-DR6 is not responding.

2023-11-08 10:07:55.104444475 Including prep/BACULA/default/500_check_BACULA_bconsole_results.sh
2023-11-08 10:07:55.134400311 ERROR: Bacula director debian11-DR6 is not responding.

Here is the relevant code

# is the director server present? Fetch from $BACULA_CONF_DIR/bconsole.conf file
BACULA_DIRECTOR=$(grep -i address $BACULA_CONF_DIR/bconsole.conf | awk '{ print $3 }')
[ "${BACULA_DIRECTOR}" ] || Error "Director not defined in $BACULA_CONF_DIR/bconsole.conf"

# check if the director is responding?
if has_binary nc; then
   DIRECTOR_RESULT=$(nc -vz "${BACULA_DIRECTOR}" 9101 2>&1 | grep -i connected | wc -l)
   [[ $DIRECTOR_RESULT -eq 0 ]] && Error "Bacula director ${BACULA_DIRECTOR} is not responding."
fi

# does the director allow connections from this client? bconsole knows!
#
# 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]}

Here is the address from bconsole.conf

address = debian11-DR6

Here is the output from the nc command

nc -vz debian11-dr6 9101
debian11-DR6.zen.local [192.168.200.40] 9101 (bacula-dir) opensudo

gdha commented at 2023-11-08 06:21:

What is the return code of the command:

nc -vz debian11-dr6 9101
debian11-DR6.zen.local [192.168.200.40] 9101 (bacula-dir) opensudo

Perhaps, we could use this instead of looking for "connected"?

ZENAdmin-Ops commented at 2023-11-08 21:33:

Hello,

Can you check the syntax of the 2nd line

nc -vz debian11-dr6 9101
debian11-DR6.zen.local [192.168.200.40] 9101 (bacula-dir) open
zen@debian11-DR6:~$ debian11-DR6.zen.local [192.168.200.40] 9101 (bacula-dir) opensudo
bash: syntax error near unexpected token `('

gdha commented at 2023-11-09 07:06:

@ZENAdmin-Ops What you need to do is:

$ nc -vz debian11-dr6 9101
debian11-DR6.zen.local [192.168.200.40] 9101 (bacula-dir) open
echo $?

ZENAdmin-Ops commented at 2023-11-09 09:23:

nc -vz debian11-dr6 9101 
debian11-DR6.zen.local [192.168.200.40] 9101 (bacula-dir) open
zen@debian11-DR6:~$ echo $?
0

pcahyna commented at 2023-11-16 18:17:

Hi, is the check using "nc" even needed? Isn't the subsequent check using bconsole enough?

pcahyna commented at 2023-11-16 18:20:

I mean, doesn't answering the latter question

# does the director allow connections from this client? bconsole knows!

also implicitly answer the question

# check if the director is responding?

above it? presumably, if the director allow connections from this client, it is also responding.


[Export of Github issue for rear/rear.]