Web site: https://bluebanquise.com
📢 The main branch is under active dev for now. Consider using a stable branch for production. 📢
BlueBanquise is group of coherent Ansible collections and tools, designed to deploy and manage large group of hosts (clusters of nodes).
The BlueBanquise collections are generic and can adapt to any kind of architecture (High Performance Computing clusters, university or enterprise infrastructures, Blender render farm, K8S cluster, etc.). A specific focus is made on scalability for very large clusters.
When "stacked" together, collections and tools are called BlueBanquise stack.
The following collections are available. Please note that for now, only infrastructure collection of BlueBanquise is considered stable.
- 🌐 Infrastructure: the core of the stack, focused on providing roles and tools to deploy hosts and configure vital services.
- 🌐 hardware: specific hardware support roles (GPU, interconnect, etc.).
- 🌐 file system: support for local or network FS roles.
- 🌐 hpc: High Performance Computing related roles.
- 🌐 containers: containers related roles.
- 🌐 high availability: HA and load balancing related roles.
- 🌐 logging: system logging related roles (different from monitoring).
- 🌐 monitoring: cluster monitoring related roles.
- 🌐 security: system security related roles.
Infrastructure collection should be compatible with all target Linux distributions (RHEL 8, RHEL 9, Debian 11, Debian 12, OpenSuse Leap 15, Ubuntu 20.04, Ubuntu 22.04). Other collections do not support all these distributions (support is added on demand).
Note that few features are still limited on Ubuntu and Debian (mainly network configuration), I am working on it.
BlueBanquise repository is under MIT license, except Bluebanquise documentation which is under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
We will assume here you already have a recent Ansible setup and configured. If you are new to Ansible, you can use the provided generic tutorial.
In order to use BlueBanquise collections, you need the core variables, that contain the logic (BlueBanquise relies on a centralized logic to easily impact all roles at once).
To install core variables, you can either:
- Copy file bb_core.yml into your inventory at
group_vars/all/
level - Or install commons collection and invoke the vars plugin at ansible-playbook execution, using
ANSIBLE_VARS_ENABLED=ansible.builtin.host_group_vars,bluebanquise.commons.core
- Or add it into your
ansible.cfg
file (see example at ansible.cfg) by addingjinja2_extensions = jinja2.ext.loopcontrols,jinja2.ext.do
While first solution is simpler, second solution allows to use the galaxy update mechanism to ensure your core logic is always up to date (bug fixes mainly).
In both cases, you need to enable some Jinja2 extensions at run time. To do so, either:
- Add it into your
ansible.cfg
file (see example at ansible.cfg) by addingjinja2_extensions = jinja2.ext.loopcontrols,jinja2.ext.do
- Or invoke the extensions at ansible-playbook execution, using
ANSIBLE_JINJA2_EXTENSIONS=jinja2.ext.loopcontrols,jinja2.ext.do
Note that not all roles need this core logic, and that all logic variables are prefixed by j2_
.
To install BlueBanquise collections, you can use the ansible-galaxy command:
ansible-galaxy collection install git+https://github.com/bluebanquise/bluebanquise.git#/collections/commons,master -vvv --upgrade
ansible-galaxy collection install git+https://github.com/bluebanquise/bluebanquise.git#/collections/infrastructure,master -vvv --upgrade
To create your inventory, you can use the provided datamodel, and roles embed READMEs (for example, for pxe_stack role, you can rely on README.md, etc.).
You can invoke BlueBanquise roles using full name:
---
- name: managements playbook
hosts: "fn_management"
roles:
- role: bluebanquise.infrastructure.dhcp_server
tags: dhcp_server
- role: bluebanquise.infrastructure.pxe_stack
tags: pxe_stack
If you are not running Ansible as root, remember to pass the -b
(--become
) argument to ansible-playbook command.
It is advised to read the documentation at https://bluebanquise.com/documentation/ to understand stack basic concepts.
The stack documentation is available on the BlueBanquise website, in documentation subfolder.
Note that each role embeds its own README, with detailed usage description.
The stack packages are available in the repositories subfolder.
The stack aims at supporting a maximum range of hardware, CPU architectures, and Linux distributions.
Currently tested and supported distributions (other derivative could work) are:
Operating System family | Operating System distribution | Tested versions | Architectures | Notes |
---|---|---|---|---|
Red Hat | ||||
RHEL | 7, 8, 9 | x86_64, aarch64 | √ | |
Rocky Linux | 8, 9 | x86_64, aarch64 | √ | |
CentOS | 7, 8 | x86_64, aarch64 | √ | |
CentOS Stream | 8 | x86_64, aarch64 | √ | |
Alma Linux | 8, 9 | x86_64, aarch64 | √ | |
Debian | ||||
Ubuntu | 20.04, 22.04 | x86_64, arm64 | √. Diskless not supported for now. | |
Debian | 11, 12 | x86_64, arm64 | √. Diskless not supported for now. | |
Suse | ||||
SLES | 15 | x86_64, aarch64 | √. Diskless not supported for now. | |
OpenSuse Leap | 15 | x86_64, aarch64 | √. Diskless not supported for now. |
Ansible >= 4.10.0 is mandatory for BlueBanquise to run properly.
Please note that EL 7 systems (Centos 7, RHEL 7, etc.) is now considered best effort only.
BlueBanquise is part of the Algoric project from the Fabrique du Loch FabLab, located in Brittany - France.
It is a revamping of the old stack Banquise, based on Salt.
The BlueBanquise project is a 100% open source project, not managed by a company, and will stay MIT license.
You may wonder where this name comes from: