Advertise remote administration services of Mythbuntu boxen

Registered by laga

Avahi makes it easy to discover remote boxes and the services running on them.

What we should do:

1) Let Mythbuntu boxen advertise their SSH and VNC services over avahi
1.1) For VNC: current releases of x11vnc have native support for avahi. We need to get this version into Ubuntu. If this poses a problem, we can still fall back to the avahi-publish binary.
1.2) For SSH: OpenSSH currently does not come with native support for avahi. We will have to use avahi-publish or an entry in /etc/avahi/services. Please see this bug report about the status of avahi support in the Ubuntu openSSH package: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/387091/

For both services, it'd be beneficial if they were only advertised when running, so using avahi-publish or native support would be preferable over static entries in /etc/avahi/services/ - unless we called avahi-daemon --reload after every state change.

2.) Show those remote services in MCC
Adding a new plugin should work well for this. We probably want to filter out services running on localhost. A good UI might be a forest of flat trees where the root node is the name of the remote machine and the leaves represent the remote services. Clicking on a remote service would launch vncviewer or a shell running a ssh client respectively.
See avahi_discover.in [1] for example code.

It should be possible to open multiple sessions.

3) OPTIONAL:
* It might be nice to have only Mythbuntu boxen showing up instead of all machines running avahi, but I'm not sure of a clean way to do it. Adding a dummy service might work, but that sounds like a hack.
* Another possibility: add an option to run package upgrades etc on all boxes simultaneously (or just on a few selected ones), kind of what the clusterssh package can do.

[1] http://git.0pointer.de/?p=avahi.git;a=blob;f=avahi-python/avahi-discover/avahi-discover.in;h=055842476f006ccb7e2eee8da21731a02af6e27e;hb=HEAD

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.