This manual explains how to install and upgrade an OpenBACH platform.
For specific requirements of each kind of machine, see the advanced page of requirements.
- Ubuntu 20.04 LTS for the target machines;
- Recommended 2Gb of RAM on the target machines.
- The machines need to have a default route (check ip route) and Internet access.
- Any Linux flavor with Ansible (at least version 2.11.12, but due to the separation of versionning scheme between the core and the modules collections, it is recommended to install version 4.5+) and Python 3.8.5 or newer on the installation machine;
- The installation machine needs to have access to all target machines (could e.g. be one of the target machines);
- Matplotlib and Panda (if you need to launch executors that generate figures/plots from this machine) : sudo pip3 install matplotlib / sudo pip3 install pandas
Make sure that the version of ansible you have installed is actually using Python 3 and not Python 2. If this is not the case please refer to the Ansible installation instructions.
$ ansible --version
ansible [core 2.13.4]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/ubuntu/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
ansible collection location = /home/ubuntu/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.10.7 (main, Sep 6 2022, 21:22:27) [GCC 12.2.0]
jinja version = 3.1.2
libyaml = True
Before being able to deploy an OpenBACH platform, you must acquire the sources files hosted on CNES GITHUB page.
You can either:
- Download an archive file of the repository;
- Or clone the repository using
git
:git clone --depth 1 --single-branch https://github.com/CNES/openbach.git
⚠️ Developpers that want to contribute to the OpenBACH repository should clone the whole history (i.e.: dropping thedepth
andsingle-branch
options)
Before deploying OpenBACH to your target machines, you need to configure which component
will be installed on which machine. Just create a file in the ansible/inventory
folder
of your sources and populate it with your installation instructions. The name of the file
does not matter, this tutorial considers a file named my-openbach-inventory
.
We propose herein an example where the Controller, Collector, and Auditorium are installed
in the same machine, and two additional Agents in separate machines. You give a name to
your agents with the option openbach_name
, otherwise openbach will take the hostname of
the machine to name each agent. For advanced topologies see the
advanced toplogy guide or see the
README file of this folder as a quick reminder of this section.
[controller]
172.20.0.1
[agent]
172.20.0.2 openbach_name=client
172.20.0.3 openbach_name=server
The installation of OpenBACH is performed via Ansible. Be aware that you need to learn some Ansible concepts to ease the following procedure.
Before the installation, we highly recommend to test the SSH connectivity between your
installation machine and your OpenBACH platform by means of an Ansible ping. Assuming
you created the topology file ansible/inventory/my-openbach-inventory
, you can issue
the following command in the ansible
directory of openbach
:
$ cd openbach/ansible/
$ ansible -i inventory/my-openbach-inventory -u *ssh_username* -k -m ping all
⚠️ Use the option--private-key=*path_to_private_key*
if you connect to the machines via a private key.
from the ansible
folder of the OpenBACH sources. Other means of connecting to the target
machines as well as debugging connection issues are explained in the
using Ansible guide.
Installing OpenBACH itself can then be as simple as issuing:
$ cd openbach/ansible/
$ ansible-playbook -i inventory/my-openbach-inventory install.yml -u *ssh_username* -k -K
from the ansible
folder of the OpenBACH sources. Extra options can be enabled in various
ways, refer to the list of Ansible variables
and tags for details.
In case you want to upgrade an existing OpenBACH platform, we recommend to clone the relevant OpenBACH git repository and repeat the install procedure.
Before upgrading an OpenBACH platform, you may want to uninstall it as follows, before repeating the install procedure.
$ cd openbach/ansible/
$ ansible-playbook -i inventory/my-openbach-inventory uninstall.yml -u *ssh_username* -k -K
More information on the uninstall can be found in the using Ansible manual.