guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guix "ops"


From: Ludovic Courtès
Subject: Re: Guix "ops"
Date: Thu, 20 Oct 2016 15:29:29 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Howdy!

Christopher Allan Webber <address@hidden> skribis:

> So yeah, I'm going to start playing around with building some on some of
> these ideas soonish.  I could use some advice, though.  Assume I'm able
> to build the right scheme representation of the system I want to be run
> remotely on another machine (whether it's a gexp, whatever).  What's the
> right way to go about this?  Assume for the moment that I have a remote
> "target" machine already running GuixSD and I can ssh into it.
>
>  - Should I write out an sexp of the system I want to be built, write it
>    to a scheme file I copy over, and then invoke the guile command line
>    tools to start it up?

No!

>  - Should I write out an sexp of the script I want to run and execute it
>    as a normal guile program?

No!

>  - Should I build the entire derivation of the system I want to run on
>    the remote machine locally first, then copy that over?  (I assume
>    this is possible, and eventually desirable, especially if doing
>    mass deployments?  But it might not be desirable in every case.)
>    Would that use the substitute mechanism?

Yes!  :-)

Essentially deployment would work like this:

  1. Compute the system derivation and build it locally (i.e., on the
     machine where ‘guix deploy’ is running.)

     As a user, you can choose to have offloading setup such that the
     actual build will take place on (some of) the target machines, but
     that’s completely orthogonal.

  2. Send the derivation out to the target(s) that are real machines.
     For targets that are local containers or VMs, there’s nothing to
     do.

  3. On targets that are real machines, perform the equivalent of ‘guix
     system reconfigure’—i.e., update the /run/current-system symlink,
     restart Shepherd services that can be restarted, etc.

IIRC David was testing using VMs and containers as the targets (the
<platform> record¹) because it’s easier.

Does that make sense?

Hopefully David will correct me.  :-)

Ludo’.

¹ https://lists.gnu.org/archive/html/guix-devel/2015-07/msg00320.html



reply via email to

[Prev in Thread] Current Thread [Next in Thread]