使用 ONIE 安装新的 Cumulus Linux 镜像
*cumulus* 用户账户的默认密码是 `cumulus`。首次登录 Cumulus Linux 时,**必须**更改此默认密码。请务必在安装新镜像之前更新任何自动化脚本。Cumulus Linux 提供了命令行选项,可在安装过程中自动更改默认密码。请参阅 ONIE 安装选项。
您可以使用 ONIE 安装新的 Cumulus Linux 镜像,ONIE 是一个开源项目(相当于服务器上的 PXE),可以在裸机交换机上安装网络操作系统 (NOS)。
在安装 Cumulus Linux 之前,交换机可能处于两种不同的状态
- 交换机不包含镜像(交换机仅运行 ONIE)。
- Cumulus Linux 已安装在交换机上,但您想使用 ONIE 重新安装 Cumulus Linux 或升级到更新的版本。
以下各节介绍了一些安装 Cumulus Linux 镜像的不同方法。步骤展示了如何直接从 ONIE 安装(如果交换机上没有镜像)以及从 Cumulus Linux 安装(如果镜像已安装在交换机上)。有关查找和安装 Cumulus Linux 镜像的其他方法,请参阅 ONIE 设计规范。
您可以从 NVIDIA 企业支持门户下载 Cumulus Linux 镜像。
安装 Cumulus Linux 镜像具有破坏性;交换机上的配置文件不会被保存;请在安装前将其复制到其他服务器。
在以下步骤中
- 您可以使用任何 ONIE 命名方案来命名您的 Cumulus Linux 镜像。
- 运行 `sudo onie-install -h` 命令以显示 ONIE 安装程序选项。
使用带有 DHCP 选项的 DHCP/Web 服务器安装
要使用 *带有* DHCP 选项的 DHCP 或 Web 服务器安装 Cumulus Linux,请在您的笔记本电脑上设置 DHCP/Web 服务器,并将交换机的 eth0 管理端口连接到您的笔记本电脑。连接电缆后,安装过程如下:
交换机启动并请求 IP 地址 (DHCP 请求)。
DHCP 服务器确认并使用 DHCP 选项 114 和安装镜像的位置进行响应。
ONIE 下载 Cumulus Linux 镜像、安装并重启。
您现在正在运行 Cumulus Linux。

