nixos-anywhere
通过 ssh 在任何地方安装 NixOS
README
设置新机器耗时较长,且当需要远程操作时会变得复杂。如果您正在安装 NixOS,nixos-anywhere 工具允许您预先配置整个流程,包括:
- 磁盘分区和格式化
- 配置和安装 NixOS
- 安装额外的文件和软件
然后,您可以通过单条 CLI 命令启动无人值守安装。 由于 nixos-anywhere 可以使用 SSH 访问新机器,因此非常适合 远程安装。
一旦您启动了该命令,就无需“照看” 安装过程。一切都会自动完成。
如果需要,您可以使用存储的配置重复相同的安装 操作。
概述
如果您的机器分布在多种平台上,您将需要一个在任何地方都能通用的安装 解决方案。nixos-anywhere 在这种情况下非常理想。
nixos-anywhere 同样适用于云服务器、Hetzner 等裸金属 服务器以及可通过 LAN 访问的本地服务器。您可以创建 标准配置,并使用相同的配置在任何地方创建相同的 服务器。
您首先创建 Nix 配置以指定分区、格式化以及 NixOS 配置。其他选项可以通过 flake 和 运行时开关来控制。
一旦配置创建完成,单条命令将:
- 通过 SSH 连接到远程服务器
- 检测是否存在 NixOS 安装程序;如果不存在,它将使用 Linux
kexec工具启动进入 Nixos 安装程序。 - 使用 disko 工具对 硬盘进行分区和格式化
- 安装 NixOS
- 可选地安装所需的任何 Nix 软件包和其他软件。
- 可选地复制额外文件到新机器
也可以使用 nixos-anywhere 来简化在没有当前操作系统的机器上的安装, 首先从 NixOS 安装镜像启动。此功能在 how-to guide 中有描述。 这很有用,因为你可以预先配置所需的软件和 偏好设置,并通过一条命令构建新机器。
重要提示: 切勿将生产服务器作为目标。它将被 完全覆盖,所有数据都会丢失。此工具仅应用于 在重要数据迁移完成后,为新的计算机进行初始化或重新利用旧机器。
前提条件
-
源机器:
- 可以是任何安装了 Nix 的机器,例如 NixOS 机器。
-
目标机器:
-
除非你使用从 NixOS 安装镜像启动的选项,或者 提供你自己的
kexec镜像,否则它必须运行支持 kexec 的 x86-64 Linux。大多数x86_64Linux 系统都支持 kexec。通过提供 你自己的 镜像 你还可以为其他架构执行 kexec,例如 aarch64- 该机器必须可通过公共互联网或本地网络访问。 Nixos-anywhere 不支持 wifi 网络。如果需要 VPN,请通过 --kexec 标志定义一个 连接到你的 VPN 的自定义安装程序。
- 当使用
kexec时,目标机器必须至少拥有 1 GB 的 RAM,不包括 交换空间。
如何使用 nixos-anywhere
快速入门指南 提供了有关如何 以最简单形式运行 nixos-anywhere 的更多信息。对于符合 个人需求的更具体说明,请参阅 使用指南。
相关工具
nixos-anywhere 使用了 disko 工具来处理磁盘的 分区和格式化。
联系方式
如有问题,请加入我们的 nixos-anywhere matrix 房间。
许可和贡献详情
本软件在 MIT 许可证 下免费提供。
本项目由 Numtide 提供支持。
我们是一支热爱开源的独立自由职业者团队。我们通过以下方式帮助客户提高项目生命周期效率:
- 提供并支持此类实用工具
- 构建和部署基础设施,并提供专门的 DevOps 支持
- 培养其内部 Nix 技能,并将 Nix 集成到其工作流程中
- 开发额外的功能和工具
- 开展定制化的研究与开发。
如果您有项目想法,或需要任何我们支持的工具(包括本工具)的帮助,请联系我们。我们很乐意收到您的来信。