OpenCHAMI Quickstart Guide
In the guide below, we’ll show you how to install and run the OpenCHAMI services with all the containers you need to generate an inventory of your compute nodes and boot them.
Things move quickly, so the official guide on github may have updated information. See the quickstart README on Github for the most current documentation.
Happy HPC!
Start OpenCHAMI Services
All the OpenCHAMI services come pre-configured to work together using docker-compose. Using the directions below, you can clone the repos and run the containers in about five minutes without any external dependencies. See What’s Next for customization options and running jobs.
Quickstart
The quickstart is meant to be used on a dedicated node or VM running an RPM-based Linux system with an x86 processor.
The minimum tested configuration is 4 vCPUs and 8 Gigabytes of memory
Once you get the prompt back, you can download the public certificate from your ca and generate your access token.
Create a separate token that a script can use to update dnsmasq
Explore the environment on Github.
Dependencies and Assumptions
The OpenCHAMI services themselves are all containerized and tested running under docker compose
. It should be possible to run OpenCHAMI services on any system with docker installed.
This quickstart makes a few assumptions about the target operating system and is only tested on Rocky Linux 9.3 running on x86 processors. Feel free to file bugs about other configurations, but we will prioritize support for systems that we can directly test at LANL.
Assumptions
- Linux - The quickstart automation makes several assumptions about the behavior Unix tools and their operation under bash from Rocky Linux 9.3
- x86_64 - Some of the containers involved are built and tested for alternative operating systems and architectures, but the solution as a whole is only tested with x86 containers
- Dedicated System - The docker compose setup assumes that it can take control of several TCP ports and interact with the host network for DHCP and TFTP. It is tested on a dedicated virtual machine
- Local Name Registration - The quickstart bootstraps a Certificate Authority and issues an SSL certificate with a predictable name. For access, you will need to add that name/IP to /etc/hosts on all clients or make it resolvable through your site DNS
Dependencies
- Docker - This quickstart assumes that the target operating system is Rocky Linux 9.3, which by default does not come pre-installed with docker. Rocky also does not by default have access to docker’s repositories, and will install an alternaitve that’s incompatible with OpenCHAMI, Podman, when a user attempts to install
docker
from yum. We’ve provided steps from Docker’s installation guide to make sure you can get your containers up and running with ease:
Install yum-utils and point your machine at Docker’s repo:
Install Docker and start Docker’s service:
Additional verification and troubleshooting steps available at the page linked above if needed.
What’s next
Now that you’ve got a set of containers up and running that provide OpenCHAMI services, it’s time to use them. We’ve got a set of administration guides and user guides for you to choose from.
Docker Compose Tour
Learn just enough docker compose to explore our quickstart files
Run a job
Deploy slurm and run a simple job
Deploy an OS
Deploy Alma Linux with OpenHPC
Helpful docker compose cheatsheet
This quickstart uses docker compose
to start up services and define dependencies. If you have a basic understanding of docker, you should be able to work with the included services. Some handy items to remember for when you are exploring the deployment are below.
docker volume list
This lists all the volumes. If they exist, the project will try to reuse them. That might not be what you want.docker network list
ditto for networksdocker ps -a
the -a shows you containers that aren’t running. We have several containers that are designed to do their thing and then exit.docker logs <container-id>
allows you to check the logs of containers even after they have exiteddocker compose ... down --volumes
will not only bring down all the services, but also delete the volumesdocker compose -f <file.yml> -f <file.yml> restart <service-name>
will restart one of the services in the specified compose file(s) without restarting everything. This is particularly useful when changing configuration files.