diff --git a/README.md b/README.md index b734065..b6e5eb5 100644 --- a/README.md +++ b/README.md @@ -21,14 +21,15 @@ sudo python3 es24n_conf.py ## Features -### Serial Network Configuration +### Network Configuration -Connects to the IOM over a USB serial cable and configures each IOM's management network interface via the Redfish API over the serial loopback (`127.0.0.1`). Used for initial setup when the IOM has no IP address yet. +Configure each IOM's management network interface via the Redfish API. Two connection methods are supported: -- Supports both **Static IP** and **DHCP** configuration -- Configures IOM1 and IOM2 independently in a single session -- Displays current network settings before making any changes -- Supports configuring multiple shelves back-to-back in one session +**Serial** — Connects over a USB serial cable using the Redfish loopback (`127.0.0.1`). Used for initial setup when the IOM has no IP address yet. + +**Network** — Connects directly to the IOM's existing management IP. Used when the IOM is already reachable on the network (e.g. currently on DHCP) and needs its settings changed. + +Both methods support **Static IP** and **DHCP** configuration, display current settings before making any changes, and support configuring multiple IOMs back-to-back in a single session. ### Firmware Updates @@ -36,30 +37,51 @@ Connects to each IOM directly over the network and updates IOM and/or Fabric Car - Select IOM1 only, IOM2 only, or both - Update IOM firmware, Fabric Card firmware, or both in a single run -- Scans the current working directory for firmware files automatically +- Scans the `firmware/` directory for firmware files automatically - Displays current firmware versions before and after the update - Polls update task progress automatically -## Workflow +### System Check -### Configure a Shelf (Serial) +Read-only diagnostic — queries current network settings and firmware versions without making any changes. Available via serial or network connection. -1. Connect the serial cable from the ES24N IOM1 port to the controller's USB port -2. Run the tool and select **Configure a new ES24N shelf** -3. The tool detects the serial device, opens the connection, and prompts for the BMC admin password -4. Current network settings for IOM1 and IOM2 are displayed -5. Choose to apply a new Static IP or DHCP configuration, or leave settings unchanged -6. Changes are applied via Redfish PATCH over the serial loopback (`127.0.0.1`) -7. Verify each expander appears in TrueNAS under **System Settings > Enclosure > NVMe-oF Expansion Shelves** before disconnecting the serial cable +### Restart IOM + +Sends a graceful restart to a selected IOM via network or serial connection. + +## Workflows + +### Configure Network Settings — Serial + +1. Connect the serial cable from the ES24N IOM console port to the controller's USB port +2. Run the tool, select **Configure Network Settings**, then **Serial Connection** +3. The tool detects the serial device, opens the connection, and auto-detects the root password from the IOM hostname +4. Select which IOM the cable is connected to (IOM1 or IOM2) +5. Current network settings are displayed +6. Choose Static IP or DHCP, or leave settings unchanged +7. Changes are applied via Redfish PATCH over the serial loopback (`127.0.0.1`) +8. Verify the expander appears in TrueNAS under **System Settings > Enclosure > NVMe-oF Expansion Shelves** before disconnecting the serial cable + +### Configure Network Settings — Network + +1. Ensure this system has network access to the IOM management interface +2. Run the tool, select **Configure Network Settings**, then **Network Connection** +3. Enter the Admin password and the IOM's current IP address +4. Select which IOM to configure (IOM1 or IOM2) +5. Current network settings are displayed +6. Choose Static IP or DHCP, or leave settings unchanged +7. Changes are applied via Redfish PATCH directly to the IOM + +> **Note:** If changing to a static IP, the IOM will immediately move to the new address. The connection to the old IP will stop working after the change is applied. ### Update Firmware 1. Ensure this system has network access to the IOM management interfaces 2. Run the tool and select **Update IOM / Fabric Card Firmware** -3. Enter the admin password and select which IOM(s) to update -4. Enter the IP address(es) for the selected IOM(s) +3. Select which IOM(s) to update +4. Enter the Admin password and IP address for each shelf 5. Select what to update (IOM firmware, Fabric Card firmware, or both) -6. Select firmware file(s) from the auto-detected list or enter a custom path +6. Select a firmware file from the auto-detected list or enter a custom path 7. The tool uploads, applies, and monitors each update, then restarts the affected components > **HA Systems:** Update the passive IOM first. After updating both IOMs on one controller, initiate a TrueNAS failover and re-run the tool for the other controller. @@ -68,17 +90,21 @@ Connects to each IOM directly over the network and updates IOM and/or Fabric Car ``` es24n_conf.py ← Entry point — run this +firmware/ ← Place firmware files here (.bin, .img, .fw, .fwc, etc.) modules/ ui.py ← Display helpers and input prompts serial_port.py ← Serial port driver (no pyserial required) models.py ← IOMConfig and ShelfConfig data classes redfish.py ← Redfish API client (shared by all workflows) workflow_serial.py ← Serial-based network configuration workflow + workflow_network.py ← Network-based network configuration workflow workflow_firmware.py ← Firmware update workflow + workflow_check.py ← Read-only system check workflow + workflow_restart.py ← IOM restart workflow ``` ## Notes -- Setting a static IP requires two sequential Redfish PATCH requests due to a known ES24N firmware bug. The tool handles this automatically. +- Setting a static IP requires two sequential Redfish PATCH requests due to a known ES24N firmware bug. The tool handles this automatically for both serial and network configuration. - Firmware uploads are performed over the network — uploading over the 115200-baud serial connection would be impractically slow. - The firmware file must be re-uploaded between the IOM firmware and Fabric Card firmware steps as it does not persist after the first update.