From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:33074) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhvl6-0005PY-4Z for guix-patches@gnu.org; Mon, 01 Jul 2019 08:50:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hhvl3-0000M0-Ls for guix-patches@gnu.org; Mon, 01 Jul 2019 08:50:12 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:34200) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hhvkw-0000GX-KR for guix-patches@gnu.org; Mon, 01 Jul 2019 08:50:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hhvkw-0003LT-DL for guix-patches@gnu.org; Mon, 01 Jul 2019 08:50:02 -0400 Subject: [bug#36404] [PATCH 0/6] Add 'guix deploy'. Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <87o92ianbj.fsf@sdf.lonestar.org> Date: Mon, 01 Jul 2019 14:48:47 +0200 In-Reply-To: <87o92ianbj.fsf@sdf.lonestar.org> (Jakob L. Kreuze's message of "Thu, 27 Jun 2019 14:35:28 -0400") Message-ID: <87o92dor80.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: "Jakob L. Kreuze" Cc: 36404@debbugs.gnu.org Hello Jakob & all! zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis: > This patch provides the basis for 'guix deploy', implementing what I've > referred to as the "simple case" in my progress reports: in-place > updates to machines (physical or virtual) whose name and IP address we > know well. Do note that these commits depend on Ludovic's implementation > of 'remote-eval'.[1] Woohoo! > There's certainly more to be done with this -- the GSoC period is far > from over, and I'm hoping to use that time to implement more complex > use-cases such as automatically provisioning virtual machines in the > cloud. I'm submitting a patch series now per the recommendation of my > mentors to break the project into a few chunks to submit over the > duration of the summer. That=E2=80=99s an impressive achievement! I=E2=80=99m all for integrating = patches piecemeal, and it=E2=80=99s great that you=E2=80=99ve managed to have sizab= le chunks already. > Quite a bit has changed since my last email about this.[2] For one, > GOOPS is no longer used. Machine declarations now look just like any > other sort of declaration in Guix. Neat. I prefer it this way, at least for consistency. If for some reason this turns out to make extensibility more cumbersome, like Chris wrote, we can rediscuss it. My feeling is that we can make do without GOOPS _and_ without reimplementing GOOPS mechanisms in a poor way, but if that=E2=80=99s not the case, we can adjust. > (list (machine > (system %system) > (environment 'managed-host) > (configuration (machine-ssh-configuration > (host-name "localhost") > (identity "./id_rsa") > (port 2222))))) > #+END_SRC scheme > > There are a number of other differences here as well. For one, the SSH > configuration now has an 'identity' field for specifying a private key > to use when authenticating with the host. Any key management scheme you > might have set up in '~/.ssh/config' will also work if the 'identity' > field is omitted. > > The 'environment' field is where we declare how machines should be > provisioned. In this case, the only type of provisioning that's been > implemented is 'managed-host' -- the "simple case" of in-place updates > to a machine that's already running GuixSD. The parameters for > provisioning are given in the form of an environment-specific > configuration type. In the example, this is 'machine-ssh-configuration', > which describes how 'guix deploy' should make an SSH connection to the > machine. I'm sure you can imagine something along the lines of a > 'machine-digitalocean-configuration', describing some parameters for a > droplet. Nice. I=E2=80=99ll take a closer look and to comment on the other issues you rais= e, but so far this looks very nice! Thanks, Ludo=E2=80=99.