Project Icon

nix-topology

使用nix-topology模块自动生成NixOS基础设施和网络图

nix-topology通过从NixOS配置中自动生成基础设施和网络图表,提供了一个全新的模块系统。它能提取系统信息,如systemd-networkd接口、已配置服务和网络信息,并将其渲染为物理图表和网络图表。该项目简化了外部设备添加和网络连接定义的过程,且文档中包含详尽的示例和安装指南,适合希望以自动化工具替代手动图表制作的人士使用。

项目介绍:nix-topology

简介

nix-topology 是一个用于从 NixOS 配置中自动生成基础设施和网络示意图的工具。这些图表会以 SVG 格式呈现,帮助用户直观地查看网络结构,不再需要手工绘制。这一工具通过一个全新的全局模块系统让用户可以指定他们所拥有的节点和网络,大部分的工作都是通过一个内置的 NixOS 模块自动完成的,它会从主机中收集各种信息。

功能特色

  • 信息提取:从 NixOS 配置中自动提取信息,包括 systemd-networkd 的接口、已知的服务、来自 microvm.nix 和 NixOS 容器的虚拟机等,以及 kea 的网络信息。
  • 图表呈现:生成两个视角的图表,一个是着重于物理连接的主图以及一个以网络为中心的网络图。
  • 网络传播:自动在连接中传递已分配的网络。
  • 外部设备:允许添加外部设备如交换机、路由器、打印机等。

安装与使用

安装非常简单,只需在 flake.nix 中添加 nix-topology,定义全局模块,并将其加入到 NixOS 模块中。使用起来也很方便,具体步骤如下:

  1. 在 flake 中添加 nix-topology 作为输入。
  2. 在全局 pkgs 定义中添加暴露的 overlay,以使必要的工具可用于渲染。
  3. 在主机配置中导入暴露的 NixOS 模块 nix-topology.nixosModules.default
  4. 创建全局拓扑并在 flake 中作为输出公开。
  5. 通过 nix build .#topology.x86_64-linux.config.output 渲染你的拓扑,最终目录会包含生成的 SVG 图表。

添加连接和设备

初次渲染后的图表可能看起来有些凌乱,这是因为缺少某些物理连接等关键内容。用户可以在全局拓扑模块或任何参与的 NixOS 节点中添加这些信息,过程十分简单:

{
  # 连接 node1.lan 至 node2.wan
  nodes.node1.interfaces.lan.physicalConnections = [{ node = "node2"; interface = "wan"; }];
  # 增加家庭网络
  networks.home = {
    name = "Home Network";
    cidrv4 = "192.168.1.1/24";
  };
  # 指明 myhost.lan1 属于该网络
  nodes.myhost.interfaces.lan1.network = "home";
}

或者在本地配置中添加:

{
  topology.networks.home = {
    name = "Network Made by Host1";
    cidrv4 = "192.168.178.1/24";
  };
  topology.self.interfaces.lan1.network = "home";
}

未来计划

nix-topology 仍有诸多可以改进之处:

  • 信息收集方面,例如 Podman/docker 提取、网络接口提取、磁盘提取等。
  • 通用功能,包括 NAT 标识、接口类型图标等。

贡献方式

欢迎大家为 nix-topology 作出贡献!可以提出新功能、实施提取器或其他帮助。如果有兴趣,更多信息可以在项目的 CONTRIBUTING.md 和文档的开发章节中找到。

许可证

该项目获得 MIT 许可,保证了开源的自由使用与贡献。除非特别声明,所有提交的贡献都是按照该许可进行授权的。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号