MOC Alliance
HomeDocsLiveAdmin
Maintenance+
Quick StartInstalling OpenStackInstalling OpenStack ToolsDiagnosing a Node
Docs/Maintenance

Maintenance

Quick Start

Updated July 7, 2026

This document will outline the basics of how to perform hardware maintenance on this ESI cluster, and how to provision new hardware into the ESI cluster.

Warning

Every user that will be working on node issues need to fulfill these requirements.

  • Have an active account on the MOC esi cluster
  • Create an MGHPCC RegApp account here
  • Login to MOC ESI at least once with the same SSO email here
  • Note you may get an error about not being assigned a project, this is okay
  • Notify ESI admins that you did this
  • Be a member of the hwbroken project on the MOC ESI cluster (An admin will do this)

OpenStack CLI

During troubleshooting you'll need to interact with OpenStack often, which requires setting up your client to connect to the MOC ESI cluster. Click Here to install OpenStack. 

  • Login through the MOC ESI dashboard and create an application credential.
  • Navigate to Identity > Application Credential > Create Application Credential to do that
  • Create the file ~/.config/openstack/clouds.yaml and populate it with this content (Replace <> items
Terminal
    cache:        auth: true    clouds:        esi:            auth:                auth_url: https://esi.massopen.cloud:13000                application_credential_id: "<PROJECT ID>"                application_credential_secret: "<SECRET>"            interface: "public"            identity_api_version: 3            auth_type: "v3applicationcredential"

You should now be able to run the command

Bash
openstack --os-cloud=esi esi node list

and you should see all the hwbroken nodes.

IPMI Network Bastion VM

Often times access to the BMC interface of a node is required to troubleshoot. For this we have a VM acting as a bastion host which you can use sshuttle or similar tools to access any BMC on your local machine.

Provide your public key to ESI admins via Slack, they will add it to this VM

After that is done, connect using these details: 

Bash
ssh techsquare@techsquare.massopen.cloud

The BMC address of each node can be found using 

Bash
openstack --os-cloud=esi baremetal node show <NODE LABEL> --fields=driver_info

 Which will be accessible via the bastion VM.

If you need to login to a chassis controller, if it exists, it will be the first IP in that block of 10. For example, the CMC address for the blade

What Happens when Server Breaks

If a server is having any sort of issue on ESI, the following steps will be taken by an ESI admin:

  • Remove any leases/offers on the node
Terminal
List and delete any active offersopenstack esi offer list --resource <node\>openstack esi offer delete <offer-uuid\>  
Terminal
List and delete any active leasesopenstack esi lease list --resource <node\>openstack esi lease delete <lease-uuid\>
  • Set the node owner to the hwbroken project
Bash
openstack baremetal node set --owner hwbroken <node>
  • Lease the node to the hwbroken project indefinitely (makes it easy for admins to see if a node is broken at a glance)
Bash
openstack esi lease create --resource-type dummy_node --resource <node> --project hwbroken
  • Put the node in maintenance mode
Bash
openstack baremetal node maintenance set <node> --reason "Hardware issue - see GitHub issue #<issue-number>"
  • Create a GitHub issue for tracking the maintenance of the issue
Bash
gh issue create \  --repo CCI-MOC/<repo-name> \  --title "Node <node>: hardware maintenance" \  --body "Node <node> has been placed in maintenance mode and leased to hwbroken. Tracking hardware issue." \  --label "hardware"

Server Diagnosing/Fixing

Warning

For a node to be returned to service, it must have the following acceptance criteria:

  • Passed Inspection with accurate introspection data.
  • Passed Cleaning
  • The node must be able to be deployed with an image.
  1. To run inspection on a node it must be managed:
Bash
openstack --os-cloud=esi baremetal node manage <NODE LABEL>
  1. To run inspection use the command
Bash
openstack --os-cloud=esi baremetal node inspect <NODE LABEL>

The node state will either go back to managed if successful, or inspect failed if not

  1. To clean a node it must be managed 
Bash
openstack --os-cloud=esi baremetal node manage <NODE LABEL>
  1. To clean a node use the command
Bash
openstack --os-cloud=esi baremetal node provide <NODE LABEL>

The node will be available if successful (no longer managed), or clean failed if not

  1. The node must be able to be deployed with an image.
  2. For this you can use metalsmith:
Bash
metalsmith --os-cloud=esi --resource-class <NODE RESOURCE CLASS> --image ubuntu-image --network hwbroken --candidate <NODE LABEL> --ssh-public-key <PATH TO LOCAL SSH PUBLIC KEY>
  1. To undeploy a node (either in failed or active state), use the command
Bash
metalsmith --os-cloud=esi undeploy <NODE LABEL>

The node will be active if successful, or deploy failed if not

After all of this is successful, let ESI admins know and they will take the node out of the hwbroken project.

Warning

The GitHub issue will have what the problem is, such as fails provisioning, or fails cleaning. Sometimes a more detailed error message might be in 

openstack --os-cloud=esi baremetal node show <NODE LABEL>

Otherwise, it will likely become necessary to login through the BMC and monitor the console while running the relevant OpenStack operation to see the issue. BMC Documentation is located here

Hardware Issues

If the issue is related to a hardware component, you can use any spare hardware from the spare hardware storage rack R4-PA-C22. If the issue is with an individual blade in a chassis you can replace without notice. If the chassis requires a hardware swap and not all the blades in the chassis are hwbroken, then that would need to be coordinated with ESI admins.

Physical Hardware

Node Labeling

Every node in ESI is labeled in the convention <OWNER>-<CABINET><U>-<Slot>. For example, MOC-R4PAC10U29-S3 is the server that is in R4-PA-C10 in U29 and in slot 3 on the server. Servers that are standalone (not blades) omit the slot. ie. MOC-R4PAC10U29.

Dell FX2 Chassis

A lot of MOC ESI hardware are Dell blades in Dell FX2 chassis. The user manual for this chassis can be found here. The FX2 can be configured in 8-node (Dell FC430 blades), 4-node (Dell FC630 blades), or 2-node (Dell FC830 blades) layouts. To determine what slot is which you can either flash in the iDrac, or see the user manual linked above on page 23. That document also has the layouts for which PCIe slots map to which blades, and which network interfaces match to which blade, should that be relevant.

Factory Resetting a CMC

If there is a need to factory reset the chassis management controller in a CMC, the process is somewhat convoluted unfortunately.

If you don't know the password or it doesn't work for some reason then

  1. Remove the CMC and apply a jumper on the password reset pin, slot CMC back in
  2. Serial into the CMC, login with root/calvin

Use These Commands Below

Bash
racadm racresetcfg

To factory reset the CFG

Bash
racadm setniccfg -d

To enable dhcp on the CMC

Discussion/Collaboration

You can reach all the ESI admins in the #ESI slack channel in the MOCA slack.

NextInstalling OpenStack

On this page

  • OpenStack CLI
  • IPMI Network Bastion VM
  • What Happens when Server Breaks
  • Server Diagnosing/Fixing
  • Hardware Issues
  • Physical Hardware
  • Node Labeling
  • Dell FX2 Chassis
  • Factory Resetting a CMC
  • Discussion/Collaboration