NSX Advanced Load Balancer 可通过 GUI、RESTful API 或 CLI 进行管理。GUI 和 CLI 都构建于 API 之上,这意味着每个 CLI 命令都映射到一个或多个相应的 API 调用来运行。

通过 CLI 命令与 NSX Advanced Load Balancer 交互

NSX Advanced Load Balancer 中,授权用户可与以下三个实体进行基于 CLI 的会话:

  1. 控制器的 Linux 操作系统

  2. 在控制器上运行的 NSX Advanced Load Balancer 进程

  3. SE 的 Linux 操作系统

与前两个实体的会话经常进行。但第三类会话却很少发生,且通常是由客户支持人员出于故障排除目的而进行。

与控制器操作系统进行 CLI 会话

以下是一个命令行示例:

传递到 ssh 命令的参数 (user@hostname) 由 admin 和控制器 IP 地址 10.144.130.195 组成。每个 NSX Advanced Load Balancer 控制器 都可以识别 admin 用户;如有必要,可以定义其他用户。对密码提示的响应不会回显。但是,在此示例中,密码表示为 XXXXX。

Bash 命令行解释器允许访问控制器的底层操作系统和文件系统。一个用例便是分析 /opt/avi/log/var/log/upstart 目录中的各种日志。

$>ssh admin@100.65.9.10
Avi Cloud Controller
Avi Networks software, Copyright (C) 2013-2017 by Avi Networks, Inc.
All rights reserved.
Management:   100.65.9.10/20        UP
Gateway:      100.65.15.254         UP
admin@100.65.9.10@100.65.9.10
Avi Cloud Controller
Avi Networks software, Copyright (C) 2013-2017 by Avi Networks, Inc.
All rights reserved.
Management:   100.65.9.10/20        UP
Gateway:      100.65.15.254         UP
admin@100.65.9.10@100.65.9.10
Avi Cloud Controller
Avi Networks software, Copyright (C) 2013-2017 by Avi Networks, Inc.
All rights reserved.
Management:   100.65.9.10/20        UP
Gateway:      100.65.15.254         UP
admin@100.65.9.10's password:
The copyrights to certain works contained in this software are
owned by other third parties and used and distributed under
license. Certain components of this software are licensed under
the GNU General Public License (GPL) version 2.0 or the GNU
Lesser General Public License (LGPL) Version 2.1. A copy of each
such license is available at
http://www.opensource.org/licenses/gpl-2.0.php and
http://www.opensource.org/licenses/lgpl-2.1.php
Last login: Wed Apr  5 16:24:41 2023 from 100.65.1.5
admin@100-65-9-10:~$

与控制器上运行的 NSX Advanced Load Balancer 进程进行 CLI 会话

特定于 NSX Advanced Load Balancer 的命令无法直接从控制器的 Bash 界面进行访问。

通过在 Bash 提示符下键入 shell 命令作为响应,可进入 NSX Advanced Load Balancer Shell 命令行解释器,然后输入登录凭据,如下所示:

shell
Login: admin
Password: XXXXX

在 Shell 提示符下,按 Tab 键两次作为响应,可显示特定于 NSX Advanced Load Balancer 的命令。在下面显示的 CLI 片段中,TABTAB 表示按两次 Tab 键。

TABTAB
attach          forcedelete     reprogram       terminal
clear           gslb            resync          test
configure       import          retryplacement  upgrade
controller      migrate         rollback        upload
convert         nsx             rotatekeys      upload_to_avi
debug           passwd          scalein         verifylogin
delete          reboot          scaleout        vinfra
do              rediscover      show            watch
exec            redistribute    switchover
export          reimage         switchto

show 命令可帮助分析各种问题并收集信息。例如,show virtualservice my-vs 将显示与名为 my-vs 的虚拟服务有关的基本数据。

如需详细了解上述命令的功能,请参阅 CLI 顶级命令

要退出 NSX Advanced Load Balancer Shell 并返回到控制器的 Bash 提示符,请键入 bash

bash

NSX Advanced Load Balancer SE 的 Linux 操作系统进行 CLI 会话

