Support working with ramdisk via SSH

Registered by Dmitry Tantsur

To simplify the ramdisk we can just start an SSH server there, post root password back and handle everything from inside discoverd. The flow would be:
1. discoverd boots ramdisk as usual
2. ramdisk starts SSH server (code is already there)
3. ramdisk passes randomly generated SSH password and 'interfaces' with IP addresses to discoverd
4. new plugins connect to this SSH and does everything we're doing right now
4.1. First plugin: standard.ShellHook just stores ssh_client in node_info and fetches bmc_address
4.2. standard.SchedulerHook detects ssh_client and tries to fetch information from it
4.3. standard.ValidateInterfacesHook is not changed but should probably go first now
4.4. Possible vendor plugins use ssh_client
4.5 ssh_client is deleted in before_update of ShellHook

Advantages:
1. Get back to lightweight and easy-to-debug ramdisk
2. Require less ramdisk updates as we change the discovery logic
    Have only one ramdisk (in DIB) and various upstream/downstream plugins
3. Stop hacking around to make Python work on the ramdisk for e.g. edeploy plugin
4. All discovery logic in one place - inside discoverd
5. Unit tests for this logic
6. Ability to upgrade logic via RPM update

Disadvantages:
1. Much more network calls between discoverd and the ramdisk
2. Potential security issue, should be mitigated by supporting HTTPS

Obviously, we'll have to either make sure we carry a big set of utilities with the ramdisk or install yum/whatever on it.

http://docs.paramiko.org/en/1.15/api/client.html

UPDATE:
DIB is too limited to base anything complex on it, the new ramdisk should be based on something else.

Blueprint information

Status:
Complete
Approver:
Dmitry Tantsur
Priority:
High
Drafter:
Dmitry Tantsur
Direction:
Approved
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Not started
Milestone target:
None
Completed by
Dmitry Tantsur

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.