首页
/ Nautobot 2.4.0版本发布:网络自动化平台的重大升级

Nautobot 2.4.0版本发布:网络自动化平台的重大升级

2025-07-04 03:21:10作者:尤峻淳Whitney

Nautobot是一个开源的网络自动化平台,旨在帮助网络工程师和运维团队更好地管理网络基础设施。作为NetBox项目的分支,Nautobot在原有基础上进行了大量功能增强和架构改进,提供了更强大的数据模型、API接口和扩展能力。

核心功能增强

虚拟设备上下文模型

Nautobot 2.4.0引入了VirtualDeviceContext数据模型,用于模拟物理网络设备的逻辑分区。这一功能特别适用于支持Cisco Nexus VDC、Juniper Logical Systems和Arista Multi-instance EOS等技术的网络环境。通过新的InterfaceVDCAssignment模型,用户可以将设备接口与虚拟设备上下文关联起来,实现更精细的网络设备管理。

无线网络数据模型

本次更新新增了WirelessNetwork、RadioProfile和SupportedDataRate等数据模型,使Nautobot能够更好地管理校园无线网络。同时,Controller和ControllerManagedDeviceGroup模型也获得了功能增强,为无线网络管理提供了更全面的支持。

平台功能改进

事件发布框架

Nautobot 2.4.0引入了一个通用的事件发布框架,可以将系统事件通知发布到Redis、Kafka、syslog等外部系统。该框架采用抽象的EventBroker API设计,可以轻松扩展以支持各种消息代理。

系统目前发布的事件包括:

  • 数据模型操作事件(创建/更新/删除)
  • 用户交互事件(登录/登出/密码修改)
  • 作业相关事件(开始/完成/审批通过/拒绝)

应用开发者可以利用这一框架发布与应用相关的自定义事件,实现更灵活的系统集成。

Kubernetes作业执行支持

在Kubernetes部署环境中,Nautobot现在支持将作业作为Kubernetes Job Pod运行,作为传统Celery Worker的替代方案。这一功能通过新的JobQueue模型实现,可以定义Celery任务队列或Kubernetes作业队列。

作业开发者需要注意,Job.task_queues字段已被弃用,应改用Job.job_queues关系。这一改进为作业执行提供了更大的灵活性和可扩展性。

开发者体验优化

UI组件框架

新引入的UI组件框架通过Python API定义Nautobot UI部分,减少了自定义HTML模板的需求。该框架特别优化了对象"详情"视图的构建,显著降低了样板代码量,提高了视图间的一致性,并促进了代码重用。

在2.4.0版本中,Circuit、Cluster Type、Device等多个核心模型的详情视图已迁移至新框架。应用开发者应相应调整其模板扩展实现。

REST API性能优化

新增的exclude_m2m查询参数可以避免API检索和序列化多对多关系,在某些情况下能显著提高API性能并降低内存和网络开销。DynamicModelChoiceField及相关表单字段也已优化,在填充选项时使用这一参数,提高了表单响应速度。

升级注意事项

Python版本要求

Nautobot 2.4.0不再支持Python 3.8,最低要求为Python 3.9。使用Python 3.8的环境需要在升级前先升级Python版本。

作业日志级别

作业现在支持success日志级别,开发者可以使用self.logger.success()方法记录成功信息,这些信息会在作业结果视图中以特定样式显示。

单例作业

作业开发者现在可以设置作业只允许单次并发执行,防止数据同步等关键作业意外重复运行导致数据问题。

用户体验改进

应用市场

新增的应用市场页面展示了可用的Nautobot应用信息,同时已安装应用页面也新增了类似应用市场的磁贴视图选项,提升了应用管理的便利性。

用户时区支持

用户现在可以通过个人资料中的用户偏好设置配置首选显示时区,Nautobot会根据用户设置显示日期和时间,提高了多时区团队的使用体验。

Jinja2模板渲染工具

新增的Jinja2模板渲染工具允许用户直接在UI中渲染模板,支持自定义模板体和上下文数据。相应的REST API端点也已添加,方便应用集成和模板开发验证。

总结

Nautobot 2.4.0版本在网络自动化功能、平台架构和开发者体验等方面都带来了显著提升。从虚拟设备和无线网络管理,到全新的事件发布框架和Kubernetes作业支持,再到优化的UI组件框架和API性能,这一版本为网络自动化工作流提供了更强大、更灵活的工具集。

对于现有用户,建议仔细阅读升级指南,特别是Python版本要求和作业队列变更等关键点。开发者则应重点关注新引入的UI组件框架和事件发布API,这些改进将显著简化应用开发工作。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
858
509
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
257
300
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
22
5