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

Optional

  • Enable or disable BuildSteaM pipeline.

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

  • Default value: false

build_stream_port: 443

Optional

  • BuildStreaM API server port.

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

  • Default value: 443

postgres_db_name

Optional

Specify the PostgreSQL database name for BuildStreaM.

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.