CLI Shell 允许通过控制器 CLI 的 PC 客户端版本访问 NSX Advanced Load Balancer Controller

CLI Shell 安装包有两个版本可用:

avi_shell-16.1.5000.tar.gz(或更高版本):

可用于所有基础架构类型。如果要安装此版本的 CLI Shell,请单击此处

avi_lbaas-16.1.9014.tar.gz(或更高版本):

如果基础架构类型为 OpenStack,并且启用了 Keystone 支持,则可以使用此版本。(这是 NSX Advanced Load Balancer Controller 初始设置过程中的一个选项,也可以稍后进行配置。)要安装此版本的 CLI Shell,请继续阅读本文。

启用远程 CLI Shell 的要求

CLI Shell 服务器侦听 TCP 端口 5054。要使用远程 CLI Shell,必须在 CLI 客户端和 NSX Advanced Load Balancer Controller 之间的防火墙规则中允许端口 5054。

支持的操作系统版本

两种版本的 CLI Shell 都适用于 Linux 和 Mac。

  • Linux Ubuntu Docker 容器

  • Linux(不在 Docker 容器中)

  • Mac

对于每个操作系统,执行的步骤都相同。

必备条件

NSX Advanced Load Balancer CLI Shell 需要以下软件:

  • pip(适用于 Python 的安装包管理器)。

  • 虚拟环境 (virtualenv):下面提供了命令语法。

  • NSX Advanced Load Balancer CLI Shell 安装文件:来自于 AWS S3。

此外,如果将 NSX Advanced Load Balancer Controller 部署到 OpenStack 云中并启用了 Keystone 支持,则可使用 LBaaS 版本的 CLI Shell。需要提供如下所示的 Keystone 目录条目:

source admincc
keystone catalog
Service: avi-lbaas
+-----------+----------------------------------+
|  Property |              Value               |
+-----------+----------------------------------+
|     id    | db5e92e8740c4850ba3d81c73b6c4f23 |
| publicURL |     https://10.10.25.201/api     |
|   region  |            regionOne             |
+-----------+----------------------------------+
...
...

如果 Keystone 目录中不包含任何与 NSX Advanced Load Balancer 相关的条目,则需要使用下一节中所述的步骤添加一个条目。

NSX Advanced Load Balancer 添加 Keystone 目录条目

Keystone 条目需要由管理员添加。

本节提供了管理员可用来为 NSX Advanced Load Balancer 创建 Keystone 条目的命令字符串。命令字符串会略有不同,具体取决于它们是使用 OpenStack Client 还是 Keystone Client 输入的。

确保将以下项替换为适用于您部署的值:

NSX Advanced Load Balancer-Controller-IP:

NSX Advanced Load Balancer Controller 的管理 IP 地址。

RegionOne:

允许 NSX Advanced Load Balancer Controller 使用的区域名称。如果只有一个区域,请输入 Keystone 目录并选择用于其他服务的区域名称。

如果使用 openstack-client

根据 OpenStack Client 的版本,使用此处显示的两组命令中的一组命令。如果 openrc 凭据包含“OS_IDENTITY_API_VERSION=3”,请使用第二组命令。否则,请使用第一组命令。

如果 openrc 凭据不包含“OS_IDENTITY_API_VERSION=3”:

openstack service create  --name avi --description "Avi LBaaS" avi-lbaas
openstack endpoint create --publicurl https://AviControllerIP/api --region RegionOne avi-lbaas

如果 openrc 凭据包含“OS_IDENTITY_API_VERSION=3”:

openstack service create  --name avi --description "Avi LBaaS" avi-lbaas
openstack endpoint create --region RegionOne avi-lbaas public https://AviControllerIP/api

如果使用 keystone-client

keystone service-create --name avi --type avi-lbaas --description "Avi LBaaS"
keystone endpoint-create --service-id $(keystone service-list | awk '/ avi-lbaas / {print $2}') --publicurl https://AviControllerIP/api --region RegionOne

