Lightbits Over Ubuntu

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