Skip to main content
NetApp artificial intelligence solutions

Customize the Lustre Ansible Inventory

Contributors netapp-jsnyder mcwhiteside

Create a working copy of an EF80 deployment template and customize its inventory for your servers, arrays, networks, and Lustre building blocks.

Keep the selected inventory under its fabric and platform directory. Retain the shared playbooks directory and passwords.yml file at the root of building_blocks.

Select a deployment template

Start from the template that matches the site's network fabric:

Configure site-specific settings

Set the site-specific values in the inventory, along with the local repository and udev-rule settings. Line references in the table point to the RoCE EF80 template files in the ansible-lustre release/1.0.0 tag. The InfiniBand template uses the same variable names and structure except for the LNet interface variable, which is noted in the table.

Field Ansible variable Template file (release/1.0.0) Scope Notes

File system name

eseries_lustre_filesystem_mgt.format_options.fsname, eseries_lustre_filesystem_mdt.format_options.fsname, eseries_lustre_filesystem_ost.format_options.fsname

ha_cluster.yml#L76, #L90, #L110

Cluster-wide

Nested under format_options for the MGT, MDT, and OST maps. Maximum 8 characters. Use the same value in all three locations. A top-level fsname key has no effect.

MGS NIDs for target registration

eseries_lustre_filesystem_mdt.format_options.mgsnode, eseries_lustre_filesystem_ost.format_options.mgsnode

ha_cluster.yml#L98, #L118

Cluster-wide

Nested under MDT and OST format_options. Include the frontend LNet NIDs from both nodes in the HA pair. List the NIDs from the node configured as the preferred MGS owner first, followed by the partner node's NIDs.

Pacemaker cluster name

eseries_lustre_pacemaker_cib_properties_overrides.cluster_properties.cluster-name

ha_cluster.yml#L228

Cluster-wide

Nested under Pacemaker CIB property overrides. Unique name for the HA cluster.

BMC fencing addresses

eseries_lustre_pacemaker_fencing_agents.fence_redfish.ip

ha_cluster.yml#L211, #L214, #L217, #L220

Repeat per Lustre server

Redfish BMC IP address for each server node.

Alert email recipients

eseries_lustre_alert_email_list

ha_cluster.yml#L233

Cluster-wide

Recipients for HA resource and failure notifications.

Mail domain

eseries_lustre_mail_service_overrides.conf.mydomain

ha_cluster.yml#L240

Cluster-wide

Postfix domain used to send alert email.

NTP time sources

eseries_lustre_time_sync_overrides.server_pools

ha_cluster.yml#L250

Cluster-wide

Time sources for the cluster nodes. Specify an NTP pool or one or more individual NTP servers. Include the required pool or server directive and options such as iburst.

Interface PCI-to-name udev map

eseries_ip_udev_rules

ha_cluster.yml#L172

Repeat per HCA slot layout

Map each PCI slot to a persistent interface name (values at L182). Collect with lspci -nnvmm.

Local package repository (optional)

eseries_common_yum_repos

ha_cluster.yml#L256, #L261

Cluster-wide

For air-gapped installs, uncomment the block and set the repository url (L264).

Server management IP

ansible_host

host_vars/lustre_01.yml#L10

Repeat per Lustre server

One host_vars/lustre_NN.yml file per server.

NVMe-oF backend interfaces

eseries_nvme_roce_interfaces (RoCE) / eseries_nvme_ib_interfaces (InfiniBand)

RoCE host_vars/lustre_01.yml#L21, InfiniBand host_vars/lustre_01.yml#L17

Repeat per Lustre server

Backend interface addresses used for NVMe-oF storage traffic to the E-Series arrays.

LNet cluster interfaces

eseries_roce_interfaces (RoCE) / eseries_ipoib_interfaces (InfiniBand)

RoCE host_vars/lustre_01.yml#L47, InfiniBand host_vars/lustre_01.yml#L38

Repeat per Lustre server

Frontend LNet interface addresses (RoCE values at L56; InfiniBand values at L47).

Corosync node IPs

eseries_lustre_corosync_node_ips

host_vars/lustre_01.yml#L58

Repeat per Lustre server

List all node IPs in the HA cluster (values at L62).

Lustre target service NIDs

lustre_target_service_nodes

host_vars/lustre_01.yml#L64

Repeat per Lustre server

Include frontend LNet NIDs (@o2ib) from both nodes in the HA pair so that target services remain reachable after failover (values at L67).

Array management IP

ansible_host

host_vars/netapp_01.yml#L13

Repeat per E-Series array

Management IP of one controller; the API URL derives from it.

Building-block group membership

mgs / mds_NN / oss_NN

lustre_inventory.yml

Per building block

Each inventory hostname must match the basename of its corresponding host_vars file. For example, host lustre_01 uses host_vars/lustre_01.yml, and netapp_01 uses host_vars/netapp_01.yml. Include the MGS group only in the first building block. Include MDS groups in the base building block and each MDT+OST expansion building block; omit MDS groups only from OST-only expansion building blocks. Register expansion targets against the existing MGS with mgsnode.

Repeat the settings for each host and building block. Create one host_vars/lustre_NN.yml file per Lustre server and one host_vars/netapp_NN.yml file per array, and repeat the inventory groups for each additional building block.

The deployment playbooks load array, Pacemaker, and BMC credentials from the shared building_blocks/passwords.yml file. Populate this file and encrypt it with Ansible Vault before deployment, or override the values securely at runtime with --extra-vars. Do not commit plaintext credentials to source control.

Note IP addresses, hostnames, interface names, and volume sizing in the deployment templates are examples. Modify all inventory files for the environment before running any playbook.