Prepare base infrastructure¶
Overview¶
Use ./omnia.sh --prepare-base after setting up the Omnia Infrastructure
Manager (OIM) to validate and prepare the infrastructure required by the core
deployment workflow. The command processes Repository Manager, Image Build Manager,
and Orchestrator in that order for each lifecycle phase. Execution is
phase-by-phase across all domains, not domain-by-domain. If any domain fails in
any phase, the command stops immediately (fail-fast behavior).
| Phase | Repository Manager | Image Build Manager | Orchestrator |
|---|---|---|---|
| Validation | precheck |
validate |
validate |
| Credentials | credentials |
credentials |
credentials |
| Preparation | prepare |
prepare |
prepare |
Preparation deploys the Pulp service, the image registry, MinIO when it is the selected S3 provider, and the OpenCHAMI services. It also deploys OpenLDAP when the selected catalog enables it.
This command does not synchronize repository content, generate
repo_status.yml, build operating-system images, generate build_status.yml,
or provision cluster nodes.
Prerequisites¶
- Complete Set up the OIM. The Python virtual environment
configured by
OMNIA_VENV_PATHmust exist. - Configure the installed environment in
/etc/omnia/omnia.env, including a validSYSTEM_ADMIN_NIC_IPV4andCATALOG_FILE_PATH. -
Review the staged inputs for each domain that will be prepared:
$OMNIA_DATA_PATH/repo_manager/input/$OMNIA_PROJECT_NAME/ $OMNIA_DATA_PATH/image_build_manager/input/$OMNIA_PROJECT_NAME/ $OMNIA_DATA_PATH/orchestrator/input/$OMNIA_PROJECT_NAME/
Orchestrator inputs are stored beneath $OMNIA_DATA_PATH/orchestrator.
- Ensure the OIM can reach the package and container sources required by the selected configurations.
- Run the command with privileges to manage Podman containers, systemd services, firewall settings, certificates, and files under the configured Omnia data paths.
- Have the credential values required by the selected Repository Manager, S3, aarch64, OpenLDAP, and Orchestrator configurations available. The command collects only the values applicable to the current configuration.
For a manual image-build workflow that does not use BuildStreaM, Orchestrator can be skipped until its inputs are ready.
Procedure¶
-
Change to the Main source directory:
Run on: OIM hostcd <OMNIA_SOURCE_PATH>/src/main -
Optional: Preview the domains and phase-specific tags without running Ansible:
Run on: OIM host./omnia.sh --prepare-base --dry-run -
Prepare all three base domains:
Run on: OIM host./omnia.sh --prepare-baseProvide requested credentials at the prompts. The command completes each phase across the selected domains before starting the next phase. If any domain fails, processing stops immediately.
-
For a manual image-build workflow that does not use BuildStreaM, prepare only the services required before building images by skipping Orchestrator:
Run on: OIM host./omnia.sh --prepare-base --skip orchestrator--skipaccepts a comma-separated list containing onlyrepo_manager,image_build_manager, andorchestrator. For a new image-building environment, include Repository Manager because Image Build Manager requires its synchronized output during the build phase. Skip Repository Manager only when its Pulp service and a successfulrepo_status.ymlare already available.Note
For the BuildStreaM workflow, do not skip any domain. Run
./omnia.sh --prepare-basewithout--skipso Repository Manager, Image Build Manager, and Orchestrator are all prepared.
Verification¶
A successful run ends with a preparation summary reporting zero failed domains. The preparation playbooks also verify the services that they deploy.
For the default local-service configuration, confirm the following services are active:
systemctl is-active pulp.service
systemctl is-active registry.service
systemctl is-active openchami.target
When MinIO is selected as the S3 provider, also run:
systemctl is-active minio.service
When the catalog enables OpenLDAP, also run:
systemctl is-active omnia_auth.service
Services for a skipped domain are not expected to be prepared by this command.
Next steps¶
Note
Skip the commands in this section for the BuildStreaM workflow. The BuildStreaM build and deployment pipelines perform the corresponding repository, image-build, and cluster-deployment operations.
For a manual workflow, after configuring the catalog, repository sources, and required Orchestrator inputs, continue with these domain operations:
cd <OMNIA_SOURCE_PATH>/src/main
./omnia.sh --run repo_manager --tags execute
./omnia.sh --run image_build_manager --tags execute
./omnia.sh --run orchestrator --tags execute
source /opt/omnia/activate-omnia.sh
cd <OMNIA_SOURCE_PATH>/src/repo_manager/playbooks
ansible-playbook repo_manager.yml --tags execute
cd <OMNIA_SOURCE_PATH>/src/image_build_manager/playbooks
ansible-playbook image_build_manager.yml --tags execute
cd <OMNIA_SOURCE_PATH>/src/orchestrator/playbooks
ansible-playbook orchestrator.yml --tags execute
Repository Manager synchronizes the configured content and writes
repo_status.yml. Image Build Manager consumes that file, builds the images,
and writes build_status.yml. Orchestrator consumes the generated outputs,
provisions the cluster nodes, and performs PXE boot when it is enabled.
For the complete procedures:
- Configure and synchronize repositories
so Repository Manager generates a successful
repo_status.yml. - Build OS images. Image Build
Manager consumes
repo_status.yml, uploads the image artifacts, and generatesbuild_status.yml. - Continue with Orchestrator after the required functional-group images and Orchestrator inputs are ready.
Troubleshooting¶
- The virtual environment is not found: Run
./omnia.sh --setup-venvbefore preparing the base domains. The command expects the activation file at$OMNIA_VENV_PATH/bin/activate. - A domain fails during validation: Correct that domain's staged input or
environment values. The failure output identifies the domain and phase.
Because execution is phase-by-phase with fail-fast behavior, you must fix
the issue and rerun the entire
--prepare-basecommand. - A credential phase fails: Verify the required values and access to the domain credential and Vault-key files, then rerun the command.
- A service fails during preparation: Review the applicable log:
/var/log/omnia/repo_manager/repo_manager.log,/var/log/omnia/image_build_manager/image_build_manager.log, or/var/log/omnia/orchestrator/orchestrator.log. Also inspect the failed systemd service and its Podman container logs. - An invalid domain is supplied to
--skip: Use onlyrepo_manager,image_build_manager, ororchestrator. - Preparation stops after a failure: Correct the reported problem and
rerun
./omnia.sh --prepare-base. The command starts again with validation and safely rechecks already prepared services. The fail-fast behavior means all phases restart from the beginning, but already prepared services are safely rechecked.
For container, certificate, and connectivity failures, see Base infrastructure preparation failures.