Deploy OpenLDAP¶
Overview¶
Orchestrator deploys the omnia_auth OpenLDAP container on the OIM when the
selected deployment catalog contains an OpenLDAP group. The source derives the
LDAP search base from SYSTEM_DOMAIN_NAME, uses SYSTEM_ADMIN_NIC_IPV4 as the
LDAP server address, collects the OpenLDAP database username and password in
an Ansible Vault file, generates TLS material, and configures LDAP clients
during Slurm provisioning. The default Kubernetes bolt-on list does not
configure an OpenLDAP client, but it can be enabled with the supported
orchestrator.bolt_ons.kubernetes override in omnia_config.yml.
OpenLDAP selection is catalog-driven. There is no ldap_enabled input and no
deploy_openldap top-level tag.
Prerequisites¶
- Complete the OpenCHAMI deployment prerequisites.
- Ensure the catalog used by Orchestrator contains the required OpenLDAP group.
Orchestrator derives
openldap_supportwhen a case-sensitive catalog group name contains the lowercase textopenldap. - Configure
SYSTEM_DOMAIN_NAMEas an FQDN containing at least one dot. The source converts each domain component to the LDAP search base; for example,omnia.clusterbecomesdc=omnia,dc=cluster. - Configure
security_config.ymlin the project input directory withldap_connection_type: "TLS"orldap_connection_type: "SSL". Provisioned Slurm and login clients use StartTLS on TCP 389 forTLSand LDAPS on TCP 636 forSSL. Theomnia_authQuadlet publishes both ports. - Make the
docker.io/dellhpcomniaaisolution/omnia_auth:1.2container image available to Podman on the OIM.
Procedure¶
-
Confirm that the catalog path in
orchestrator_config.ymlpoints to the catalog selected for this deployment. Leavecatalog_file_pathempty to useCATALOG_FILE_PATHor$OMNIA_DATA_PATH/catalog/catalog_rhel.json. -
Set the connection type in the staged input file:
security_config.ymlldap_connection_type: "TLS"To configure Kubernetes nodes as OpenLDAP clients as well, replace the Kubernetes bolt-on list in
omnia_config.ymland includeopenldap:omnia_config.ymlorchestrator: bolt_ons: kubernetes: - mount_config - k8s_config - openldapThe override replaces the Kubernetes default list. OpenLDAP client configuration still runs only when the catalog enables OpenLDAP.
-
Run the precheck. When OpenLDAP is enabled and its credential file is absent, the precheck reports that the credentials will be collected in the prepare phase.
Run on: OIMcd <OMNIA_SOURCE_PATH>/src/main ./omnia.sh --run orchestrator --tags precheckRun on: OIMsource /opt/omnia/activate-omnia.sh cd <OMNIA_SOURCE_PATH>/src/orchestrator/playbooks ansible-playbook orchestrator.yml --tags precheck -
Run the
preparephase and supplyopenldap_db_usernameandopenldap_db_passwordwhen prompted. The credential role stores them inorchestrator_credentials.ymlin the active project's Orchestrator input directory and encrypts the file with.orchestrator_credentials_key.Run on: OIMcd <OMNIA_SOURCE_PATH>/src/main ./omnia.sh --run orchestrator --tags prepareRun on: OIMsource /opt/omnia/activate-omnia.sh cd <OMNIA_SOURCE_PATH>/src/orchestrator/playbooks ansible-playbook orchestrator.yml --tags prepare
Credential collection prompts for values that are empty or that fail the current credential rules. Provisioning password and BMC username/password are always required; Slurm, OpenLDAP, and PowerScale CSI credentials are added when those features are selected. Every password prompt requires confirmation. Valid stored values are retained; use the approved encrypted- file update procedure when intentionally rotating a still-valid value.
The phase creates $OMNIA_DATA_PATH/auth/config, tls_certs, data, and
init; generates slapd.conf, bootstrap.ldif, and a certificate; creates
/etc/containers/systemd/omnia_auth.container; and enables and starts the
omnia_auth systemd service.
Verification¶
Run the source-defined deployment health check:
cd <OMNIA_SOURCE_PATH>/src/main
./omnia.sh --run orchestrator --tags validate-deployment
source /opt/omnia/activate-omnia.sh
cd <OMNIA_SOURCE_PATH>/src/orchestrator/playbooks
ansible-playbook orchestrator.yml --tags validate-deployment
Then inspect the container:
podman ps --filter name=omnia_auth
systemctl status omnia_auth
The health phase skips OpenLDAP when the catalog does not enable it. When it is
enabled, validation fails unless the omnia_auth container exists and its
state is running.
Next steps¶
- Continue with Provision Nodes. The default Slurm
provisioning path runs the OpenLDAP client configuration when the catalog
enables OpenLDAP. Kubernetes does not include OpenLDAP in its default
bolt-on list; add
openldapto the supportedorchestrator.bolt_ons.kubernetesoverride when Kubernetes nodes must be configured as LDAP clients. - Use Deploy Slurm or Deploy Kubernetes for service-specific inputs.
Troubleshooting¶
OpenLDAP is skipped unexpectedly
Confirm catalog_file_path and verify that the selected catalog contains a
group name with the lowercase text openldap. The precheck, credentials,
prepare, deploy, and validate-deployment flows fail when the resolved
catalog is missing or invalid; they do not silently disable OpenLDAP.
The deployment reports missing credentials
Run the credential phase, then retry deployment:
cd <OMNIA_SOURCE_PATH>/src/main
./omnia.sh --run orchestrator --tags credentials
./omnia.sh --run orchestrator --tags deploy
source /opt/omnia/activate-omnia.sh
cd <OMNIA_SOURCE_PATH>/src/orchestrator/playbooks
ansible-playbook orchestrator.yml --tags credentials
ansible-playbook orchestrator.yml --tags deploy
The omnia_auth container is not running
Inspect the directory and log named in the source validation message:
ls -la "$OMNIA_DATA_PATH/auth"
podman logs omnia_auth
systemctl status omnia_auth
Then rerun ./omnia.sh --run orchestrator --tags deploy from src/main.