最常见的方法是发送带有完整 URL 的 DHCP 选项 114 到 Web 服务器(可以是同一系统)。但是,即使您无法完全控制 DHCP,也有其他方法可以使用 DHCP。有关 部分安装程序 URL 和 高级 DHCP 选项的信息,请参阅 ONIE 用户指南;这两篇文章都列出了更多受支持的 DHCP 选项。
以下显示了使用 ISC DHCP 服务器的 DHCP 配置示例
subnet 172.0.24.0 netmask 255.255.255.0 {
range 172.0.24.20 172.0.24.200;
option default-url = "http://172.0.24.14/onie-installer-x86_64";
}
以下显示了使用 dnsmasq 的 DHCP 配置示例(静态地址分配)
dhcp-host=sw4,192.168.100.14,6c:64:1a:00:03:ba,set:sw4
dhcp-option=tag:sw4,114,"http://roz.rtplab.test/onie-installer-x86_64"
如果您没有 Web 服务器,可以使用 这个免费的 Apache 示例。
使用没有 DHCP 选项的 DHCP/Web 服务器安装
如果您可以通过串行控制台 (ONIE) 登录交换机,或者通过控制台或 SSH 登录(从 Cumulus Linux 安装),请按照以下步骤操作。
将 Cumulus Linux 镜像放在 Web 服务器上的目录中。
运行 `onie-nos-install` 命令
ONIE:/ #onie-nos-install http://10.0.1.251/path/to/cumulus-install-x86_64.bin
将 Cumulus Linux 镜像放在 Web 服务器上的目录中。
从 Cumulus Linux 命令提示符下,运行 `onie-install` 命令,然后重启交换机。
cumulus@switch:~$ sudo onie-install -a -i http://10.0.1.251/path/to/cumulus-install-x86_64.bin
使用没有 DHCP 的 Web 服务器安装
如果您可以通过串行控制台 (ONIE) 登录交换机,或者可以通过控制台或 SSH 登录(从 Cumulus Linux 安装),但 *没有* DHCP 服务器可用,请按照以下步骤操作。
您需要控制台连接才能访问交换机;您无法远程执行此过程。
ONIE 处于 *发现模式*。您必须使用以下命令禁用发现模式
onie# onie-discovery-stop
在较旧的 ONIE 版本中,如果不支持 `onie-discovery-stop` 命令,请运行
onie# /etc/init.d/discover.sh stop
使用 `ip addr add` 命令为 eth0 分配静态地址
ONIE:/ #ip addr add 10.0.1.252/24 dev eth0
将 Cumulus Linux 镜像放在您的 Web 服务器上的目录中。
手动运行安装程序(因为没有 DHCP 选项)
ONIE:/ #onie-nos-install http://10.0.1.251/path/to/cumulus-install-x86_64.bin
将 Cumulus Linux 镜像放在您的 Web 服务器上的目录中。
从 Cumulus Linux 命令提示符下,运行 `onie-install` 命令,然后重启交换机。
cumulus@switch:~$ sudo onie-install -a -i http://10.0.1.251/path/to/cumulus-install-x86_64.bin
使用 FTP 安装,无需 Web 服务器
如果您的笔记本电脑与交换机 eth0 接口在同一网络上,但 *没有* DHCP 服务器可用,请按照以下步骤操作。
为 eth0 设置 DHCP 或静态地址。以下示例为 eth0 分配静态地址
ONIE:/ #ip addr add 10.0.1.252/24 dev eth0
如果您使用的是静态地址,请禁用 ONIE 发现模式
onie# onie-discovery-stop
在较旧的 ONIE 版本中,如果不支持 `onie-discovery-stop` 命令,请运行
onie# /etc/init.d/discover.sh stop
将 Cumulus Linux 镜像放入 TFTP 或 FTP 目录。
如果您未使用 DHCP 选项,请运行以下命令之一(tftp 用于 TFTP,ftp 用于 FTP)
ONIE# onie-nos-install ftp://local-ftp-server/cumulus-install-x86_64.bin ONIE# onie-nos-install tftp://local-tftp-server/cumulus-install-[PLATFORM].bin
将 Cumulus Linux 镜像放入 FTP 目录(Cumulus Linux *不* 支持 TFTP)。
从 Cumulus Linux 命令提示符下,运行以下命令,然后重启交换机。
cumulus@switch:~$ sudo onie-install -a -i ftp://local-ftp-server/cumulus-install-x86_64.bin
使用本地文件安装
按照以下步骤,参考本地文件安装 Cumulus Linux 镜像。
为 eth0 设置 DHCP 或静态地址。以下示例为 eth0 分配静态地址
ONIE:/ #ip addr add 10.0.1.252/24 dev eth0
如果您使用的是静态地址,请禁用 ONIE 发现模式。
onie# onie-discovery-stop
在较旧的 ONIE 版本中,如果不支持 `onie-discovery-stop` 命令,请运行
onie# /etc/init.d/discover.sh stop
使用 scp 将 Cumulus Linux 镜像复制到交换机。
从 ONIE 手动运行安装程序
ONIE:/ #onie-nos-install /path/to/local/file/cumulus-install-x86_64.bin
`onie-install` 命令允许您暂存 Cumulus Linux 镜像和其他文件,例如 ZTP 脚本或 NVUE `startup.yaml` 文件,然后在您准备就绪时在交换机上运行安装。
您可以使用 `onie-install` 命令提供以下文件路径
- 本地文件路径(绝对或相对路径)
http://server/path/
https://server/path/
scp://user@server/path/
ftp://server/path/
(仅限匿名)
使用这些选项来暂存 Cumulus Linux 镜像的其他文件
- `-z` 暂存一个 ZTP 脚本。
- `-t` 暂存一个 NVUE `startup.yaml` 文件。
以下示例在 HTTP 服务器上暂存镜像
cumulus@cumulus:~$ sudo onie-install -i http://203.0.113.10/image-installer
以下示例在 HTTP 服务器上暂存镜像和一个 ZTP 脚本
cumulus@cumulus:~$ sudo onie-install -i http://203.0.113.10/image-installer -z http://203.0.113.10/ztp-script
以下示例在 HTTP 服务器上暂存镜像和一个本地 NVUE `startup.yaml` 文件
cumulus@cumulus:~$ sudo onie-install -i http://203.0.113.10/image-installer -t /etc/nvue.d/startup.yaml
当您暂存 NVUE `startup.yaml` 文件时,ZTP 仍然会在新镜像安装后运行。要阻止 ZTP 在新镜像安装后运行,可以
- 运行 `sudo ztp -d` 或 `nv action disable system ztp` 命令,在新镜像运行后禁用 ZTP。
- 使用 `-z` 选项指定一个不执行任何操作的现有 ZTP 脚本。例如,创建一个名为 `/tmp/cumulus_ztp.sh` 的文件,其中包含行 `#!/bin/bash # CUMULUS-AUTOPROVISIONING`,并指定 `sudo onie-install -fa -i <image-path> -z /tmp/cumulus_ztp.sh -t /etc/nvue.d/startup.yaml`。
要激活暂存的安装,请使用 `-a` 选项,然后重启交换机
cumulus@cumulus:~$ sudo onie-install -a
WARNING: This will wipe out all system data
WARNING: Make sure to back up your data
Are you sure (N/y)? y
Activating staged installer...done.
Reboot required to take effect.
您可以组合使用 `-i`、`-z`、`-t` 和 `-a` 选项。此外,您可以将 `-f` (force) 选项与 `-a` 选项一起使用,以抑制 yes 和 no 提示。
cumulus@cumulus:~$ sudo onie-install -fa -i http://203.0.113.10/image-installer -z http://203.0.113.10/ztp-script -t /etc/nvue.d/startup.yaml
Staging installer image... Adding ZTP script...done.
Activating staged installer...done.
Reboot required to take effect.
使用 USB 驱动器安装
按照以下步骤使用 USB 驱动器安装 Cumulus Linux 镜像。
使用 USB 驱动器安装 Cumulus Linux 不可扩展。与 USB 安装不同,DHCP 可以扩展到数百个交换机安装,而无需手动输入。
为 USB 安装做准备
从 NVIDIA 企业支持门户,下载适合您平台的 Cumulus Linux 镜像。
在计算机上,通过使用受支持的格式之一(FAT32、vFAT 或 EXT2)格式化 USB 驱动器来准备 USB 驱动器。
将 Cumulus Linux 镜像复制到 USB 驱动器,然后将镜像文件重命名为 `onie-installer-x86_64`。
您也可以使用此处提及的任何 ONIE 命名方案。
使用 MAC 或 Windows 计算机重命名安装文件时,文件扩展名可能仍然存在。请确保删除文件扩展名,以便 ONIE 可以检测到该文件。
将 USB 驱动器插入交换机,然后准备交换机进行安装
- 如果交换机处于离线状态,请连接到控制台并打开交换机电源。
- 如果交换机已在 ONIE 中联机,请使用 `reboot` 命令。
在此步骤之后,到交换机的 SSH 会话将被断开。要完成剩余的说明,请连接到交换机的控制台。Cumulus Linux 交换机将其启动过程显示到控制台;您需要专门监控控制台才能完成下一步。
监控控制台并从下面显示的第一个 GRUB 屏幕中选择 ONIE 选项。
x86 上的 Cumulus Linux 使用 GRUB 链式加载来呈现特定于 ONIE 分区的第二个 GRUB 菜单。在此菜单中无需执行任何操作即可选择默认选项 *ONIE: Install OS*。
交换机识别 USB 驱动器并自动挂载它。Cumulus Linux 安装开始。
安装完成后,交换机将自动重启进入新安装的 Cumulus Linux 实例。
ONIE 安装选项
您可以从 ONIE 运行多个安装程序命令行选项,以便在安装完成且 Cumulus Linux 首次启动后自动执行基本交换机配置。这些选项使您能够
- 为 *cumulus* 用户设置唯一密码
- 提供初始网络配置
- 执行 ZTP 脚本以执行必要的配置
`onie-nos-install` 命令 *不* 允许您指定命令行参数。您必须从控制台访问交换机并将磁盘镜像传输到交换机。然后,您必须使磁盘镜像可执行,并使用您要使用的选项直接从 ONIE 命令行安装镜像。
以下示例命令将磁盘镜像传输到交换机,使镜像可执行,并使用 `--password` 选项安装镜像以更改默认的 cumulus 用户密码
ONIE:/ # wget http://myserver.datacenter.com/cumulus-linux-4.4.0-mlx-amd64.bin
ONIE:/ # chmod 755 cumulus-linux-4.4.0-mlx-amd64.bin
ONIE:/ # ./cumulus-linux-4.4.0-mlx-amd64.bin --password 'MyP4$$word'
您可以在同一命令中运行多个选项。
设置 cumulus 用户密码
默认的 *cumulus* 用户帐户密码是 `cumulus`。首次登录 Cumulus Linux 时,您必须为 *cumulus* 帐户提供新密码,然后重新登录系统。
要自动化此过程,您可以使用 `--password '<clear text-password>'` 选项从安装程序的命令行指定新密码。例如,要将默认的 *cumulus* 用户密码更改为 `MyP4$$word`
ONIE:/ # ./cumulus-linux-4.4.0-mlx-amd64.bin --password 'MyP4$$word'
要提供哈希密码而不是明文密码,请使用 `--hashed-password '<hash>'` 选项。加密哈希可以维护安全的管理网络。
使用以下 `openssl` 命令生成 sha-512 密码哈希。示例命令为密码 `MyP4$$word` 生成 sha-512 密码哈希。
user@host:~$ openssl passwd -6 'MyP4$$word' 6$LXOrvmOkqidBGqu7$dy0dpYYllekNKOY/9LLrobWA4iGwL4zHsgG97qFQWAMZ3ZzMeyz11JcqtgwKDEgYR6RtjfDtdPCeuj8eNzLnS.
使用 `--hashed-password '<hash>'` 命令从安装程序的命令行指定新密码
ONIE:/ # ./cumulus-linux-4.4.0-mlx-amd64.bin --hashed-password '6$LXOrvmOkqidBGqu7$dy0dpYYllekNKOY/9LLrobWA4iGwL4zHsgG97qFQWAMZ3ZzMeyz11JcqtgwKDEgYR6RtjfDtdPCeuj8eNzLnS.'
如果您同时指定 `--password` 和 `--hashed-password` 选项,则 `--hashed-password` 选项优先,交换机将忽略 `--password` 选项。
提供初始网络配置
要在 Cumulus Linux 在安装后首次启动时自动提供初始网络配置,请使用 `--interfaces-file <filename>'` 选项。例如,要将名为 `network.intf` 的文件的内容复制到 `/etc/network/interfaces` 文件并运行 `ifreload -a` 命令
ONIE:/ # ./cumulus-linux-4.4.0-mlx-amd64.bin --interfaces-file network.intf
执行 ZTP 脚本
要运行包含在 Cumulus Linux 在安装后首次启动时执行的命令的 ZTP 脚本,请使用 `--ztp <filename>'` 选项。例如,要运行名为 `initial-conf.ztp` 的 ZTP 脚本
ONIE:/ # ./cumulus-linux-4.4.0-mlx-amd64.bin --ztp initial-conf.ztp
ZTP 脚本必须在文件开头附近包含 `CUMULUS-AUTOPROVISIONING` 字符串,并且必须位于 ONIE 文件系统上。请参阅 零接触配置 - ZTP。
如果您将 `--ztp` 选项与其他任何命令行选项一起使用,则 ZTP 脚本优先,交换机将忽略其他命令行选项。
更改默认 BIOS 密码
为了提供一层安全性并防止未经授权访问交换机,NVIDIA 建议您更改默认 BIOS 密码。默认 BIOS 密码是 `admin`。
要更改默认 BIOS 密码
在系统启动期间,当 BIOS 版本打印时,通过串行控制台按 `Ctrl+B`。
从 **Security** 菜单中,选择 **Administrator Password**。

