I've got a pile of switches connecting everything together at our DC, 50 racks or so worth of kit. It's starting to be a problem to login to every single one of them to make configuration changes -- mostly adding/removing VLANs to all the trunk ports, but every once in a while there's some other config change we need to rollout to all the switches.
Is there anything out there of a Linux/FOSS nature to push switch configs en masse? I've looked at RANCID, and while it looks awesome for what it does (retrieving configs and reporting on changes), if it supports modifying configs centrally and rolling them out, it's hiding that light under a bushel.
Last time I was working with a lot of distributed non-cisco switches and had to do tasks like this budgeting was an issue so I couldn't use any of the paid solutions for it. I went back to the basics and used expect.
It worked well in my situation, however if you don't have your trunk ports all on the same port of a switch it may get complicated depending on your amount of variance.
These days there is also expectpy for those who prefer python to tcl.
I'll admit the option is a bit arcane for most admins I've worked with. Also you're correct RANCID watches for config updates, it doesn't deploy changes.
NOC Project does more or less what you describe, plus a bit more. It's a Django application that handles network resource tracking, configuration management and pushes out to devices. Think Puppet for Network Operators.
The caveat is no Procurve device support right now. However it might be an option if you're consigned to writing something anyway.
There is full HP ProCurve support in NOC beginning from version 0.5. We're using NOC for VC Provisioning/VLAN rollout in our datacenter's network (Bunch of Force10, Cisco and HP ProCurve/GbE2c switches).