Well … more correctly, fixed the data model to be saner, so that the tools would be easier to develop and use. Still a few more things to do, and one (simple) presentation abstraction to set up.
The gist of it is that (apart from the automatically added nodes), adding nodes by hand should be easy. This also means by XML (not done yet, but I know how to do this), and web (basically XML or CGI like devices).
So I want to add a node into our database.
root@manager:/etc/cluster/bin# ./add_nodes.pl --index=4 --slot=4 --name=paul --location=rack5 Inserting node into cluster.db
And sure enough, its there …
root@manager:/etc/cluster# bin/ls_nodes.pl george, eth3=10.100.1.1/255.255.0.0, ipmi=10.101.1.1/255.255.0.0, wifi=10.102.1.3/255.255.0.0[fast] harry paul
now lets attach a network interface to this node
root@manager:/etc/cluster# bin/add_net.pl --interface=eth0 --ip_address=10.100.1.4 --netmask=255.255.0.0 --name=paul_g --mac_address=00:11:22:33:44:55 --machine_index=4 Inserting network into cluster.db
and make sure its there
root@manager:/etc/cluster# bin/ls_nodes.pl george, eth3=10.100.1.1/255.255.0.0, ipmi=10.101.1.1/255.255.0.0, wifi=10.102.1.3/255.255.0.0[fast] harry paul, eth0=10.100.1.4/255.255.0.0[paul_g]
The reason I went back and rewrote this was the single huge table we had … er … evolved over the years, kept getting more and more columns … for IB, for 10GbE, for IPMI, for VPN, for …
It was getting crazy. Looking it over, and thinking about it for an hour or so, I came up with a simpler design, that was far more flexible, and much easier to maintain in the longer term.
I still have some work to do on the query side, and some of the editing tools. The idea is, to replace the aging auto-configuration tools that we have with more functional tools that enable us to do the “plug in the unit, power it up, and walk away”. It worked well in the past, but got more complex to maintain with additional networks and other features.
This is of course useful for siCluster and associated tools/environments. Its also useful for cloud configuration bits for physical/virtual nodes, and any post-installation/boot configuration.
Tools come as part of siCluster.