Step 5: Prepare the OIM

The prepare_oim.yml playbook is used to prepare the Omnia Infrastructure Manager (OIM). The playbook performs the following on the OIM:

  • Sets up the OpenCHAMI containers.

  • Sets up the BuildStreamM container if BuildStreaM is enabled in /opt/omnia/input/project_default/build_stream_config.yml.

  • Sets up the Omnia Auth container if "name": "openldap", "arch": ["x86_64"] entry is present in /opt/omnia/input/project_default/software_config.json.

  • Sets up the Pulp container: pulp

Prerequisite

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.yml playbook execution.

Input files for the playbook

The prepare_oim.yml playbook is dependent on the inputs provided to the following input files:

  • network_spec.yml: This input file is located in the /opt/omnia/input/project_default folder and contains the necessary configurations for the cluster network.

  • provision_config.yml: This input file is located in the /opt/omnia/input/project_default folder and contains the details about provisioning of clusters.

  • build_stream_config.yml: This input file is located in the /opt/omnia/input/project_default folder and contains the details about the BuildStreamM pipeline.

1. network_spec.yml

Add necessary inputs to the network_spec.yml file to configure the network on which the cluster will operate. Use the below table as reference while doing so:

network_spec.yml

Network Name

Parameters for the network

Parameter details

admin_network

Note

This name cannot be modified. This is mandatory for discovery and provisioning of the cluster nodes.

oim_nic_name

string

Mandatory

The name of the NIC on which the administrative network is accessible to the OIM. Default value: eno1

netmask_bits

integer

Mandatory

The 32-bit “mask” used to divide an IP address into subnets and specify the network’s available hosts. Default value: 24

primary_oim_admin_ip

IP address

Mandatory

The admin IP address of the OIM server. Default value: 172.16.107.254

primary_oim_bmc_ip

IP address

Conditional mandatory

  • The iDRAC IP address of the OIM server

  • Mandatory only if idrac_telemetry is set to true and telemetry data needs to be collected.

  • This field can be omitted if iDRAC telemetry is not required.

dynamic_range

IP address range

Mandatory

The dynamic range of IPs to be provisioned on target nodes. Default value: 172.16.107.201-172.16.107.250

dns

IP address

Optional

External DNS server IP addresses for the admin network.

ib_network

Note

This network is used for the InfiniBand (IB) interface configuration. Provide the subnet and netmask only if IB configuration is desirable.

Subnet

IP address

Mandatory

The subnet address for the InfiniBand network. Default value: 192.168.0.0

netmask_bits

integer

Mandatory

  • The 32-bit “mask” used to divide an IP address into subnets and specify the network’s available hosts. Default value: 24

  • Netmask bits of ib_network should match the netmask bits of the admin network.

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: []

2. provision_config.yml

Add necessary inputs to the provision_config.yml file for the provisioning of the cluster. Use the below table as reference while doing so:

provision_config.yml

Parameter

Details

pxe_mapping_file_path

string

Optional

  • Enter the path where user has placed the PXE mapping CSV file that contains the node details for provisioning.

  • The file must follow the format: FUNCTIONAL_GROUP_NAME, GROUP_NAME, SERVICE_TAG, PARENT_SERVICE_TAG, HOSTNAME, ADMIN_MAC, ADMIN_IP, BMC_MAC, BMC_IP

  • This variable is required to discover nodes using a mapping file.

  • The headers of the .csv file are are FUNCTIONAL_GROUP_NAME, GROUP_NAME, SERVICE_TAG, PARENT_SERVICE_TAG, HOSTNAME, ADMIN_MAC, ADMIN_IP, BMC_MAC, BMC_IP

  • A sample file is provided here: /omnia/examples/pxe_mapping_file.csv

timezone

string

Required

Timezone to be used during OS provisioning. Available timezones are provided here.

Choices:

  • GMT <- default

  • EST

  • CET

  • MST

  • CST6CDT

  • PST8PDT

language

string

Required

Language to be used during OS provisioning.

Default value: en_US.UTF-8

default_lease_time

integer

Required

Default lease time for IPs assigned by DHCP. Range: 21600-86400

Default value: 86400

3. build_stream_config.yml

Add necessary inputs to the build_stream_config.yml file for the BuildStreamMpipeline. Use the below table as reference while doing so:

build_stream_config.yml

Parameter

Mandatory/Optional

Description

enable_build_stream

Mandatory

  • Enable or disable BuildStreaM pipeline.

  • Accepted values: boolean values (true or false) or (yes or no)

  • Default value: false

build_stream_host_ip

Mandatory

  • Optional: Build Stream API server host IP

  • Accepted values: The public IP address of OIM or admin IP of OIM. The public IP address should be reachable from the GitLab server.

  • Default value: The admin IP of OIM.

build_stream_port

Mandatory

  • BuildStreaM API server port.

  • Accepted values: valid port number (1-65535) which is free

  • Default value: 8010

aarch64_inventory_host_ip

Conditional Mandatory

  • Specify the aarch64 inventory host IP address for aarch64 builds.

  • Accepted values: The admin IP of aarch64 host where OS is installed.

  • Default value: None. If the inventory host IP address is not specified, the build images for aarch64 are not generated.

Playbook Execution

After you have filled in the input files as mentioned above, execute the following commands to trigger the playbook:

ssh omnia_core
cd /omnia/prepare_oim
ansible-playbook prepare_oim.yml

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.

If you have any feedback about Omnia documentation, please reach out at omnia.readme@dell.com.