summaryrefslogtreecommitdiff
path: root/gnu/machine
Commit message (Collapse)AuthorAgeFilesLines
* machine: ssh: Better report missing initrd modules.Ludovic Courtès2020-03-231-1/+1
| | | | | * gnu/machine/ssh.scm (machine-check-initrd-modules): Improve message upon module mismatch.
* machine: ssh: Make sanity checks in a single round trip.Ludovic Courtès2020-03-231-59/+83
| | | | | | | | | | | * gnu/machine/ssh.scm (<remote-assertion>): New record type. (remote-let): New macro. (machine-check-file-system-availability): Rewrite to use 'remote-let' instead of 'mlet' and 'machine-remote-eval'. (machine-check-initrd-modules): Likewise. (machine-check-building-for-appropriate-system): Make non-monadic. (check-deployment-sanity): Rewrite to gather all the assertions as a single gexp and pass it to 'machine-remote-eval'.
* Update e-mail address for Jakob L. Kreuze.Tobias Geerinckx-Rice2020-02-092-2/+2
| | | | | | | | | | | As requested here: <https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00128.html>. * .mailmap: Add an entry for Jakob. * gnu/machine.scm, gnu/machine/digital-ocean.scm, gnu/machine/ssh.scm, gnu/packages/admin.scm, gnu/packages/i2p.scm, gnu/packages/music.scm, gnu/packages/web.scm, gnu/tests/reconfigure.scm, guix/scripts/deploy.scm, guix/scripts/system/reconfigure.scm: Update their e-mail address.
* machine: Remove unnecessary record self-referencing bindings.Ludovic Courtès2019-12-081-1/+0
| | | | | | | | | 'this-machine' and 'this-machine-ssh-configuration' were useless given that there are no thunked fields. * gnu/machine.scm (<machine>)[this-machine]: Remove. * gnu/machine/ssh.scm (<machine-ssh-configuration>) [this-machine-ssh-configuration]: Remove.
* machine: ssh: Deprecate missing 'host-key' field.Ludovic Courtès2019-12-071-0/+3
| | | | * gnu/machine/ssh.scm (machine-ssh-session): Warn about missing host key.
* machine: ssh: <machine-ssh-configuration> can include the host key.Ludovic Courtès2019-12-041-2/+7
| | | | | | * gnu/machine/ssh.scm (<machine-ssh-configuration>)[host-key]: New field. (machine-ssh-session): Pass #:host-key to 'open-ssh-session'. * doc/guix.texi (Invoking guix deploy): Document it.
* machine: digital-ocean: Rename 'enable-ipv6' to 'enable-ipv6?'.Ludovic Courtès2019-10-221-4/+4
| | | | | | | | * gnu/machine/digital-ocean.scm (<digital-ocean-configuration>)[enable-ipv6]: Rename to... [enable-ipv6?]: ... this. (deploy-digital-ocean): Adjust accordingly. * doc/guix.texi (Invoking guix deploy): Adjust accordingly.
* machine: Implement 'digital-ocean-environment-type'.Jakob L. Kreuze2019-10-221-0/+422
| | | | | | | | | * gnu/machine/digital-ocean.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Invoking guix deploy): Add documentation for 'digital-ocean-configuration'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* machine: ssh: Fix sanity checks.宋文武2019-08-171-2/+3
| | | | | | | | * gnu/machine/ssh.scm (machine-check-file-system-availability)[check-labeled-file-system]: Use 'source-module-closure' for '(gnu build file-systems)'. (machine-check-initrd-modules): Unquote 'file-system-label->string' instead of 'device'.
* machine: Use 'become-command'.Jakob L. Kreuze2019-08-161-2/+5
| | | | | | | | * gnu/machine/ssh.scm (managed-host-remote-eval): Pass an appropriate 'become-command' to 'remote-eval'. * guix/ssh.scm (remote-authorize-signing-key): Add optional 'become-command' argument. All callers changed.
* machine: Automatically authorize the coordinator's signing key.Jakob L. Kreuze2019-08-151-7/+26
| | | | | | | | | | * guix/ssh.scm (remote-authorize-signing-key): New variable. * gnu/machine/ssh.scm (deploy-managed-host): Authorize coordinator's signing key before any invocations of 'remote-eval'. (deploy-managed-host): Display an error if a signing key does not exist. * doc/guix.texi (Invoking guix deploy): Remove section describing manual signing key authorization. (Invoking guix deploy): Add section describing the 'authorize?' field.
* machine: Implement 'roll-back-machine'.Jakob L. Kreuze2019-08-151-3/+69
| | | | | | | | | * gnu/machine.scm (roll-back-machine, &deploy-error, deploy-error?) (deploy-error-should-roll-back) (deploy-error-captured-args): New variable. * gnu/machine/ssh.scm (roll-back-managed-host): New variable. * guix/scripts/deploy.scm (guix-deploy): Roll-back systems when a deployment fails.
* machine: Allow non-root users to deploy.Jakob L. Kreuze2019-08-151-0/+8
| | | | | | | | | | | | | | | | | | * doc/guix.texi (Invoking guix deploy): Add section describing prerequisites for deploying as a non-root user. * guix/remote.scm (remote-pipe-for-gexp): New optional 'become-command' argument. (%remote-eval): New optional 'become-command' argument. (remote-eval): New 'become-command' keyword argument. * guix/ssh.scm (remote-inferior): New optional 'become-command' argument. (inferior-remote-eval): New optional 'become-command' argument. (remote-authorize-signing-key): New optional 'become-command' argument. * gnu/machine/ssh.scm (machine-become-command): New variable. (managed-host-remote-eval): Invoke 'remote-eval' with the '#:become-command' keyword. (deploy-managed-host): Invoke 'remote-authorize-signing-key' with the '#:become-command' keyword.
* remote: Build derivations appropriate for the remote'sJakob L. Kreuze2019-08-141-4/+27
| | | | | | | | | | | | | | * gnu/machine/ssh.scm (machine-ssh-configuration): Add 'system' field. (managed-host-remote-eval): Pass 'system' field to 'remote-eval'. (machine-check-building-for-appropriate-system): New variable. (check-deployment-sanity): Add call to 'machine-check-building-for-appropriate-system'. * doc/guix.texi (Invoking guix deploy): Describe new 'system' field. * guix/ssh.scm (remote-system): New variable. * guix/remote.scm (remote-eval): Use result of 'remote-system' when lowering the G-Expression. (remote-eval): Add 'system' keyword argument. (trampoline): Return a <program-file> rather than a <scheme-file>.
* machine: Add 'build-locally?' field for managed hosts.Jakob L. Kreuze2019-08-071-10/+16
| | | | | | * gnu/machine/ssh.scm (machine-ssh-configuration-build-locally?): New variable. (managed-host-remote-eval): Pass 'build-locally?' to 'remote-eval'.
* machine: Implement safety checks.Jakob L. Kreuze2019-08-061-1/+145
| | | | | | * gnu/machine/ssh.scm (machine-check-file-system-availability) (machine-check-initrd-modules, check-deployment-sanity): New variable. (deploy-managed-host): Perform safety checks before deploying.
* machine: Rename 'system' field.Jakob L. Kreuze2019-08-061-1/+1
| | | | | | | | * gnu/machine.scm (machine-system): Delete variable. (machine-operating-system): New variable. All callers changed. * doc/guix.texi (Invoking guix deploy): Use the 'machine-operating-system' accessor rather than 'machine-system'.
* guix system: Add 'reconfigure' module.Jakob L. Kreuze2019-07-261-177/+12
| | | | | | | | | | | | | | * guix/scripts/system/reconfigure.scm: New file. * Makefile.am (MODULES): Add it. * guix/scripts/system.scm (bootloader-installer-script): Export variable. * gnu/machine/ssh.scm (switch-to-system, upgrade-shepherd-services) (install-bootloader): Delete variable. * gnu/machine/ssh.scm (deploy-managed-host): Rewrite procedure. * gnu/services/herd.scm (live-service): Export variable. * gnu/services/herd.scm (live-service-canonical-name): New variable. * tests/services.scm (live-service): Delete variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* machine: Fix typo.Tobias Geerinckx-Rice2019-07-181-2/+2
| | | | | * gnu/machine/ssh.scm (managed-host-environment-type)[description]: Fix typo.
* gnu: Add machine type for deployment specifications.Jakob L. Kreuze2019-07-061-0/+369
* gnu/machine.scm: New file. * gnu/machine/ssh.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.