3
0
Fork 0
forked from mirrors/nixpkgs

darwin.builder: auto-login as the builder user (#208772)

… as suggested by @NiklasGollenstede in:

https://github.com/NixOS/nixpkgs/pull/206951#issuecomment-1369020601

This simplifies the user experience for logging into and
debugging the machine and also simplifies the instructions for
shutting down the machine gracefully.
This commit is contained in:
Gabriella Gonzalez 2023-01-03 21:12:56 -08:00 committed by GitHub
parent d067c8aa5f
commit 6d89aa8f1d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 8 deletions

View file

@ -28,19 +28,21 @@ Password:
``` ```
… so that it can install a private key used to `ssh` into the build server. … so that it can install a private key used to `ssh` into the build server.
After that the script will launch the virtual machine: After that the script will launch the virtual machine and automatically log you
in as the `builder` user:
``` ```
<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>> <<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>>
Run 'nixos-help' for the NixOS manual. Run 'nixos-help' for the NixOS manual.
nixos login: nixos login: builder (automatic login)
[builder@nixos:~]$
``` ```
> Note: When you need to stop the VM, type `Ctrl`-`a` + `c` to open the `qemu` > Note: When you need to stop the VM, run `shutdown now` as the `builder` user.
> prompt and then type `system_powerdown` followed by `Enter`, or run `shutdown now`
> as the `builder` user (e.g. `ssh -i keys/builder_ed25519 builder@localhost shutdown now`)
To delegate builds to the remote builder, add the following options to your To delegate builds to the remote builder, add the following options to your
`nix.conf` file: `nix.conf` file:

View file

@ -59,11 +59,15 @@ in
trusted-users = [ "root" user ]; trusted-users = [ "root" user ];
}; };
services.openssh = { services = {
getty.autologinUser = user;
openssh = {
enable = true; enable = true;
authorizedKeysFiles = [ "${keysDirectory}/%u_${keyType}.pub" ]; authorizedKeysFiles = [ "${keysDirectory}/%u_${keyType}.pub" ];
}; };
};
system.build.macos-builder-installer = system.build.macos-builder-installer =
let let