Update README to reflect current architecture and features
- Remove single-file description; document the es24n/ module structure - Add serial cable requirement only where relevant (serial workflow) - Document IOM selection option in firmware update workflow - Add firmware file auto-detection to firmware update steps - Add file structure section - Add note about firmware file re-upload requirement Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
44
README.md
44
README.md
@@ -1,12 +1,11 @@
|
||||
# ES24N IOM Configuration Tool
|
||||
|
||||
A single-file interactive CLI tool for configuring network settings and updating firmware on TrueNAS ES24N expansion shelf IOM (I/O Module) controllers.
|
||||
An interactive CLI tool for configuring network settings and updating firmware on TrueNAS ES24N expansion shelf IOM (I/O Module) controllers via the Redfish API.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3 (standard library only — no external dependencies)
|
||||
- A USB serial cable connected from the ES24N IOM1 port to the active TrueNAS controller
|
||||
- Root or serial device group permissions
|
||||
- Root or serial device group permissions (for serial-based configuration)
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -22,45 +21,64 @@ sudo python3 es24n_conf.py
|
||||
|
||||
## Features
|
||||
|
||||
### Network Configuration
|
||||
### Serial Network Configuration
|
||||
|
||||
Connects to the IOM over a USB serial connection and configures each IOM's management network interface via the Redfish API.
|
||||
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.
|
||||
|
||||
- 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
|
||||
|
||||
### Firmware Updates
|
||||
|
||||
Connects to each IOM directly over the network (not serial) and updates IOM and/or Fabric Card firmware via the Redfish API.
|
||||
Connects to each IOM directly over the network and updates IOM and/or Fabric Card firmware via the Redfish API.
|
||||
|
||||
- Update IOM firmware, Fabric Card firmware, or both
|
||||
- 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
|
||||
- Displays current firmware versions before and after the update
|
||||
- Polls update task progress automatically
|
||||
|
||||
## Workflow
|
||||
|
||||
### Configure a Shelf
|
||||
### Configure a Shelf (Serial)
|
||||
|
||||
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 requests over the serial loopback (`127.0.0.1`)
|
||||
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
|
||||
|
||||
### 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 IP addresses for IOM1 and IOM2
|
||||
4. Select what to update and provide the firmware file path(s)
|
||||
5. The tool uploads, applies, and monitors each update, then restarts the affected components
|
||||
3. Enter the admin password and select which IOM(s) to update
|
||||
4. Enter the IP address(es) for the selected IOM(s)
|
||||
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
|
||||
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.
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
es24n_conf.py ← Entry point — run this
|
||||
es24n/
|
||||
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_firmware.py ← Firmware update workflow
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Setting a static IP requires two sequential Redfish PATCH requests due to a known ES24N firmware bug. The tool handles this automatically.
|
||||
- Firmware uploads are performed over the network — uploading over the 115200-baud serial connection would be impractically slow.
|
||||
- After applying network changes, verify each expander appears in TrueNAS under **System Settings > Enclosure > NVMe-oF Expansion Shelves** before disconnecting the serial cable.
|
||||
- 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.
|
||||
|
||||
Reference in New Issue
Block a user