Cumulus Linux 自动化
NVUE 是 Cumulus Linux 完整系统(硬件和软件)的面向对象、模式驱动模型,提供强大的 API,允许多个接口查看(show)和配置(set 和 unset)运行 NVUE 软件的系统中的任何元素。
NVUE 对象模型定义使用 OpenAPI 规范 (OAS)。OAS 是一种数据定义、操作和建模语言 (DML),可用于为人类和机器构建模型驱动的接口。虽然计算机网络和电信行业通常使用 YANG(由 IETF 标准化)作为 DML,但 OpenAPI 的采用范围更广,从云到计算到存储到 IoT,甚至社交媒体。OpenAPI Initiative (OAI) 联盟 领导 OpenAPI 标准化,这是一个 Linux 基金会下的特许项目。
与其他使用 OpenAPI 的系统一样,NVUE OAS 模式定义了作为 RESTful API 公开的端点(路径)。借助这些 REST API,您可以执行各种创建、检索、更新、删除和执行 (CRUDX) 操作。OAS 模式还描述了 API 输入和输出(数据模型)。
您可以通过以下方式使用 NVUE 对象模型
- 使用 NVUE CLI,您可以在其中配置、监控和管理 Cumulus Linux 网络元素。CLI 命令转换为等效的 REST API,Cumulus Linux 随后在 NVUE 对象模型上运行这些 API。
- 使用 NVUE REST API,您可以在其中对 NVUE 对象模型端点运行 GET、PATCH、DELETE 和其他 REST API,以配置、监控和管理交换机。由于 OAS 的庞大用户社区和成熟度,您可以使用多种流行的工具和库来创建客户端绑定以使用 NVUE REST API。您可以使用 Swagger 在此处 查看 NVUE REST API 文档。
启用 NVUE API
对于 Cumulus Linux 5.4 及更高版本,您必须启用 NVUE API 才能访问它。在交换机上运行以下命令集
cumulus@switch:~$ sudo ln -s /etc/nginx/sites-{available,enabled}/nvue.conf
cumulus@switch:~$ sudo sed -i 's/listen localhost:8765 ssl;/listen \[::\]:8765 ipv6only=off ssl;/g' /etc/nginx/sites-available/nvue.conf
cumulus@switch:~$ sudo systemctl restart nginx
CLI 和 REST API 在功能上是等效的;您可以从 REST API 或 CLI 运行所有管理操作。NVUE 对象模型驱动 REST API 和 CLI 管理操作。所有操作都是一致的;例如,CLI nv show
命令反映您通过 REST API 运行的任何 PATCH 操作(创建)。
NVUE 遵循声明式模型,消除了特定于上下文的命令和设置。它被构造为一棵大树,代表 Cumulus Linux 实例的整个状态。树的底部是代表对象的高级分支,例如路由器和接口。在每个分支下都有其他分支。当您浏览树时,您会获得更具体的上下文。树的叶子是实际属性,表示为键值对。遍历树的路径类似于文件系统路径。
运行您的第一个 NVUE API
您可以使用任何可以运行 API 调用的工具。在本指南中,示例实现使用 curl。
以下示例执行 GET 操作以获取交换机上当前的运行配置。
cumulus@switch:~$ curl -k -u cumulus:CumulusLinux! -X GET "https://127.0.0.1:8765/nvue_v1/?rev=applied"
cumulus@switch:~$ nv config show
"acl": {},
"bridge": {
"domain": {
"br_default": {
"encap": "802.1Q",
"mac-address": "auto",
"multicast": {
"snooping": {
"enable": "off"
}
},
"stp": {
"priority": 32768,
"state": {
"up": {}
}
},
"type": "vlan-aware",
"untagged": 1,
"vlan": {
"10": {
"multicast": {
...
- set:
bridge:
domain:
br_default:
type: vlan-aware
vlan:
'10':
vni:
'10': {}
'20':
vni:
'20': {}
'30':
vni:
'30': {}
evpn:
enable: on
mlag:
backup:
10.10.10.2: {}
enable: on
init-delay: 10
mac-address: 44:38:39:BE:EF:AA
...
NVUE 配置文件
当您使用 NVUE 保存网络配置时,NVUE 会将配置保存在名为 /etc/nvue.d/startup.yaml
的配置文件中。
您可以编辑或替换此文件的内容。仅当 nvue-startup.service
正在运行时,NVUE 才会在系统启动期间应用文件中的配置。应用配置后,NVUE 会写入相应的 Linux 文件。
当您使用 NVUE 命令配置交换机时,NVUE 会覆盖它管理的任何文件中的设置。请勿同时运行 NVUE 命令和手动编辑配置文件来配置交换机。要么仅使用 NVUE 命令配置交换机,要么手动编辑配置文件。
您可以配置 NVUE 在应用配置更改时忽略某些底层 Linux 文件。您可以在 此处 找到更多信息。
NVUE 功能支持
对于 Cumulus Linux 5.4,NVUE 对象模型支持 Cumulus Linux 交换机上的大多数功能。在较高级别,以下是受支持的对象
高级对象 | 描述 |
---|---|
acl | 访问控制列表。 |
bridge | 桥域配置。 |
evpn | EVPN 配置。 |
interface | 接口配置。 |
mlag | MLAG 配置。 |
nve | 网络虚拟化配置,例如 VXLAN 特定的 MLAG 配置和 VXLAN 洪泛。 |
platform | 平台配置,例如硬件和软件组件。 |
qos | QoS RoCE 配置。 |
router | 路由器配置,例如路由器策略、全局 BGP 和 OSPF 配置、PBR、PIM、IGMP、VRR 和 VRRP 配置。 |
service | DHCP 中继和服务器、NTP、PTP、LLDP 和 syslog 配置。 |
system | 全局系统设置,例如 PBR 的保留路由表范围和第 3 层 VNI 的保留 VLAN 范围、系统登录消息和交换机重启历史记录。 |
vrf | VRF 配置。 |
对于 NVUE 尚不支持的功能,您可以使用 代码片段。请联系专业服务团队寻求帮助。
Ansible
Ansible® 是一种开源 IT 自动化工具,可自动化配置、配置管理、应用程序部署、编排和许多其他手动 IT 流程。它的工作原理是连接到您想要自动化的内容并推送程序,这些程序执行您通常手动执行的指令。这些程序利用 Ansible 模块,这些模块是根据端点连接、接口和命令的特定期望编写的。
Ansible playbook 是自动化任务的蓝图,这些任务是无需人工干预即可执行的复杂 IT 操作。Ansible playbook 以人类可读的 YAML 格式编写,并在一组、组或分类主机上执行,这些主机共同构成 Ansible 清单。
生产就绪自动化 (PRA)
NVIDIA 的生产就绪自动化软件包使用 Ansible 角色来提供完全可操作、自动化的数据中心的多个示例,形式为 playbook,包括
- 所有示例的标准参考拓扑。
- 以下示例的各种黄金标准 EVPN-VXLAN 架构参考配置
- EVPN 集中式
- 仅 EVPN 二层
- EVPN 对称式
- EVPN 多宿主
- NVIDIA 参考拓扑 (cldemo2) 的完整 Vagrant 和 libvirt 模拟,提供基础物理基础设施和引导配置,以支持和演示 Cumulus Linux 功能和技术。
- 最佳实践 Ansible 自动化和基础设施即代码 (IaC)。
- 使用 GitLab 的持续集成和持续部署 (CI/CD) 工作示例。
- 由 NetQ Cloud 提供支持的 CI/CD 测试。
您可以将此生产就绪自动化软件包用作学习资源,并用作在 Cumulus Linux 网络环境中实施这些功能、技术和操作工作流程的起始模板。
生产就绪自动化为 NVUE 使用的启动配置 (startup.yaml
) 生成 jinja2
模板。
您可以在 此处 找到更多信息。
Ansible 模块
NVIDIA NVUE 集合 (nvidia.nvue
) 包括 Ansible 模块,可帮助您与 NVUE 管理的 NVIDIA 设备交互。这些模块是使用 Ansible 2.11 和 Python 3.6 开发和验证的,并且在 Cumulus Linux 5.x 上受支持。
截至本指南发布时可用的各种模块是
- CLI 是
nv
命令行工具的包装器,增加了模板和自动化对话框提示。 - REST API 使您能够发送和检索 NVUE 配置。
- 特定于对象的模块 旨在与单个网络对象一起使用,并支持各种参数,使您可以根据需要与它们进行交互。支持的各种模块包括 bridge、router、interface、evpn、mlag、system、vrf 和 vxlan。您可以在 此处 找到更多详细信息。
NVUE 迁移工具
NVUE 迁移工具 旨在帮助您自动从支持 NCLU 和 ONYX 的旧 Cumulus Linux 系统迁移到支持 NVUE 的较新系统。

NVIDIA Air
NVIDIA Air 是一个云托管的网络模拟平台,其行为与真实世界的生产环境完全相同。NVIDIA Air 可用于创建 IT 基础设施的数字孪生,以验证自动化代码。
demo marketplace 在 NVIDIA Air 上有一些完全配置的预构建实验室,演示了最佳实践配置。它包含一个 NVUE API 实验室,可帮助您开始使用 REST API。