Skip to content

scoggeshall/apc-nmc-upgrade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APC Network Management Card Firmware Upgrade

This repository automates firmware upgrades for APC Network Management Cards (NMCs) over SFTP using Python and Paramiko.

Files in this repository

  • update_firmware.py
    Main script: discovers firmware binaries, reads device list, and uploads AOS and SUMX images with concurrency.
  • credentials.example.json
    Copy to credentials.json and fill with your SFTP credentials.
  • device_list.csv
    One IP address per line under header IP.
  • .gitignore
    Excludes credentials.json and the firmware directory.

Note: The firmware directory (apc_hw05_aos720_sumx720_bootmon109/) and its contents are not included in this repo.


Requirements

  • Python 3.x
  • Paramiko (pip install paramiko)

Configuration

  1. Copy credentials.example.json to credentials.json:

    {
      "sftp_username": "your_username",
      "sftp_password": "your_password",
      "sftp_port": 22
    }
  2. Populate device_list.csv:

    IP
    192.168.1.100
    192.168.1.101
  3. Ensure your firmware binaries are in a local folder (e.g., .../Bins) matching file patterns *aos*.bin and *sumx*.bin.


Usage

Run the script with:

python update_firmware.py --fw-dir /path/to/apc_hw05_aos720_sumx720_bootmon109/Bins

The script will:

  1. Read SFTP credentials and device IPs
  2. Locate AOS and SUMX binary files
  3. Upload AOS to each device, wait for reboot, then upload SUMX
  4. Process 5–10 devices concurrently

Concurrency

  • Uses a thread pool with a minimum of 5 and maximum of 10 workers.

Logging

  • Uses Python’s logging module to output timestamps, log levels, and device-specific messages to the console.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Automated firmware upgrade workflow for APC Network Management Cards (NMC) using Python, enabling safe, repeatable upgrades across multiple devices.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages