diff options
| author | Maxim Cournoyer <maxim@guixotic.coop> | 2026-05-11 10:27:26 +0900 |
|---|---|---|
| committer | Maxim Cournoyer <maxim@guixotic.coop> | 2026-05-19 14:15:27 +0900 |
| commit | b5e047ff9b400585cff590b7ee2f1629b24f6148 (patch) | |
| tree | d3e27e8b3534dd4dcca1ec495c567e87b8863d35 /doc | |
| parent | 115e10921ee145d10fdba2c00daff5f071ad4537 (diff) | |
machine: hetzner: Introduce the `make-hetzner-os' procedure.
All the performance and general purpose newer x86 Hetzner server types like
the 'cpx22' now require an EFI bootloader, while older ones like the 'cx23'
still expect a BIOS bootloader.
Instead of exposing the user to errors when selecting the correct operating
system template to use, provide a procedure that takes returning one based on
the server type name.
* gnu/machine/hetzner.scm (%hetzner-os-arm): Rename to...
(%hetzner-os-arm/efi): ... this. Adjust for variable name change.
(%hetzner-os-x86): Rename to...
(%hetzner-os-x86/bios): ... this. Adjust for variable name change.
(%hetzner-os-x86/efi): New variable.
(server-type-name->arch, server-type-name->bootloader)
(make-hetzner-os): New procedures.
(%hetzner-os-x86, %hetzner-os-x86): Deprecate variables.
(hetzner-machine-bootstrap-os-form): Use the server type name to infer whether
the EFI or BIOS bootloader should be used, along the EFI partition.
* doc/guix.texi (Invoking guix deploy): Updated doc.
Fixes: #8523
Change-Id: I331a76e12bb3c19f5664dcbe4437a8d1cfe1d363
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/guix.texi | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 67c81ebe836..9df177d13ae 100644 --- a/doc/guix.texi +++ b/doc/guix.texi | |||
| @@ -49,7 +49,7 @@ Copyright @copyright{} 2017 humanitiesNerd@* | |||
| 49 | Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* | 49 | Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* |
| 50 | Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* | 50 | Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* |
| 51 | Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@* | 51 | Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@* |
| 52 | Copyright @copyright{} 2017, 2019--2025 Maxim Cournoyer@* | 52 | Copyright @copyright{} 2017, 2019--2026 Maxim Cournoyer@* |
| 53 | Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* | 53 | Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* |
| 54 | Copyright @copyright{} 2017 George Clemmer@* | 54 | Copyright @copyright{} 2017 George Clemmer@* |
| 55 | Copyright @copyright{} 2017 Andy Wingo@* | 55 | Copyright @copyright{} 2017 Andy Wingo@* |
| @@ -50528,36 +50528,36 @@ server. | |||
| 50528 | Once the server has been provisioned and SSH is available, deployment | 50528 | Once the server has been provisioned and SSH is available, deployment |
| 50529 | continues by delegating it to the @code{managed-host-environment-type}. | 50529 | continues by delegating it to the @code{managed-host-environment-type}. |
| 50530 | 50530 | ||
| 50531 | Servers on the Hetzner Cloud service can be provisioned on the AArch64 | 50531 | Depending on their type, x86_64 or AArch64 servers on the Hetzner Cloud |
| 50532 | architecture using UEFI boot mode, or on the x86_64 architecture using | 50532 | service can be provisioned using BIOS or UEFI boot mode. The @code{(gnu |
| 50533 | BIOS boot mode. The @code{(gnu machine hetzner)} module exports the | 50533 | machine hetzner)} module exports the @code{make-hetzner-os} procedure, |
| 50534 | @code{%hetzner-os-arm} and @code{%hetzner-os-x86} operating systems that | 50534 | which takes the server type string as an argument (e.g. @code{"cx23"}) |
| 50535 | are compatible with those two architectures, and can be used as a base | 50535 | and returns a base @code{operating-system} definition compatible with |
| 50536 | for defining your custom operating system. | 50536 | it. |
| 50537 | 50537 | ||
| 50538 | The following example shows the definition of two machines that are | 50538 | The following example shows the definition of two machines that are |
| 50539 | deployed on the Hetzner Cloud service. The first one uses the | 50539 | deployed on the Hetzner Cloud service. The first one for an ARM server |
| 50540 | @code{%hetzner-os-arm} operating system to run a server with 16 shared | 50540 | type that has 16 shared vCPUs and 32 GB of RAM, the second for an x86_64 |
| 50541 | vCPUs and 32 GB of RAM on the @code{aarch64} architecture, the second | 50541 | server type that has 16 shared vCPUs and 32 GB of RAM. |
| 50542 | one uses the @code{%hetzner-os-x86} operating system on a server with 16 | ||
| 50543 | shared vCPUs and 32 GB of RAM on the @code{x86_64} architecture. | ||
| 50544 | 50542 | ||
| 50545 | @lisp | 50543 | @lisp |
| 50546 | (use-modules (gnu machine) | 50544 | (use-modules (gnu machine) |
| 50547 | (gnu machine hetzner)) | 50545 | (gnu machine hetzner)) |
| 50548 | 50546 | ||
| 50549 | (list (machine | 50547 | (list (let ((server-type "cax41")) |
| 50550 | (operating-system %hetzner-os-arm) | 50548 | (machine |
| 50551 | (environment hetzner-environment-type) | 50549 | (operating-system (make-hetzner-os server-type)) |
| 50552 | (configuration (hetzner-configuration | 50550 | (environment hetzner-environment-type) |
| 50553 | (server-type "cax41") | 50551 | (configuration (hetzner-configuration |
| 50554 | (ssh-key "/home/charlie/.ssh/id_rsa")))) | 50552 | (server-type server-type) |
| 50555 | (machine | 50553 | (ssh-key "/home/charlie/.ssh/id_rsa"))))) |
| 50556 | (operating-system %hetzner-os-x86) | 50554 | (let ((server-type "cpx51")) |
| 50557 | (environment hetzner-environment-type) | 50555 | (machine |
| 50558 | (configuration (hetzner-configuration | 50556 | (operating-system (make-hetzner-os server-type)) |
| 50559 | (server-type "cpx51") | 50557 | (environment hetzner-environment-type) |
| 50560 | (ssh-public-key "/home/charlie/.ssh/id_rsa.pub"))))) | 50558 | (configuration (hetzner-configuration |
| 50559 | (server-type server-type) | ||
| 50560 | (ssh-public-key "/home/charlie/.ssh/id_rsa.pub")))))) | ||
| 50561 | @end lisp | 50561 | @end lisp |
| 50562 | 50562 | ||
| 50563 | @vindex GUIX_HETZNER_API_TOKEN | 50563 | @vindex GUIX_HETZNER_API_TOKEN |
