数据中心/云端

使用 Ansible 和 Git 实现 NVIDIA Air 网络设计自动化

NVIDIA Air 的核心是实现自动化。您可以对网络的每个部分进行编码和版本控制,并将其设置为自动触发。这包括创建拓扑、配置网络以及验证其设置。自动化可减少手动错误、加快测试速度,并将现代 DevOps 团队在软件开发中所采用的严格要求运用到网络上。

我们来讨论一下允许网络管理员在 NVIDIA Air 中自动部署和验证配置的基本模块。

视频 1:使用自动化工具从头开始配置仿真的分步演示

配置网络

网络工程师如何配置交换机和服务器?想象一个简单的 CLOS 网络,其中包含一个 Spine交换机、两个 Leaf 交换机和两个 Ubuntu 服务器。您可以在 NVIDIA Air 中轻松创建或上传拓扑。详细了解拓扑文件

A diagram showing the topology of a CLOS network.
图 1:一个简单的 Clos 拓扑,包含一个 Spine交换机、两个 Leaf 交换机和两个服务器

启动 Cumulus Linux 或 SONiC 交换机,配置接口、环回地址并创建 VLAN。使激活并运行 BGP。为每个 Ubuntu 服务器分配一个 IP 地址,并确保它们可以相互 ping。在仿真环境中累计执行大约数百条命令后,您在几个小时内可以运行一个简单的小型网络。

无法扩展的手动配置

想象一下,通过 CLI 手动为 10、50 或 100 个节点执行相同的配置。这根本无法手动完成。自动化的魔力在于 —— 配置可被复制到文件中,在外部进行存储并自动应用于每个节点。

您可以根据环境、操作系统和安全策略,将配置存储为许多不同的文件类型。FRR 配置、.yaml、.ini、.conf、接口文件和启动脚本(例如 ZTP)都常用于网络工程。在 Cumulus Linux 中,您可以将 NVUE 命令存储在 .yaml 文件中。对于 SONiC,您还可以存储 config_db.json 文件。

版本控制

在使用 NVIDIA Air 时,GitLab 或 GitHub 是为配置文件提供安全外部存储的首选系统。演示市场中的大多数仿真都将其配置文件存储在 Git 仓库中。您也可以使用其他外部托管方法。

通过利用 Git,您可以保留版本控制系统的优势,同时仍然像处理物理环境一样处理您的仿真环境。文件并不存储在 Air 本身。

Ansible 用于配置部署和验证

我们已将网络配置复制到文件中,并将其存储在安全的地方。如何使用它们来配置网络?

这就是 Ansible 等工具的用武之地。Ansible 是一款简单的开源 IT 自动化工具,用于管理基础设施即代码。它是自动执行 NVIDIA Air 配置的首选工具,但 Python 和 shell 脚本也很受欢迎,具体取决于您的需求。它是无代理、轻量级的,并使用 SSH 连接到其他节点。无需守护程序、数据库或编译。

借助 Ansible,您可以在清单文件中定义托管节点及其密码,并使用 YAML(称为剧本)编写自动化指令。您可以将配置部署到同一网络中运行的不同操作系统上。详细了解 Ansible 如何工作,请查阅内容丰富的社区文档。

Ansible 操作应在 oob-mgmt-server 中执行,这是 Air 在您创建新的仿真并启用带外管理网络时自动生成的 Ubuntu 节点。它连接到带外网络上的所有其他节点,并具有内置的出站连接。Ansible 和 Git 均已预装在此节点上。如果启用SSH服务,它也是您 SSH 访问的节点。

这使其成为 Ansible 操作的理想跳转机。将脚本和配置文件复制到 oob-mgmt-server 中,并使用 ansible-playbook -i {inventory} playbooks/{playbook}命令,针对您指定的设备运行剧本,以便将配置部署到每个节点。

您可以参考演示市场中的许多实验的公共 Git 仓库,例如 Cumulus Linux EVPN 最佳实践的实验或 SONiC BGP EVPN VXLAN 实验,因为它们使用了 Ansible。

单击任何实验中的文档或代码库图标以了解详情。

An image of a lab offered in the marketplace.
图 2:NVIDIA Air 演示市场中的 Cumulus Linux 5.13 EVPN 最佳实践之一

将文件复制到 NVIDIA Air 模拟中

将 Ansible 脚本和配置文件复制到仿真中的方法有多种。

可访问互联网的环境

如果您的网络可以自由访问外部世界,也就是说,它不是隔离网络(air-gapped),您可以轻松地通过互联网来拉取文件。

在 oob-mgmt-server 中,使用 git clone 拉取包含您需要的所有文件的代码仓库,并使用 Ansible 部署和测试配置。您还可以使用 wget 和 curl 等其他外部访问命令,通过 npm 或 apt  访问公共软件包,以及使用 NVIDIA Air API 或 SDK

面向互联网的环境非常方便,特别是用于开发目的、直接 CI/ CD 集成以及轻松重新应用配置。

Air 隔离环境

如果您需要一个安全、隔离的环境,无法访问互联网,并且无法使用 git clone 或其他出站命令。虽然由于 NVIDIA Air 基于云的性质,我们无法真正模拟Air隔离环境,但我们可以接近并模仿网络管理员在真正的Air隔离环境中手动复制配置文件的方式。

我们可以启用 SSH 并使用 scp 将文件从本地机器复制到 oob-mgmt-server,以更真实地模拟封闭环境,而不是直接通过互联网访问资源,例如执行 git clone。

在 NVIDIA Air 仿真环境中,SSH 和 scp 都需要出站访问权限,因为它基于云。我们可以使用 scp 来高度模拟在真实的 Air 隔离环境中进行物理文件传输的工作流程,因为 scp 不需要每个节点之间具有互联网访问权限,只需要网络访问权限。此方法还可实现更可控、经审计的文件传输,并且可以手动完成,就像管理员在真实的封闭网络中执行的操作一样。

准备好开始了吗?

Ansible 是开源的,Git 为小型组织和个人提供免费访问权限,因此您可以随时创建简单的仿真并进行实验。

访问以下链接,详细了解如何开始仿真:
https://www.nvidia.cn/networking/ethernet-switching/air/

扫描下方二维码,查看 Cumulus Linux Workshop 和 SONiC Workshop 实验,了解分步的实战演示,并深入了解一些简单的 Ansible 设置。启动新实验并按照指南操作,即可试用这些工具。

标签