注:

虽然可以直接访问 SE 的 CLI,但只能将其用于进行基本的故障排除。所有配置管理都必须从控制器中进行,且必须由控制器完成。

通过 SSH 访问 SE 或从 NSX Advanced Load Balancer Shell 运行 attach serviceengine name-of-service-engine 命令,即可进入 SE 的 Linux CLI。控制器 Shell 提示符没有等效项;SE CLI 中没有 show 命令。可使用 SE CLI 查看各目录中特定于 SE 的日志,例如 /opt/avi/log

导航和帮助

进入 NSX Advanced Load Balancer Shell 后,按 Tab 键两次可查看可用命令列表。

  • 键入命令时,按 Tab 键可自动完成命令。按 Tab 键两次可在左侧列中返回命令的可用选项列表。大多数选项都包含简短的帮助说明,显示在右侧列中。

    export configuration
    export configuration serviceengine
    export serviceengine ova file from controller virtualservice
    export virtual service
  • 命令或参数可能需要键入多个单词或选项才能完成。如果只有一个单词或选项,按 Tab 键可自动完成命令中的下一个单词。

    export configuration [TAB]
    export configuration file [TAB]
    WORD (required)
    export configuration file mybackup
    Completed writing the export configuration to mybackup

其他导航命令:

  • 向上箭头键将循环显示命令,并允许重用之前运行的命令。

  • history 命令将以列表形式显示命令。

  • 管道符将筛选结果,如下所示

    • | grep address

    • | more

      它们在 watch 命令中也很有用。

子模式导航

许多 NSX Advanced Load Balancer CLI 命令都包含子模式,这些子模式是当前命令的嵌套子部分。

要进入子模式,请输入相关命令。在子模式的上下文中,所做更改在明确保存后才会提交。要退出子模式并同时提交更改,请键入 save

要退出子模式而不保存更改,请键入 cancel。在子模式或嵌套子模式下,命令提示符将更改为反映当前的子模式。

debug virtualservice Test-VS
debug_ip
cancel
cancel

可以输入命令以进入子模式,并同时添加适用的标记。这将同时导航到子模式并运行命令。子模式下的后续命令不会使用初始子模式命令。

debug_ip addrs 10.1.1.1
addrs 10.1.1.2
save

where 命令

在子模式下运行时,可以对参数进行多次更改。要查看已配置参数的当前状态,请使用 where 命令。

debug_ip addrs 10.1.1.1
addrs 10.1.1.2
addrs 10.1.1.3
where
Tenant: admin
+----------+----------+
| Field    | Value    |
+----------+----------+
| addrs[1] | 10.1.1.1 |
| addrs[2] | 10.1.1.2 |
| addrs[3] | 10.1.1.3 |
+----------+----------+

显示 CLI 命令背后的 REST API 调用

任何 NSX Advanced Load Balancer CLI 命令都可能包含 --api-detail 标记,该标记将回显命令所执行的一个或多个 API 调用。没有此标记,命令也能照样运行。在构建 API 驱动的自动化脚本时,这会非常有用。

show serviceengine --api-detail
REST API Request
API: /api/serviceengine?owned_by_controller=True&join_subresources=runtime

通过键入终端 display_api_details 命令,可以为单个 CLI 会话期间的每次命令运行启用 API 回显输出,如下所示:

terminal display_api_details
show serviceengine
REST API Request
Method: GET

API: /api/serviceengine?owned_by_controller=True&join_subresources=runtime

+---------------------------+---------------+------------------+---------------+------------+
| Name                      | SE Group      | Mgmt IP          | Cloud         | Oper State |
+---------------------------+---------------+------------------+---------------+------------+
| se3                       | glsbSEG       | 192.168.38.56    | Default-Cloud | OPER_UP    |
| se1                       | Default-Group | 192.168.38.52    | Default-Cloud | OPER_UP    |
| se2                       | Default-Group | 192.168.38.53    | Default-Cloud | OPER_UP    |
+---------------------------+---------------+------------------+---------------+------------+