This repository provides a Vagrant configuration for setting up an openSUSE Leap 15.5 (aarch64) virtual machine using QEMU. The VM includes a fully configured SLURM workload manager, Nomad, and other necessary dependencies compatible for vService development.
Before running this setup, ensure you have the following installed on your host machine:
-
Clone the repository
git clone ...
-
Start the Vagrant machine:
vagrant up
This will provision the VM, install necessary dependencies, and configure SLURM, Nomad, and Terraform.
-
Access the virtual machine:
vagrant ssh
-
Verify installations:
-
Check if SLURM is running:
scontrol show nodes
-
Check if Nomad is running:
nomad node status
-
SLURM is installed and configured with the following key settings:
- MUNGE authentication is enabled to ensure secure communication.
- SLURM control daemon (slurmctld) is enabled to manage job scheduling.
- SLURM compute daemon (slurmd) is set up for node execution.
- Configuration files (
slurm.conf
,cgroup.conf
) are provided via the Vagrant synced folder. - Systemd services for
slurmctld
andslurmd
are installed and enabled.
Nomad is installed with the following key settings:
- SSL certificates are configured to secure communication.
- Nomad service is installed and enabled via systemd.
- Bootstrap ACL process is performed to initialize authentication.
- Environment variables for Nomad access (
NOMAD_ADDR
,NOMAD_TOKEN
) are set up. - Configuration files (
nomad.hcl
,nomad.service
, and certificates) are provided via the Vagrant synced folder.
After provisioning, the following environment variables are automatically set in /home/vagrant/.bashrc
:
export NOMAD_ADDR="https://127.0.0.1:4646"
export NOMAD_CACERT="/etc/nomad.d/certs/nomad-ca.pem"
export NOMAD_TOKEN="<your-generated-token>"
export TF_VAR_nomad_server_url="https://127.0.0.1:4646"
export TF_VAR_nomad_secret_id="$NOMAD_TOKEN"
export TF_VAR_nomad_ca_cert="/etc/nomad.d/certs/nomad-ca.pem"
export TF_VAR_nomad_cli_cert="/etc/nomad.d/certs/nomad-server.pem"
export TF_VAR_nomad_cli_key="/etc/nomad.d/certs/nomad-server.key"
-
The VM provisions automatically on
vagrant up
. -
To destroy the VM, use:
vagrant destroy -f
-
If changes are made to the configuration, reload the VM with:
vagrant reload --provision