Add new Connection Method: Drone
Nobody has claimed this yet.
- Dominant language
- Perl
- Stars
- 737
- Forks
- 214
- PR merge metrics
- No merged PRs in 30d
Description
Working over SSH (especially over high latency) is slow. So this connection method is an approach to speed up the communication between Rex and the server.
The architecture (in the first step) is as follow:
- Rex connects to the server via ssh (Net::OpenSSH)
- Rex uploads the Drone to the server into a temporary directory.
- Rex starts the Drone and connects it to stdin/stdout of the ssh session.
The communication is now done directly with the Drone tunneld over SSH.
In the first step this won't be much faster than the normal Net::OpenSSH method but it can then be extended.
- Running the inventory all in one on the remote host and sending only the results back
- Running parts of the Perl (Rex/Task) code directly on the remote side without the need of installing modules (with PAR maybe even without having perl on the server)
- Connecting to a zeroMQ (or other) message queue to speed up the orchestration of many servers
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing Net::OpenSSH connection method and the proposed Drone flow: upload it to a temporary directory, launch it, and connect it to SSH stdin/stdout. The first-step implementation is done when Rex can use this Drone-based SSH tunnel for communication with the server; the issue does not name files or tests to begin with.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100