- 按照提示操作。
编辑 Cumulus Linux 镜像(高级)
Cumulus Linux 磁盘镜像文件包含一个 BASH 脚本,该脚本包含一组变量。您可以设置这些变量,以便能够使用单个镜像文件安装完全配置的系统。
安全启动
安全启动使用与固件中存储的受信任密钥相对应的密钥签名,验证系统启动期间加载的每个二进制映像。
安全启动仅在 NVIDIA SN3700C-S 交换机和配备 Spectrum-4 ASIC 的交换机上启用。
安全启动设置位于 BIOS 安全菜单中。 要访问 BIOS,请在系统启动期间 BIOS 版本打印时,通过串行控制台按 Ctrl+B
。
要访问 BIOS 菜单,请使用默认 BIOS 密码 admin
。
NVIDIA 建议更改默认 BIOS 密码;导航至 Security 并选择 Administrator Password(管理员密码)。
要验证或更改安全启动模式,请导航至 Security 并选择 Secure Boot(安全启动)。
在安全启动菜单中,您可以启用和禁用安全启动模式。 要安装 Cumulus Linux 的未签名版本,或在无需用户名和密码提示的情况下访问 ONIE,请将安全启动设置为 disabled
(禁用)。
当安全启动为 enabled
(启用)时,要访问 ONIE,需要进行身份验证。默认用户名和密码均为 root
。
ONIE: Rescue Mode ...
Platform : x86_64-mlnx_x86-r0
Version : 2021.02-5.3.0006-rc3-115200
Build Date: 2021-05-20T14:27+03:00
Info: Mounting kernel filesystems... done.
Info: Mounting ONIE-BOOT on /mnt/onie-boot ...
[ 17.011057] ext4 filesystem being mounted at /mnt/onie-boot supports timestamps until 2038 (0x7fffffff)
Info: Mounting EFI System on /boot/efi ...
Info: BIOS mode: UEFI
Info: Using eth0 MAC address: b8:ce:f6:3c:62:06
Info: eth0: Checking link... up.
Info: Trying DHCPv4 on interface: eth0
ONIE: Using DHCPv4 addr: eth0: 10.20.84.226 / 255.255.255.0
Starting: klogd... done.
Starting: dropbear ssh daemon... done.
Starting: telnetd... done.
discover: Rescue mode detected. Installer disabled.
Please press Enter to activate this console. To check the install status inspect /var/log/onie.log.
Try this: tail -f /var/log/onie.log
** Rescue Mode Enabled **
login: root
Password: root
ONIE:~ #
要从 Cumulus Linux 验证系统的安全启动状态,请运行 mokutil --sb-state
命令。
cumulus@leaf01:mgmt:~$ mokutil --sb-state
SecureBoot enabled
在配备 Spectrum-4 ASIC 的交换机上,如果 ASIC 固件启动失败,您会看到一条消息,提示您联系 NVIDIA 客户支持以获取更多选项。