Installation

This article describes how to install Bacula Enterprise Exchange EWS Plugin.

Prerequisites

  • The Bacula File Daemon and the Exchange EWS Plugin need to be installed on the host that is going to connect to the Exchange Server.

  • The plugin is implemented over a Java layer, and even if it backs up a Windows product, it must be deployed in a host running Linux. It is possible to use any of the supported Linux distributions of Bacula Enterprise, including Red Hat Linux, Debian, Ubuntu or Suse Linux Enterprise Server as some examples.

  • The plugin works through a Java daemon, therefore Java needs to be installed into the host through a JRE or JDK package (openjdk-8-jre for example). Installed Java environment needs to be in version 8 or above and the Java binary must be available in the system PATH.

  • Memory and computation requirements completely depend on the plugin configuration and usege (parallelization, size of data to backup, etc.). However, it is expected to have a minimum of 4GB RAM in the server where the File Daemon is running. By default, every job could end using up to 512Mb of RAM in demanding scenarios (usually it will be much less). In some situations this could be higher. Memory limits can be adjusted (see Out of memory).

  • Exchange EWS Service is used to perform all plugin operations. Therefore, it must be up and accessible through HTTPS from the host where Bacula FD and the plugin are going to be deployed. To do this, Outlook service needs to be installed on the host where the Bacula Enterprise Exchange Plugin is going to connect to fetch and protect the data.

  • In order to fetch the data, the connection to EWS is done using Basic Authentication with username and password. An administrator user (a user belonging to the ‘Organization Management’ group) properly configured to access the mailboxes of any target user is needed. Details about how to configure such user are given in the next sections.

  • EWS endpoint is usually served through HTTPS protocol. The certificate needs to be valid and the included CN (example: myhost.com) needs to match the endpoint configured in the plugin parameters.

Installation Methods

Result

The package installs the following elements:

  • Jar libraries in /opt/bacula/lib (such as bacula-exchange-ews-plugin-x.x.x.jar and bacula-exchange-ews-plugin-libs-x.x.x.jar). Note that the version of those jar archives is not aligned with the version of the package. However, that version will be shown in the joblog in a message like ‘Jar version:X.X.X’.

  • Plugin connection file (e2ws-fd.so) in the plugins directory (usually /opt/bacula/plugins). Note that e2ws acronym means Exchange EWS.

  • Backend file (e2ws_backend) that invokes the jar files in /opt/bacula/bin. This backend file searches for the most recent bacula-exchange-ews-plugin-x.x.x.jar file in order to launch it, even thought usually we should have only one file.

Once the plugin is installed, it should be possible to see it loaded through a status client command in bconsole (‘Plugin:’ line must contain ‘e2ws’):

Status client
*st client
Automatically selected Client: 127.0.0.1-fd
Connecting to Client 127.0.0.1-fd at 127.0.0.1:8102

127.0.0.1-fd Version: 16.0.5 (05 April 2023)  x86_64-pc-linux-gnu ubuntu 22.04
Daemon started 14-abr-23 10:14. Jobs: run=2 running=0 max=100.
Ulimits: nofile=1024 memlock=2026356736 status=ok
Heap: heap=827,392 smbytes=436,939 max_bytes=5,100,087 bufs=153 max_bufs=248
Sizes: boffset_t=8 size_t=8 debug=600 trace=1 mode=1,2010 bwlimit=0kB/s
Crypto: fips=no crypto=OpenSSL 3.0.2 15 Mar 2022
APIs: !GPFS
Plugin: bpipe(2) e2ws(1.0.0)

Go back to the Exchange EWS plugin main page.