I am trying to make a program that helps automate firmware and config updates. Currently my program, based on predefined needs and known devices, creates configurations for APs, Switches and Controllers. What I am wondering, what is the best way to then automate updating the firmware BASED ON the (1) MAC Address gotten FROM THE DEVICE and (2) based on the type of device (what model it is). I know this is fairly vague but I am currently done the config part and am looking into the best way to do this.
My original thought was SSH/TELNET and then do a TFTP for the firmware and configs. What's a good library for this and is this viable? My network programming is a little rusty, definitely in regards to pushing firmware/configs based on MAC/Model of device.
All these devices would be plugged into one switch and using (A) port isolation or (B) having them all preset to DHCP and then knowing their IP addresses would be configured autonomously. It would determine if the config/firmware is pushed based on pings and known times that it takes to update firmware, i feel.
I know this is a big project but any assistance on thoughts on the best way to do this in Java would be great as looking around I'm wondering if my thought process is the best way.