This section describes how to build and configure a minimal cluster to use the SEAPATH project. The following tools are used during the process:

  • Ansible: automation tool that handles remote configuration and management by using SSH protocol. Ansible is based on files named playbooks that contain the list of actions to be performed and inventories that define the list of machines in which the tasks should be run.
  • CQFD: tool that permits running commands within a predefined Docker container while keeping the generated output on the current host machine. This is a convenient way to automate tasks such as the firmware build process without need to install the tools on the host machine.
  • Cukinia: lightweight and extensible testing tool that offers the automation and  integration of tests in order to validate the functionalities developed during the lifecycle of a Linux embedded system.

Prepare the machines

As described above, the SEAPATH minimal cluster requires three machines, two cluster machines (or hypervisors) and an observer. The steps to build and flash the Yocto images for the cluster machines are described in SEAPATH Yocto BSP. SEAPATH need to be built on a Linux machine with a Kernel ≥ 5.4.

Interact with the cluster with Ansible

Once the machines have been flashed with the corresponding SEAPATH Yocto images, the cluster can be configured by using the Ansible tool. You can follow the procedure described on SEAPATH Ansible to deploy the cluster or create your own Ansible playbooks.

As described on the previous link, the different configuration and setup tasks to configure the cluster have been gathered on a single playbook, so it is enough to execute:

ansible-playbook -i inventories/cluster_inventory.yaml --limit=cluster_machines playbooks/cluster_setup_main.yaml

You must create an inventory, more details here.

You must launch these playbooks in this order:

  1. Only for Debian installation: playbooks/cluster_setup_prerequisdebian.yaml (more details here)
  2. playbooks/cluster_setup_network.yaml (more details here)
  3. playbooks/cluster_setup_ceph.yaml (more details here)
  4. playbooks/cluster_setup_libvirt.yaml (more details here)
  5. playbooks/cluster_setup_ha.yaml (more details here)
  6. playbooks/cluster_setup_keys.yaml (more details here)
  • No labels