Deploying the Module
Fabric Size | CPU Requirements* | Memory Requirements | Disk Space Requirements | |
Minimum | Recommended | |||
Up to 1000 nodes | 4-core server | 4 GB | 20 GB | 50 GB |
1000-5000 nodes | 8-core server | 16 GB | 40 GB | 120 GB |
5000-10000 nodes | 16-core server | 32 GB | 80 GB | 160 GB |
Above 10000 nodes | Contact NVIDIA Support |
The Cable Validation tool can be deployed in two methods:
Deploy the cables_bringup
container on a host as described below:
docker load -i <image_path>/cables_bringup_<version>.tar.gz
docker run --name cables_bringup -itd --network=host cables_bringup
docker exec -it cables_bringup /bin/bash
Setting Docker Environment
Environment Variable Configuration File
To enhance flexibility and usability, CVT supports environment variable management through a dedicated file. All variables listed below can be set in the configuration file, which includes default values for easy customization. If an environment variable is defined in both the Docker environment and the configuration file, the Docker environment value takes precedence.
Step 1: Configuration File
The cvt_env.conf
file is installed with CVT and comes preloaded with default values.
You can modify this file to match your environment requirements.
Step 2: Updating Variables
To update an environment variable:
Edit the
/etc/cablevalidation/cvt_env.conf
file.Save your changes.
Restart the CVT collector for the changes to take effect.
NoteNote: A Docker container restart is not required—only the CVT collector needs to be restarted.
Sample cvt_env.conf
file:
# Variable names are case
-sensitive, and should be unique among sections.
# Network Configuration
[network]
# IP addresses used by the agents:
# if
no Environment Variable is set, the IP address of the default
interface
will be used.
# if
AGENTS_COLLECTOR_NAT_IP is set
# - the agents (switch
and host) will use this
IP address
# otherwise
# - if
DEFAULT_AGENTS_INTERFACE_NAME is set, switch
and host agents will use the IP address of the interface
# specified by DEFAULT_AGENTS_INTERFACE_NAME
# - if
HOST_SPECIFIC_INTERFACE_NAME is set, host agents will use the IP address of the interface
# specified by HOST_SPECIFIC_INTERFACE_NAME
# Collector External (NAT) IP address; define if
there is a NAT between the collector and the agents
# this
IP address is used by the agents to communicate the collector
# fetch images and send data/reports to the collector
# Leave empty if
there is no NAT between the collector and the agents
AGENTS_COLLECTOR_NAT_IP=
# Interface name of the collector over which all the agents (switch
and host) will communicate
# The IP address of this
interface
will be used by all agents (switch
and host) to communicate to the
# collector to fetch images and send data/reports
DEFAULT_AGENTS_INTERFACE_NAME=
# Use the following variable if
you want to use a different interface
of the collector for
the host agents
# Define if
the interface
to connect with hosts is different from the one used for
switch
agents
# specified by DEFAULT_AGENTS_INTERFACE_NAME
# The IP address of this
interface
will be used by the host agents to communicate to the
# collector to fetch images and send data/reports
# Leave empty if
you want to use the same interface
as DEFAULT_AGENTS_INTERFACE_NAME
HOST_SPECIFIC_INTERFACE_NAME=
# Agent Configuration
[agent]
# set True if
the switch
hostname contains a dot (other than the domain part)
CV_DOT_IN_HOSTNAME=
# Max time to wait for
an agent to become inactive in minutes
MAX_INACTIVE_INTERVAL=15
# Interval to check for
new
switches in minutes
CHECK_NEW_SWITCHES_INTERVAL=15
# Time to wait for
an agent to become active after start validation
START_VALIDATION_TIMEOUT=5
# Time to wait for
an agent to become inactive in minutes
WAIT_TIME_INACTIVE_AGENTS=1
# Max number of workers to run in parallel
CVT_MAX_WORKERS=30
# Time after which a full report is forced to be generated.
# Value to be provided in minutes. Default is 720
minutes (12
hours).
# Interval less than 10
mins is not supported.
FORCE_FULL_REPORT_INTERVAL=720
# SSH Configuration
[ssh]
# SSH key file for
the collector
CV_SSH_KEY_FILE=./ssh_key
# SSH connection timeout in seconds
SSH_CONN_TIMEOUT=20
Configuration Parameters
Section | Parameter | Description |
network |
| NAT IP address between collector and agents. Leave empty if no NAT. |
| Interface for all agents to communicate with the collector. | |
| Interface for host agents if different from default. | |
agent |
| Set |
| Minutes before inactive agent is considered down. | |
| Minutes between checks for new switches. | |
| Minutes allowed for agent to become active after start. | |
| Minutes to wait before confirming inactivity. | |
| Max parallel workers. | |
| Minutes until forced full report; min 10 mins. | |
ssh |
| Path to SSH private key file. |
| SSH connection timeout in seconds. |
Setting Environmental Variables with Docker Run
Specifying the Network Interface
If the host system is equipped with multiple network interfaces and the switches are connected to the host through an interface that differs from the default management interface, the user can designate this particular interface by utilizing a specific environment variable, namely AGENTS_IFC_NAME. To illustrate, assuming the hypothetical interface name is eno3:
docker run --name cables_bringup -itd --network=host --env AGENTS_IFC_NAME=eno3
Adding Hostnames
If the switches are not configured in the DNS server, you may add hostnames; the user may use the --add-host option when running the container. For example (assuming the switch name is switch-3245fa and its IP is 192.168.1.1):
docker run --name cables_bringup -itd --network=host --add-host=switch
-3245fa:192.168
.1.1
cables_bringup
Using Volumes
Volumes can be used for data persistence or easier file transfer to the cables_bringup container. The volume must be mapped to /cable_bringup_root in the container for data persistence. This volume can also be used for loading topology files. Example:
docker run --name cables_bringup -itd --network=host -v /opt/bringup_data:/cable_bringup_root cables_bringup
Overriding Apache Configuration
In the event that a host machine is running another Apache instance and utilizing the default ssh ports 443, an alternative port may be designated for the bringup server by the user, these ports should be available and free. To accomplish this, the APACHE_HTTPS_PORT environment variables can be employed. Consider the following example:
docker run --name cables_bringup -itd --network=host --env APACHE_HTTPS_PORT=9443
cables_bringup
Warning: Please note that Running Cable Validation as plugin is not supported on UFM Gen2.0.
Deploy the module as a UFM Enterprise plugin as follows:
docker load -i /<image_path>/ufm-plugin-cablevalidation-<version>.tar.gz
./manage_ufm_plugins.sh add -p cablevalidation -t <version>
./manage_ufm_plugins.sh start -p cablevalidation
docker exec -it ufm-plugin-cablevalidation bash
Copy Files to the Plugin
Users have two methods for copying files, such as topology files, to the Cable Validation plugin:
Copy the files to the plugin's data volume /opt/ufm/ufm_plugins_data/cablevalidation which is mapped to /data/ inside the plugin container.
Use docker cp to copy the needed files to the container.
Overriding the Apache Configuration
When using Cable Validation as a plugin, the default ports 443 are already in use by UFM Enterprise. Therefore, port 8633 will be used for HTTPS by default. Users can opt to use different ports for the bring-up server, provided that these ports are available and free.
The plugin config.cfg file can be modified to update APACHE_HTTPS_PORT variables for that purpose. To make this adjustment, follow these steps:
Execute /opt/ufm/scripts/manage_ufm_plugins.sh add -p cablevalidation to add the Cable Validation plugin.
Stop the plugin using /opt/ufm/scripts/manage_ufm_plugins.sh stop -p cablevalidation
Use vim /opt/ufm/files/conf/plugins/cablevalidation/config.cfg to modify the 'APACHE_HTTPS_PORT' variable.
Update and save the file.
Start the plugin again with /opt/ufm/scripts/manage_ufm_plugins.sh start -p cablevalidation.
With these changes, the new configuration will take effect, and Apache will run with the updated ports.