安装 LBaaS CLI Shell

  1. 下载 LBaaS Shell 客户端软件包:avi_lbaas-16.1.9014.tar.gz

  2. 为 CLI Shell 创建虚拟环境:

    virtualenv .avi_lbaas
    New python executable in .avi_lbaas/bin/python
    Installing setuptools, pip, wheel...done.
  3. 激活虚拟环境

    source .avi_lbaas/bin/activate
  4. 安装下载的软件包:

    pip install ./avi_lbaas-16.1.9014.tar.gz 
    Processing ./avi_lbaas-16.1.9014.tar.gz
    Collecting Babel==2.1.1 (from shell-client-lbaas==16.1)
      Using cached Babel-2.1.1-py2.py3-none-any.whl
    Collecting cmd2==0.6.8 (from shell-client-lbaas==16.1)
    Collecting debtcollector==1.1.0 (from shell-client-lbaas==16.1)
      Using cached debtcollector-1.1.0-py2.py3-none-any.whl
    ...
    ...
    Building wheels for collected packages: shell-client-lbaas
      Running setup.py bdist_wheel for shell-client-lbaas
      Stored in directory: /Users/user/Library/Caches/pip/wheels/7e/00/01/ce4f12b9b00cc413c6a1a7400a95532bfa7279e99e40b37221
    Successfully built shell-client-lbaas
    Installing collected packages: pytz, Babel, pyparsing, cmd2, pbr, wrapt, six, debtcollector, funcsigs, iso8601, monotonic, msgpack-python, netaddr, netifaces, argparse, stevedore, oslo.config, oslo.i18n, oslo.utils, oslo.serialization, prettytable, requests, python-keystoneclient, requests-toolbelt, urllib3, virtualenv, wheel, commentjson, shell-client-lbaas
      Found existing installation: wheel 0.24.0
        Uninstalling wheel-0.24.0:
          Successfully uninstalled wheel-0.24.0
    Successfully installed Babel-2.1.1 argparse-1.4.0 cmd2-0.6.8 commentjson-0.6 debtcollector-1.1.0 funcsigs-0.4 iso8601-0.1.11 monotonic-0.5 msgpack-python-0.4.6 netaddr-0.7.18 netifaces-0.10.4 oslo.config-3.2.0 oslo.i18n-3.1.0 oslo.serialization-2.2.0 oslo.utils-3.3.0 pbr-1.8.1 prettytable-0.7.2 pyparsing-2.1.0 python-keystoneclient-1.8.1 pytz-2015.7 requests-2.9.1 requests-toolbelt-0.5.1 shell-client-lbaas-16.1 six-1.10.0 stevedore-1.10.0 urllib3-1.14 virtualenv-13.1.2 wheel-0.26.0 wrapt-1.10.6
  5. 获取 Keystone 凭据或明确设置环境变量。

    要获取凭据,请执行以下操作:

    source admincc
    keystone catalog
    ...
    ...
    Service: avi-lbaas
    +-----------+----------------------------------+
    |  Property |              Value               |
    +-----------+----------------------------------+
    |     id    | db5e92e8740c4850ba3d81c73b6c4f23 |
    | publicURL |     https://10.10.25.201/api     |
    |   region  |            regionOne             |
    +-----------+----------------------------------+
    ...
    ...
  6. 或者,要明确设置环境变量,请执行以下操作:

    export OS_USERNAME=admin
    export OS_AUTH_URL=http://10.10.16.82:5000/v2.0
    export OS_PASSWORD=avi123
    export OS_TENANT_NAME=admin
  7. 调用 avi_lbaas 以对 NSX Advanced Load Balancer Controller 进行 CLI 访问:

    avi_lbaas

    此时将显示 NSX Advanced Load Balancer CLI Shell 提示符:

    : > show version controller
    +-----------------+------------------------------------+
    | Controller Name | Version                            |
    +-----------------+------------------------------------+
    | node-1          | 16.2(5000) 2016-03-07 16:45:38 UTC |
    | node-2          | 16.2(5000) 2016-03-07 16:45:38 UTC |
    | node-3          | 16.2(5000) 2016-03-07 16:45:38 UTC |
    +-----------------+------------------------------------+
  8. 在 CLI 提示符处键入 exit 以退出:

    : > exit

退出 LBaaS CLI 虚拟环境

要退出 LBaaS 虚拟环境,请停用:

deactivate

启动 LBaaS CLI Shell

安装 LBaaS CLI Shell 后,下次只需输入以下命令即可将其启动:

.avi_lbaas/bin/avi_lbaas 

: > show version controller 
+-----------------+------------------------------------+
| Controller Name | Version                            |
+-----------------+------------------------------------+
| node-1          | 16.2(5000) 2016-03-07 16:45:38 UTC |
| node-2          | 16.2(5000) 2016-03-07 16:45:38 UTC |
| node-3          | 16.2(5000) 2016-03-07 16:45:38 UTC |
+-----------------+------------------------------------+