NixOS 虚拟机与集成测试:nixosTest 框架与系统级验证
NixOS 虚拟机与集成测试实战:为什么需要系统级测试、nixosTest 框架、test driver 与机器声明、VM 测试的断言(成功条件/服务状态/端口)、runInLinuxVM 单包测试、模块测试与参数化、CI 里跑 NixOS 测试、常见坑与调试。
category
NixOS 虚拟机与集成测试实战:为什么需要系统级测试、nixosTest 框架、test driver 与机器声明、VM 测试的断言(成功条件/服务状态/端口)、runInLinuxVM 单包测试、模块测试与参数化、CI 里跑 NixOS 测试、常见坑与调试。
可复现与封闭构建实战:什么是可复现构建、固定哈希(fixed-output derivation)、构建网络隔离与 impure 检测、确定性问题(时间戳/路径/环境)、diffoscope 对比、Reproducible Builds 标准、nix build --rebuild 验证、让构建可复现的工程手段、常见坑。
Nix 包打补丁与版本定制实战:为什么需要定制包、override 与 overrideAttrs 的区别、给包打源码补丁(patches/applyPatches)、替换依赖版本、override 陷阱(层级/递归)、在 flake 里覆盖 nixpkgs、写自己的补丁维护流程、常见坑与调试。
NixOS 安全加固实战:安全加固思维、攻击面最小化(最小服务/用户/暴露)、AppArmor 强制访问控制、安全内核参数与 sysctl、SSH 加固(密钥/速率限制/跳板)、auditd 审计与日志、firejail/沙箱隔离、安全更新与漏洞扫描、加固基线清单、常见陷阱。
NixOS 运维与维护实战:系统升级流程(稳定版/滚动版)、channel 与 flake 升级对比、nixos-rebuild 各种子命令、回滚与世代管理、垃圾回收与 store 瘦身、磁盘空间排查、备份与恢复、日常巡检清单。
NixOS 声明式网络配置实战:接口与地址、DHCP/静态 IP、WiFi 与 wpa_supplicant、DNS 与解析、路由与多网卡、防火墙(iptables/nftables 声明式)、端口开放、NAT 与转发、tun/tap 与 VPN、WireGuard 配置。
NixOS 服务管理实战:声明式 systemd 服务、服务依赖与开机自启、环境变量与秘钥、NixOS 容器(NixOS Containers)、常用服务部署(nginx/postgres/redis/cron)、服务监控与开机启动时序。
NixOS 密钥管理实战:为什么配置里不能写明文密钥、sops-nix(SOPS+age)工作流、agenix 声明式秘钥、多主机密钥分发、CI 与拉取密钥、密钥轮换与审计、配合 systemd 服务的秘钥注入。
NixOS 存储管理实战:磁盘分区与挂载、swap 配置、LVM 逻辑卷、Btrfs 子卷/快照/压缩、ZFS 集成、挂载选项与 fstab 声明式管理、磁盘配额与监控、故障恢复。
Nix Flake 模板实战:flake 模板体系、常用模板(多语言/多场景)、自建模板、模板引用与参数化、多输出组织(devShells/packages/checks)、模板与 CI 集成、常见坑与最佳实践。
Nix 是革命性的纯函数式包管理器,以声明式配置和可复现构建著称;NixOS 是围绕其构建的声明式操作系统。本专题系统覆盖 Nix 表达式语言与惰性求值语义、nixpkgs 与 derivation 包构建、nix-shell 开发环境与 direnv 集成、Flakes 现代化工作流(flake.nix / inputs/outputs / flake.lock)、NixOS 系统级声明式配置(configuration.nix / systemd 服务管理)、Home Manager 用户级配置(dotfiles 即代码)、以及 Nix 构建 Docker 镜像与远程部署工具链(deploy-rs / Colmena),为追求可复现基础设施的系统工程师和 DevOps 提供完整技能路径。进阶篇进一步覆盖 Nix 语言底层语义(柯里化/惰性求值/fix 定点组合)、Flakes 工程化最佳实践、CI 与 Cachix 二进制缓存、NixOS 模块系统、devenv 可复现开发环境、交叉编译与 overlay 异构构建、Flake 模板与项目脚手架,以及 NixOS 生产运维实战:声明式网络与防火墙(nftables/NAT/WireGuard)、systemd 服务与 NixOS 容器部署、密钥管理(sops-nix/agenix)、存储与文件系统(LVM/Btrfs/ZFS/快照)、升级回滚与垃圾回收(世代管理/GC),并进一步延伸工程纵深:NixOS 安全加固(攻击面最小化/AppArmor/SSH 加固/auditd 审计)、Nix 包打补丁与版本定制(override/overrideAttrs/patches/fetchpatch)、可复现与封闭构建(固定哈希/网络隔离/SOURCE_DATE_EPOCH/--rebuild 验证)、NixOS 虚拟机与集成测试(nixosTest/runInLinuxVM/CI 落地)、Nix 构建调试与错误排查(哈希不匹配/--show-trace/builtins.trace/依赖二分定位)、以及源码获取与 fetchers(fetchurl/fetchFromGitHub/fetchgit/SRI 哈希/私有源/flake url inputs)。并补齐 lazy-trees 大规模仓库求值、disko 声明式分区、nixos-anywhere 远程部署、构建沙箱与可复现性、Store 垃圾回收优化、Nix 语言服务器等进阶议题。