On December 14, 2020, "Ludovic Courtès" <ludo@gnu.org> wrote:
Here’s another idea: allowing ‘guix copy’ to talk to a “raw” remote
store—i.e., just /gnu/store + /var/guix/db accessed over SSH.
Hmm that amounts to implementing a subset of the daemon.
This reminds me of the much-loved "agentless" model of software deployment as practiced by Ansible. [1] To provision, configure, and deploy using Ansible all you need on the target machine is Python and sshd. It copies its tools over, does its work, then cleans up after itself.
If Guix could deploy to any machine with Guile + sshd that would be a pretty compelling story. If you could also substitute perl or python or something more ubiquitous, that would be even stronger, at the cost of decreased code re-use. Best of all would be a mini-daemon we could cross-compile for the target architecture, scp over as a single file, execute there to carry out the rest of the task, then delete if no longer needed. This approach is used to great effect by the Mgmt automation tool [2].
[1] White paper (pdf, 5 pages) https://www.ansible.com/hubfs/pdfs/Benefits-of-Agentless-WhitePaper.pdf
[2] https://github.com/purpleidea/mgmt/