Re-provision Cluster Nodes¶
Re-provisioning replaces the diskless image on existing cluster nodes. Since Omnia uses stateless (diskless) provisioning, nodes load their OS entirely from network-delivered images. Re-provisioning is performed by PXE booting the target nodes so they receive the latest image from the OIM.
Warning
If you deploy a fresh Slurm or Service Kubernetes cluster, ensure the NFS server share path used by the cluster is cleared manually. NFS details are configured in storage_config.yml.
Caution
Re-provisioning the Slurm Control Node or Kube Control Plane requires the entire cluster to be reprovisioned.
Prerequisites¶
- The OIM is healthy and all OIM services are running (verify with Verify OIM Services).
- NFS or PowerScale shared storage is accessible from the OIM and all cluster nodes.
Re-provision without modifications¶
If no changes have been made to the mapping file, software_config.json, or input configuration files, PXE boot the target nodes. The OS is automatically installed on every PXE boot. This can be done using the PXE Boot Playbook.
ssh omnia_core
cd /omnia/utils
ansible-playbook set_pxe_boot.yml -i inventory
Re-provision with modifications¶
Use this procedure when you have updated the mapping file, software_config.json, or any input configuration files.
-
Update the PXE mapping file (for mapping file discovery) or ensure nodes are configured in OME (for OME-based provisioning). Update
software_config.jsonas required. -
If
software_config.jsonhas been modified, runlocal_repo.ymland then build new images:Run on: omnia_core containercd /omnia/local_repo ansible-playbook local_repo.yml cd /omnia/build_image_x86_64 ansible-playbook build_image_x86_64.yml # For aarch64 images cd /omnia/build_image_aarch64 ansible-playbook build_image_aarch64.yml -i inventory -
After images are created, run
provision.yml:Run on: omnia_core containercd /omnia/provision ansible-playbook provision.yml -
PXE boot the target nodes using the PXE Boot Playbook.
NFS share cleanup¶
When deploying a fresh cluster, you must clear the NFS share paths before re-provisioning. OIM Cleanup can be used to clear the NFS share paths. Choose one of the following approaches based on your requirements.
Reuse the same share paths¶
- Power off all servers except the OIM.
-
From the OIM, delete all contents in the nfs share used by the cluster (identified in
storage_config.yml):Run on: OIM hostrm -rf <mounted_share_path>/* -
Run
provision.yml:Run on: omnia_core containerssh omnia_core cd /omnia/provision ansible-playbook provision.yml -
PXE boot the target nodes using the PXE Boot Playbook.
Use new share paths¶
-
Update
mountsin storage_config.yml corresponding tonfs_storage_nameunderslurm_clusterorservice_k8s_clusterin omnia_config.yml. -
Run
provision.yml:Run on: omnia_core containercd /omnia/provision ansible-playbook provision.yml -
PXE boot the target nodes using the PXE Boot Playbook.
Verification¶
sinfo
kubectl get nodes
Info
- Add/Remove Nodes -- Add or remove nodes without re-imaging.
- OIM Cleanup -- Full teardown and rebuild of the OIM itself.
- Build Cluster Images -- Image build procedure.
- Configure Mounts -- NFS mount configuration for cluster nodes.
- Configure PXE Boot -- PXE boot configuration for cluster nodes.