Bring back console access and node reboot to experimental nodes
This came up in a discussion between me and @hibler and a user recently, the ability to directly power cycle and access the tipline directly. This used to be possible cause everyone had accounts on ops, so users were able to run the xmlrpc (old emulab server) to do things like power cycle and get the acls for the tipline. We used to install this stuff on nodes too, but we stopped doing that a long time ago when I split all the clientside stuff into its own subdir. tip and xmlrpc did not come along with it.
In addition, users must have access to their Emulab user certificate on the node, which Cloudlab users no longer see cause we do not do NFS mounts of homedirs. As it turns out, we can just return these with tmcd when all of the users in the project (who get accounts on the nodes) are at least local_root, since local_root users have sudo and they can read anyone's .ssl directory anyway!
So the task list:
- Move tip to the clientside build and install console.bin and the console wrapper (which gets the acls via xmlrpc).
- Move xmlrpc to the clientside build and install so console.bin can get the acls
- Add tmcc/tmcd support sending across the ssl certificates.
- SSl proxy to run on ops; experimental nodes cannot talk to boss, which is where IPMI based captures run, so need a proxy on ops.
But the ssl certificate dos have some trickiness to deal with; the user set at remote clusters comes from the ssh key set in the request. The only user in the ssh list we can feasibly match to a local user account is the creator of the experiment. Which is probably just fine for what this is intended to do.
Writing all this down for now while I think about it some more.