Step 3: Prepare the Omnia Infrastructure Manager
To enable BuildStreaM functionality, you must prepare the Omnia Infrastructure Manager (OIM) by deploying the required containers and services. This procedure installs the OpenCHAMI containers, BuildStreaM container, Omnia Auth container, Pulp container, and Playbook watcher service that are essential for automated build workflows and cluster management.
Prerequisites
Before beginning the BuildStreaM setup:
Ensure that the Omnia core container is installed with Omnia 2.2.0.0
Administrator access on the Omnia Infrastructure Manager (OIM) node
Minimum 4 GB RAM and 2 CPU cores for BuildStreaM services
10 GB free disk space for BuildStreaM data and logs
Ensure that the system time is synchronized across all compute nodes and the OIM. Time mismatch can lead to certificate-related issues during or after the
prepare_oim.ymlplaybook execution.
Important
BuildStreaM requires a separate PostgreSQL database for storing transaction details and job metadata.
Procedure
Update the following input files.
build_stream_config.yml: contains the details about the BuildStreaM pipeline.gitlab_config.yml: contains the details about the BuildStreaM GitLab configuration.high_availability_config.yml: contains the details about the high availability configuration.local_repo_config.yml: contains the details about the local repository configuration.network_spec.yml: contains the details about the network configuration.omnia_config.yml: contains the details about the Omnia configuration.provision_config.yml: contains the details about the provision configuration.security_config.yml: contains the details about the security configuration.storage_config.yml: contains the details about the storage configuration.telemetry_config.yml: contains the details about the telemetry configuration.telemetry_storage_config.yml: contains the details about the telemetry storage configuration.user_registry_credential.yml: contains the details about the user registry credentials.
build_stream_config.yml
Add necessary inputs to the build_stream_config.yml file for the BuildStreaM pipeline. Use the BuildStreaM configuration table for guidance when configuring these parameters.
Note
Ensure that the build_stream_port (BuildStreaM port) is correctly configured in the build_stream_config.yml file.
The BuildStreaM port cannot be modified after preparing the OIM. To modify the port after preparing the OIM, you need to cleanup the OIM first (using cleanup_oim.yml),
and then prepare the OIM again with the required port number (using prepare_oim.yml).
gitlab_config.yml
Add necessary inputs to the gitlab_config.yml file for the BuildStreaM GitLab configuration. Use the GitLab configuration table for guidance when configuring these parameters.
high_availability_config.yml
Add necessary inputs to the high_availability_config.yml file for the high availability configuration. Use the high availability configuration table for guidance when configuring these parameters.
local_repo_config.yml
Add necessary inputs to the local_repo_config.yml file for the local repository configuration. Use the local repository configuration table for guidance when configuring these parameters.
network_spec.yml
Add necessary inputs to the network_spec.yml file to configure the network on which the cluster will operate. Use the network configuration table for guidance when configuring these parameters.
Caution
All provided network ranges and NIC IP addresses should be distinct with no overlap.
All iDRACs must be reachable from the OIM.
A sample of the network_spec.yml where nodes are discovered using a mapping file is provided below:
Networks:
- admin_network:
oim_nic_name: "eno1"
netmask_bits: "24"
primary_oim_admin_ip: "172.16.107.67"
primary_oim_bmc_ip: ""
dynamic_range: "172.16.107.201-172.16.107.250"
dns: []
omnia_config.yml
Add necessary inputs to the omnia_config.yml file for the OMNIA configuration. Use the OMNIA configuration table for guidance when configuring these parameters.
provision_config.yml
Add necessary inputs to the provision_config.yml file for the provisioning of the cluster. Use the provisioning configuration table for guidance when configuring these parameters.
security_config.yml
Add necessary inputs to the security_config.yml file for the security configuration. Use the security configuration table for guidance when configuring these parameters.
storage_config.yml
Add necessary inputs to the storage_config.yml file for the storage configuration. Use the storage configuration table for guidance when configuring these parameters. For configuring PowerScale as S3 storage, refer to PowerScale S3 configuration.
telemetry_config.yml
Add necessary inputs to the telemetry_config.yml file for the telemetry configuration. Use the telemetry configuration table for guidance when configuring these parameters.
telemetry_storage_config.yml
Add necessary inputs to the telemetry_storage_config.yml file for the telemetry storage configuration. Use the telemetry storage configuration table for guidance when configuring these parameters.
After updating the input files, run the
prepare_oim.ymlplaybook:ssh omnia_core cd /omnia/prepare_oim ansible-playbook prepare_oim.yml
The prepare_oim.yml deploys the following on the OIM node:
OpenCHAMI containers
PostgreSQL database container
Omnia Auth container
Pulp container
BuildStreaM API container
Playbook watcher service
Note
After prepare_oim.yml execution, ssh omnia_core may fail if you switch from a non-root to root user using sudo command. To avoid this, log in directly as a root user before executing the playbook or follow the steps mentioned here.
Verification
After successfully running the prepare.oim.yml, you can verify if the omnia.target and
its dependent services are running correctly.
Run the following command to check the status of the OMNIA Core service:
systemctl status omnia_core.service
This command displays whether the
omnia_core.serviceis active, inactive, or has failed.Check the status of the BuildStreaM API container.
systemctl status omnia_build_stream.service
Check the status of the playbook watcher service.
systemctl status playbook_watcher.service
Check the status of the PostgreSQL database container.
systemctl status omnia_postgres.service
To view the complete list of dependent services for the OMNIA target, run:
systemctl list-dependencies omnia.target
Review the status of the dependent services in the following tree output.
Note
The
prepare_oim.ymldeploys the following on the OIM node only when BuildStream is enabled on thebuild_stream_config.yml.PostgreSQL database container
BuildStreaM API container
Playbook watcher service
omnia.target ● ├─minio.service ● ├─omnia_auth.service ● ├─omnia_build_stream.service ● ├─omnia_core.service ● ├─omnia_postgres.service ● ├─playbook_watcher.service ● ├─pulp.service ● ├─registry.service ● ├─network-online.target ● │ └─NetworkManager-wait-online.service ● └─openchami.target ● ├─acme-deploy.service ● ├─acme-register.service ● ├─bss-init.service ● ├─bss.service ● ├─cloud-init-server.service ● ├─coresmd-coredhcp.service ● ├─coresmd-coredns.service ● ├─haproxy.service ● ├─hydra-gen-jwks.service ● ├─hydra-migrate.service ● ├─hydra.service ● ├─opaal-idp.service ● ├─opaal.service ● ├─openchami-cert-trust.service ● ├─postgres.service ● ├─smd-init.service ● ├─smd.service ● └─step-ca.service
A green circle indicates that the service is running.
A grey circle indicates that the service is not running.
A circle with a cross indicates that the service failed to start.
Note
The
omnia_auth.serviceruns only when OpenLDAP is specified in the/opt/omnia/input/project_default/software_config.json.Note
The
omnia_build_stream.service,omnia_postgres.service, andplaybook_watcher_servicerun only when BuildStreaM is enabled in the/opt/omnia/input/project_default/build_stream_config.yml.
View Usage Instructions for OpenCHAMI Containers
The ochami --help command provides usage instructions for interacting with OpenCHAMI services.
The help menu lists the supported commands you can use for node discovery, provisioning, and service management.
Access the OpenCHAMI container via Podman.
On the Omnia Infrastructure Manager (OIM), run the following command:
ochami --help
The help menu includes:
bss: Communicate with the Boot Script Service (BSS).cloud-init: Interact with the cloud-init service.completion: Generate the autocompletion script for the specified shell.config: View or modify configuration options.discover: Perform static or dynamic discovery of nodes.pcs: Interact with the Power Control Service (PCS).smd: Communicate with the State Management Database (SMD).version: Display detailed version information and exit.help: Display help for a specific command.
For more details about a specific command, run:
ochami [command] --help
If you have any feedback about Omnia documentation, please reach out at omnia.readme@dell.com.