Connecting to Lab Devices¶
netlab connect command uses information stored in Ansible inventory and reported by ansible-inventory command to connect to a lab device using SSH or docker exec. You could use it with an inventory file created with netlab create command or with any other Ansible inventory.
Usage¶
usage: netlab connect [-h] [-v] [-q] [--dry-run] [--snapshot [SNAPSHOT]] host
Connect to a network device or an external tool
positional arguments:
host Device or tool to connect to
options:
-h, --help show this help message and exit
-v, --verbose Verbose logging
-q, --quiet No logging
--dry-run Print the commands that would be executed, but do not execute them
--snapshot [SNAPSHOT]
Transformed topology snapshot file
The rest of the arguments are passed to SSH or docker exec command
Collecting Device Data¶
netlab connect uses the lab snapshot file (default: netlab.snapshot.yml) to read device information. You can overwrite the default snapshot file with the --snapshot command line parameter.
Using Inventory Data¶
netlab connect command uses the following device data (most of it derived from device group_vars):
ansible_connection: Use docker exec if the connection is set todocker1. Use ssh if the connection is set tossh,paramiko2,network_cli3 ornetconf4. Fail for all other connection types.ansible_host: IP address or alternate FQDN for the lab device (default: host name specified on the command line)ansible_user: remote username for SSH session (default: not specified)ansible_ssh_passto specify password (default: use SSH keys)ansible_portto specify alternate SSH port (used primarily in VirtualBox environment)
Executing a Single Command¶
Command line parameters specified after the device name are passed to ssh or docker exec command, allowing you to execute a single command on a lab device.
If you want to process the results of the command executed on a lab device, use netlab connect -q to remove the “we are going to connect to device X” message.
Handling SSH Keys¶
netlab connect command disables SSH host key checking and uses /dev/null as known hosts file to simplify lab connectivity (some virtual devices change SSH key on every restart).
Warning
Do not use netlab connect in production environment.