Lightbits Over Ubuntu

AI Tools

This article describes installation on Ubuntu based storage targets in containerized versions of Lightbits storage. See the Lightbits Installation Guide Introduction for additional information.

Prerequisites

Note:

Before getting started, you should review the general prerequisites for any Lightbits installation. See General System Requirements for additional information.

  • Ubuntu 24.04

  • Netplan installed

  • Standard Fio utility installed and available in the default path

  • Standard ~/bin/bash utility installed and available in the default path

  • Podman installed and available in the default path

  • Entitlement to Cloudsmith

  • Network uses MTU 1500

  • Data (NICs) IPs configured correctly in the host_vars file.

Installation Steps

Cluster Side

Bring up a clean cluster using Ubuntu 24.04.

Installation Machine

  1. Bring up/use a dedicated server to run Ansible.

  2. Create a directory to run Ansible from:

    1. mkdir light-apps

    2. cd light-apps

  3. Fetch the release specific ansible tar:

curl -1 https://dl.lightbitslabs.com/<YOUR_TOKEN>/lightos-(Ver)-containers/raw/files/<ansible bundle name>?accept_eula=1 -o <package name> tar -xvf <ansible-bundle name>
  1. Edit the all.yaml add path to containers and mode of operation:

vi ansible/inventories/cluster_example/group_vars/all.yml

Add these:

image_repo_prefix: docker.lightbitslabs.com/<REPO_NAME> image_tag: <VERSION> run_in_container: true install_podman: false registry_token: <YOUR_TOKEN>
  1. Edit the server files, and update the data IPs and other configs such as n devices, max devices, etc.

vi ansible/inventories/cluster_example/host_vars/server00.yml vi ansible/inventories/cluster_example/host_vars/server01.yml vi ansible/inventories/cluster_example/host_vars/server02.yml
  1. Fetch a Lightbits Ansible Docker image. This is optional; Docker will pull it automatically in the next step. If fetching manually, use at least Ansible v9.13.0-1.

  2. Run the Ansible installation:

docker run -it --rm --net=host \ -e UID=`id -u` \ -e GID=`id -g` \ -e UNAME=$USER \ -v `pwd`:/ansible \ -w /ansible \ -e ANSIBLE_LOG_PATH=/ansible/ansible.log \ docker.lightbitslabs.com/<REPONAME>/lb-ansible:<VERSION> \ sh -c 'ansible-playbook \ -e system_jwt_path=/ansible/lightos_jwt \ -e certificates_directory=/ansible/lightos-certificates \ -i ansible/inventories/cluster_example/hosts \ playbooks/deploy-lightos.yml -vvv'

Upgrade Cluster

If you are not already logged in to the registry from the installation, use the following:

echo "<TOKEN>" | podman login docker.lightbitslabs.com/<REPO_NAME> -u <REPO_NAME> --password-stdin For exmaple: echo "QR...AB" | podman login docker.lightbitslabs.com/lightos-3-20-1-containers -u lightos-3-20-1-containers --password-stdin

To upgrade the entire cluster, use the following command:

lbcli upgrade cluster --install-pkg-uri=docker.lightbitslabs.com/<REPO_NAME>:<RELEASE_TAG> For examaple: lbcli upgrade cluster --install-pkg-uri=docker.lightbitslabs.com/lightos-3-20-1-containers:3.20.1

Then answer  “Yes” to “Do you want to continue upgrading the cluster? [Yes/No]”.

Upgrade Server

If you are not already logged in to the registry from the installation, use the following:

echo "<TOKEN>" | podman login docker.lightbitslabs.com/<REPO_NAME> -u <REPO_NAME> --password-stdin For exmaple: echo "QR...AB" | podman login docker.lightbitslabs.com/lightos-3-20-1-containers -u lightos-3-20-1-containers --password-stdin

To upgrade only a single server, find the relevant server ID first, using the following command:

lbcli list server

And note the relevant server’s UUID.

Then use the following command:

lbcli upgrade server --uuid=<SERVER_UUID> --install-pkg-uri=docker.lightbitslabs.com/<REPO_NAME>:<RELEASE_TAG> For exmaple: lbcli upgrade cluster --uuid= 32843ea2-9d13-5738-9b9e-0ce60b8db865 --install-pkg-uri=docker.lightbitslabs.com/lightos-3-20-1-containers:3.20.1