Support working with ramdisk via SSH
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.
4.3. standard.
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://
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
- Started by
- Completed by
- Dmitry Tantsur