6.8. 为 OVN 故障排除命令创建别名

您可以在 ovn_controller 容器中运行 OVN 命令,如 ovn-nbctl show。容器在 Controller 节点和 Compute 节点上运行。要简化对命令的访问,请创建并提供定义别名的脚本。

先决条件

  • 使用 ML2/OVN 作为默认机制驱动程序部署的 Red Hat OpenStack Platform。

流程

  1. 以具有访问 OVN 容器所需的权限的用户身份登录到 Controller 主机。

    示例

    $ ssh heat-admin@controller-0.ctlplane

  2. 创建一个 shell 脚本文件,其中包含您要运行的 ovn 命令。

    示例

    vi ~/bin/ovn-alias.sh

  3. 添加 ovn 命令并保存脚本文件。

    示例

    在这个示例中,ovn-sbctlovn-nbctlovn-trace 命令已添加到别名文件中:

    EXTERNAL_ID=\
    $(sudo ovs-vsctl get open . external_ids:ovn-remote | awk -F: '{print $2}')
    export NBDB=tcp:${EXTERNAL_ID}:6641
    export SBDB=tcp:${EXTERNAL_ID}:6642
    
    alias ovn-sbctl="sudo podman exec ovn_controller ovn-sbctl --db=$SBDB"
    alias ovn-nbctl="sudo podman exec ovn_controller ovn-nbctl --db=$NBDB"
    alias ovn-trace="sudo podman exec ovn_controller ovn-trace --db=$SBDB"
  4. 在 Compute 主机上重复此流程中的步骤。

验证

  1. 查找脚本文件。

    示例

    # source ovn-alias.sh

  2. 运行命令以确认脚本文件是否正常工作。

    示例

    # ovn-nbctl show

    输出示例

    switch 26ce22db-1795-41bd-b561-9827cbd81778 (neutron-f8e79863-6c58-43d0-8f7d-8ec4a423e13b) (aka internal_network)
    	port 1913c3ae-8475-4b60-a479-df7bcce8d9c8
        	addresses: ["fa:16:3e:33:c1:fc 192.168.254.76"]
    	port 1aabaee3-b944-4da2-bf0a-573215d3f3d9
        	addresses: ["fa:16:3e:16:cb:ce 192.168.254.74"]
    	port 7e000980-59f9-4a0f-b76a-4fdf4e86f27b
        	type: localport
        	addresses: ["fa:16:3e:c9:30:ed 192.168.254.2"]

其他资源

  • OVN-nbctl --help 命令
  • OVN-sbctl --help 命令
  • OVN-trace --help 命令