Giter VIP home page Giter VIP logo

bluebanquise's Introduction

Kofi

BlueBanquise

BlueBanquise Logo

Web site: https://bluebanquise.com

๐Ÿ“ข The main branch is under active dev for now. Consider using a stable branch for production. ๐Ÿ“ข

What is BlueBanquise

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.

Collections

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.

License

BlueBanquise repository is under MIT license, except Bluebanquise documentation which is under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Quickstart

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.

1. Core variables and Jinja2 extensions

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 adding jinja2_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 adding jinja2_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_.

2. Install collections

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

3. Create inventory

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.).

4. Create playbooks

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.

5. Read documentation

It is advised to read the documentation at https://bluebanquise.com/documentation/ to understand stack basic concepts.

Resources

Documentation

The stack documentation is available on the BlueBanquise website, in documentation subfolder.

Note that each role embeds its own README, with detailed usage description.

Packages

The stack packages are available in the repositories subfolder.

Supported software environment

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.

The project

BlueBanquise is part of the Algoric project from the Fabrique du Loch FabLab, located in Brittany - France.

BlueBanquise Logo

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.

The name

You may wonder where this name comes from:

bluebanquise's People

Contributors

oxedions avatar btravouillon avatar bouriquet avatar johnnykeats avatar hmescaler avatar pigay avatar strus38 avatar ginomcevoy avatar osmocl avatar santos-lucas avatar thiagocardozo avatar sla31 avatar marbolangos avatar neilmunday avatar gavillom avatar aldarrie avatar sobrase avatar pietersdavid avatar jpm38 avatar dilassert avatar lmagdanello avatar alissonzuza avatar remyd1 avatar giacomo-mcevoy avatar mp-bull avatar patrick-legi avatar rezib avatar loar38 avatar wlln avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.