通过运行 CLI 命令发现网络设备
Last Updated January 22, 2025

可以在
VMware Aria Operations for Networks
收集器 CLI 中生成并运行脚本,以自动发现网络中的设备,并将所发现设备的详细信息导出为
.csv
文件。
在未来版本的
VMware Aria Operations for Networks
中,将弃用通过运行 CLI 命令发现网络设备。
您可以通过运行 CLI 命令发现以下设备:
  • Cisco 交换机
  • Arista 交换机
  • Juniper 交换机
  • Dell 交换机
  • F5 Big-IP
  • Brocade 交换机
  • Palo Alto 网络
  • Check Point 防火墙
  • Cisco ASA
  1. 支持
    用户身份登录到
    VMware Aria Operations for Networks
    收集器 CLI。
    使用安全套接字 Shell (SSH) 客户端提供您的 CLI 登录凭据。
  2. 切换到
    Ubuntu
    用户。
    ub
  3. 运行以下命令,以在当前的工作目录中生成 Python 脚本。
    java -cp "/home/ubuntu/build-target/common-utils/tools-0.001-SNAPSHOT.jar" com.vnera.tools.DiscoveredDevicesTool -w script.py
    您可以使用此脚本执行网络发现。
  4. 运行以下命令,以在当前的工作目录中生成示例凭据文件。
    java -cp "/home/ubuntu/build-target/common-utils/tools-0.001-SNAPSHOT.jar" com.vnera.tools.DiscoveredDevicesTool -s sample_creds.csv
    您可以使用示例凭据文件访问网络中的设备。
    以下是示例凭据文件的一个示例:
    "credential_name","connection_type", "username", "password", "snmp_version",
    "community_string", "snmp_user", "snmp_context", "snmp_auth_type", "snmp_auth_password",
    "snmp_privacy_type", "snmp_privacy_password"
    "SSH1","SSH","admin","admin","","","","","","","",""
    "API1","API","admin","admin","","","","","","","",""
    "SNMP1","SNMP","","","v2c","community","","","","","",""
    "SNMP2","SNMP","","","v3","","user","context","authtype","authpass","privacytype","privacypass"
  5. 使用 SSH、SNMP v2c、SNMPv3 或 API 凭据更新示例凭据文件。
    可以在该文件中输入多个凭据,只需为每个条目提供唯一的
    credential_name
    即可。
    要发现 F5 Big-IP 负载均衡器,必须输入 API 凭据。
    无法使用 API 凭据发现其他网络设备。
  6. 对 Python 脚本运行
    help
    命令,以查看该脚本支持的选项。
    python3 script.py --help
    可以使用这些选项对凭据进行身份验证并执行网络发现。
    选项
    描述
    --host
    VMware Aria Operations for Networks
    平台节点 1 的 IP 地址。
    --deployment type
    要对其执行此操作的部署类型。接受的值为
    onprem
    saas
    默认值为
    onprem
    --username
    平台用户的用户名。
    必须始终将用户名用单引号引起来。
    --password
    平台用户的密码。
    必须始终将密码用单引号引起来。
    --domain_type
    用于对用户凭据进行身份验证的域类型。接受的值为
    LOCAL
    LDAP
    --domain_value
    如果域类型为 LDAP,请提供 LDAP 域名。
    --api_token
    用于对
    VMware Aria Operations for Networks
    凭据进行身份验证的 API 刷新令牌。
    --cloud_location
    数据中心的位置。接受的值为
    US
    UK
    JP
    AU
    DE
    默认值为
    US
    --cloud_api_url
    VMware Aria Operations for Networks
    的 URL。此选项将替代
    --cloud_location
    选项中提供的值。
    --proxy_ips
    VMware Aria Operations for Networks
    收集器的 IP 地址。
    --credentials_file_path
    包含 SSH、SNMP 或 API 凭据的凭据文件的位置。
    --network_ranges
    要对其执行网络发现的 IP 地址范围。您可以采用网络范围格式或 CIDR 范围格式指定 IP 地址。
    --seeds
    要开始网络发现进程的网络设备的种子 IP 地址或种子 FQDN。
    运行网络发现脚本时,将以给定的种子 IP 地址作为起点开始网络发现进程。
    根据 CDP 和 LLDP 等行业协议发现每个种子的邻居设备。然后,将每个发现的设备用作种子,以递归方式发现网络中的其他设备,直到发现网络中的所有设备或达到种子深度。
    --seed_depth
    发现网络设备的深度。
    种子深度指示必须从种子 IP 地址探索的邻居的层级数。默认情况下,种子的深度为 0;种子的邻居的深度为 1:种子的邻居的邻居的深度为 2,依此类推。
    如果输入的种子深度为 2,则可以发现种子的设备、种子的邻居和种子的邻居的邻居。
    --ignored_list
    要从网络发现中排除的 IP 地址列表。您可以采用以下格式指定 IP 地址:
    • 单个 IP 地址
    • FQDN
    • 网络范围
    • CIDR 范围
    --download_discovered_devices
    用于下载以前发现的设备的选项。输入
    True
    False
    --out
    成功网络发现的 CSV 输出文件的名称。输出文件的默认名称为
    auto_gen_discovered_devices.csv
    --clear_all
    用于清除发现的详细信息(例如发现作业、凭据配置文件、作业结果和已发现的设备)的选项。输入
    True
    False
    --wait_time_in_secs
    发现设备的最长等待时间(以秒为单位)。
  7. 使用以下选项之一运行 Python 脚本:
    选项
    示例
    使用
    --network_ranges
    选项提供发现的网络范围。
    python3 script.py --deployment_type onprem --username 'user' --password 'pwd' --domain_type LOCAL --proxy_ips 10.xx.196.xxx --out discovered_devices.csv 
    --credentials_file_path sample_creds.csv --network_ranges 10.xxx.xx.158/24
    使用
    --seeds
    --seed_depth
    选项提供网络发现的种子地址和种子深度。
    python3 script.py --deployment_type onprem --username 'user' --password 'pwd' --domain_type LDAP --domain_value vmware.com --proxy_ips 10.xx.196.xxx --out discovered_devices.csv 
    --credentials_file_path sample_creds.csv --seeds 10.xxx.xx.xxx --seed_depth 2
    选项
    示例
    使用
    --network_ranges
    选项提供发现的网络范围。
    python3 script.py --deployment_type saas --api_token YourCSPAPIToken --cloud_location UK --proxy_ips 10.xx.196.xxx --out discovered_devices.csv 
    --credentials_file_path sample_creds.csv --network_ranges 10.xxx.xx.158/24
    使用
    --seeds
    --seed_depth
    选项提供网络发现的种子地址和种子深度。
    python3 script.py --deployment_type saas --api_token YourCSPAPIToken --cloud_location UK --proxy_ips 10.xx.196.xxx --out discovered_devices.csv 
    --credentials_file_path sample_creds.csv --seeds 10.xxx.xx.xxx --seed_depth 2
    您必须使用更新的凭据文件(包括 SSH、SNMP v2c、SNMPv3 或 API 凭据)运行 Python 脚本。
    python 脚本仅发现在收集器网络可访问性范围内的设备。不会发现网络上可用但无法从收集器网络访问的设备。
  8. 根据操作的状态,执行以下操作之一:
    状态
    操作
    操作成功。
    打开 CSV 文件。示例 CSV 文件如下所示:
    "DataSourceType","IP","fqdn","Username","Password","CSPRefreshToken","NickName",
    "CentralCliEnabled","IPFixEnabled","SwitchType","ParentvCenter","IsVMC",
    "snmp_version","snmp_community_string","snmp_username","snmp_password",
    "snmp_auth_type","snmp_privacy_type","ProxyIP"
    "DataSource1","","Domain_name","username","<pwd>","",
    "nick_name_discovered_devices_1","","","","","","","","","","","","10.xx.xxx.xx"
    "DataSource2","10.1xx.xx.1x","","username","pwd","",
    " nick_name_discovered_devices_2","","","","","","","","","","","","10.xx.xx.xxx"
    操作失败或超时。
    运行 Python 脚本并包含
    --clear_all
    选项,清除已发现设备的详细信息并启动新的网络发现操作。
    例如:
    python3 script.py --deployment_type onprem --username 'user' --password 'pwd' --proxy_ips 10.xxx.xxx.xx --clear_all true
    python3 script.py --deployment_type saas --api_token YourCSPAPIToken --cloud_location UK --proxy_ips 10.xx.xxx.xx --clear_all true
可以使用
operations-for-networks-sdk-python
SDK 在
VMware Aria Operations for Networks
中将发现的网络设备批量添加为数据源。有关详细信息,请参见使用 Python SDK 批量添加数据源