10分钟快速上手nixos-anywhere从零开始部署你的第一个NixOS系统【免费下载链接】nixos-anywhereInstall NixOS everywhere via SSH [maintainersMic92 Lassulus phaer Enzime a-kenji]项目地址: https://gitcode.com/gh_mirrors/ni/nixos-anywhere想要在任何地方快速部署NixOS系统吗nixos-anywhere是一个终极工具让你通过SSH在任何机器上安装NixOS。这个完整的指南将带你从零开始在10分钟内完成第一个NixOS系统的远程部署。 什么是nixos-anywherenixos-anywhere是一个强大的NixOS部署工具它允许你通过SSH连接远程安装NixOS系统。无论你是要部署到云服务器、物理服务器还是本地虚拟机这个工具都能帮你实现一键式自动化安装。核心功能包括通过SSH远程安装NixOS自动分区和格式化磁盘配置和安装完整的NixOS系统安装额外的软件包和文件支持多种硬件架构和云平台 准备工作在开始之前确保满足以下系统要求源机器要求已安装Nix的Linux或macOS系统或者使用NixOS系统Windows用户可以通过WSL2使用目标机器要求可通过公网或局域网访问至少1.5GB内存不包括交换空间x86-64或aarch64架构支持kexec或者已运行NixOS安装程序️ 快速开始步骤1. 启用Flakes功能首先确保你的Nix已启用Flakes功能nix flake如果未启用请参考NixOS Wiki上的Flakes启用指南。2. 创建配置文件创建一个新目录并初始化你的配置文件mkdir my-nixos-deployment cd my-nixos-deployment从示例仓库克隆配置文件git clone https://gitcode.com/gh_mirrors/ni/nixos-anywhere3. 配置SSH密钥在配置文件中找到SSH密钥设置部分将CHANGE替换为你的公钥# 在configuration.nix中 users.users.root.openssh.authorizedKeys.keys [ ssh-rsa AAA... your-public-key-here ];4. 配置磁盘布局创建disk-config.nix文件定义磁盘分区{ disk { main { type disk; device /dev/sda; content { type gpt; partitions { ESP { size 500M; type EF00; content { type filesystem; format vfat; mountpoint /boot; }; }; root { size 100%; content { type filesystem; format ext4; mountpoint /; }; }; }; }; }; }; }5. 锁定Flake依赖运行以下命令锁定依赖版本nix flake lock 执行部署命令现在可以运行nixos-anywhere进行部署了nix run github:nix-community/nixos-anywhere -- \ --flake .#my-config \ --target-host root192.168.1.100命令参数说明--flake .#my-config指定配置文件和配置名称--target-host rootIP目标机器的SSH连接信息 高级配置选项生成硬件配置如果你需要自动生成硬件配置可以使用以下命令nix run github:nix-community/nixos-anywhere -- \ --generate-hardware-config nixos-generate-config ./hardware-configuration.nix \ --flake .#my-config \ --target-host root192.168.1.100虚拟机测试在真实部署前可以先在虚拟机中测试配置nix run github:nix-community/nixos-anywhere -- \ --flake .#my-config \ --vm-test 项目结构说明了解nixos-anywhere的项目结构有助于更好地使用它主脚本src/nixos-anywhere.sh - 核心安装脚本文档目录docs/ - 完整的使用文档快速开始指南docs/quickstart.md - 快速入门教程系统要求docs/requirements.md - 详细的系统要求测试模块tests/ - 各种测试配置 实用技巧和最佳实践1. 使用环境变量简化操作设置SSH密码环境变量避免交互式输入export SSHPASSyour-password nix run github:nix-community/nixos-anywhere -- \ --flake .#my-config \ --target-host root192.168.1.100 \ --env-password2. 指定自定义SSH密钥使用特定的SSH密钥文件nix run github:nix-community/nixos-anywhere -- \ --flake .#my-config \ --target-host root192.168.1.100 \ -i ~/.ssh/my-key.pem3. 处理已知主机警告安装完成后如果遇到SSH已知主机警告可以使用以下命令清理ssh-keygen -R 192.168.1.100 部署成功验证当看到以下输出时表示部署成功Installation finished. No error reported. Warning: Permanently added 192.168.1.100 (ED25519) to the list of known hosts现在你可以通过SSH连接到新安装的NixOS系统ssh root192.168.1.100 后续系统更新部署完成后你可以使用标准的NixOS工具管理更新# 本地更新 nixos-rebuild switch --flake .#my-config # 远程更新 nixos-rebuild switch --flake .#my-config --target-host root192.168.1.100 进一步学习资源想要了解更多高级用法查看以下资源如何自定义kexec镜像docs/howtos/custom-kexec.mdIPv6配置指南docs/howtos/ipv6.mdTerraform集成docs/howtos/terraform.md无操作系统安装docs/howtos/no-os.md 总结通过这个10分钟快速指南你已经学会了如何使用nixos-anywhere快速部署NixOS系统。这个工具的强大之处在于它的灵活性和自动化能力让你可以轻松地在任何支持SSH的机器上部署NixOS。记住nixos-anywhere最适合用于新机器的初始化部署或旧机器的重新部署。对于生产环境的重要数据请务必提前备份现在就开始你的NixOS部署之旅吧【免费下载链接】nixos-anywhereInstall NixOS everywhere via SSH [maintainersMic92 Lassulus phaer Enzime a-kenji]项目地址: https://gitcode.com/gh_mirrors/ni/nixos-anywhere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考