Proxmox-on-NixOS:在NixOS上运行Proxmox虚拟环境指南
1、项目介绍
Proxmox-on-NixOS 是一个创新项目,旨在将流行的Proxmox虚拟化平台带入纯净的NixOS生态系统。它由Camille Mondon (@camillemndn)和Julien Malka (@julienmalka)开发,目前仍处于实验阶段,适合技术探索而非生产环境。项目基于AGPL-3.0许可协议,提供了一种全新的方式来管理你的虚拟机和容器,利用了NixOS的强大配置管理系统。
2、项目快速启动
要迅速体验Proxmox-on-NixOS,你可以通过以下步骤来集成到你的NixOS设置中:
使用npins(或Flakes)
npins方式:
首先,确保你有一个NixOS系统,并且安装了npins工具。然后,在你的项目中添加proxmox-nixos
作为依赖项:
$ npins add github:SaumonNet/proxmox-nixos -b main
接下来,编辑你的configuration.nix
,加入Proxmox VE模块:
{ config, pkgs, ... }:
{
imports = [
(import <npins/proxmox-nixos> { })
];
services.proxmox-ve.enable = true;
nixpkgs.overlays = [
(import <npins/proxmox-nixos> { }).overlays.x86_64-linux
];
}
Flakes方式:
在你的 flakes.nix 中配置如下:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
proxmox-nixos.url = "github:SaumonNet/proxmox-nixos";
};
outputs = { self, nixpkgs, proxmox-nixos }: {
nixosConfigurations.yourHost = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
(proxmox-nixos.nixosModules.proxmox-ve (
{ config, pkgs, ... }:
{
services.proxmox-ve.enable = true;
}
))
];
};
};
}
重建你的系统以应用更改:
$ nixos-rebuild switch
3、应用案例和最佳实践
基本网络配置: 在Proxmox-web界面创建Linux桥接设备后,同步到NixOS配置中,例如使用systemd-networkd配置桥接网络:
systemd.network.networks."10-lan" = {
matchConfig.Name = ["ens18"];
networkConfig.Bridge = "vmbr0";
};
并确保实际桥接存在于NixOS配置中。
声明式VM管理: 利用virtualisation.proxmox
模块可以实现VM的声明式管理,减少了手动配置的复杂度。
4、典型生态项目
虽然Proxmox-on-NixOS本身是独特的,但其生态涉及到与其他NixOS特性及工具的集成,如使用colmena
进行自动化部署维护,或结合Nix flakes实现环境的一致性和可复制性。特别地,对于那些寻求更高级虚拟机管理解决方案的用户,可以探索microvms.nix
项目,该项目提供了更为完善的声明式虚拟机配置管理方案。
此指南提供了一个基础框架,用于探索如何在NixOS环境中部署和管理Proxmox虚拟环境。鉴于项目尚处实验阶段,强烈建议在非关键环境中尝试,并准备好面对可能遇到的不稳定情况。随着社区的支持和发展,未来版本可能会增加更多功能和稳定性。