netconf – Provides a persistent connection using the netconf protocol

Synopsis

  • This connection plugin provides a connection to remote devices over the SSH NETCONF subsystem. This connection plugin is typically used by network devices for sending and receiving RPC calls over NETCONF.

  • Note this connection plugin requires ncclient to be installed on the local Ansible controller.

Requirements

The below requirements are needed on the local master node that executes this connection.

  • ncclient

Parameters

Parameter Choices/Defaults Configuration Comments
host
-
Default:
"inventory_hostname"
var: ansible_host
Specifies the remote device FQDN or IP address to establish the SSH connection to.
host_key_checking
boolean
Default:
"yes"
ini entries:

[defaults]
host_key_checking = yes

[paramiko_connection]
host_key_checking = yes

env:ANSIBLE_HOST_KEY_CHECKING
env:ANSIBLE_SSH_HOST_KEY_CHECKING
env:ANSIBLE_NETCONF_HOST_KEY_CHECKING
var: ansible_host_key_checking
var: ansible_ssh_host_key_checking
var: ansible_netconf_host_key_checking
Set this to "False" if you want to avoid host key checking by the underlying tools Ansible uses to connect to the host
look_for_keys
boolean
Default:
"yes"
ini entries:

[paramiko_connection]
look_for_keys = yes

env:ANSIBLE_PARAMIKO_LOOK_FOR_KEYS
Enables looking for ssh keys in the usual locations for ssh keys (e.g. :file:`~/.ssh/id_*`).
netconf_ssh_config
-
ini entries:

[netconf_connection]
ssh_config = VALUE

env:ANSIBLE_NETCONF_SSH_CONFIG
var: ansible_netconf_ssh_config
This variable is used to enable bastion/jump host with netconf connection. If set to True the bastion/jump host ssh settings should be present in ~/.ssh/config file, alternatively it can be set to custom ssh configuration file path to read the bastion/jump host settings.
network_os
-
var: ansible_network_os
Configures the device platform network operating system. This value is used to load a device specific netconf plugin. If this option is not configured (or set to auto), then Ansible will attempt to guess the correct network_os to use. If it can not guess a network_os correctly it will use default.
password
-
var: ansible_password
var: ansible_ssh_pass
var: ansible_ssh_password
var: ansible_netconf_password
Configures the user password used to authenticate to the remote device when first establishing the SSH connection.
persistent_command_timeout
integer
Default:
30
ini entries:

[persistent_connection]
command_timeout = 30

env:ANSIBLE_PERSISTENT_COMMAND_TIMEOUT
var: ansible_command_timeout
Configures, in seconds, the amount of time to wait for a command to return from the remote device. If this timer is exceeded before the command returns, the connection plugin will raise an exception and close.
persistent_connect_timeout
integer
Default:
30
ini entries:

[persistent_connection]
connect_timeout = 30

env:ANSIBLE_PERSISTENT_CONNECT_TIMEOUT
var: ansible_connect_timeout
Configures, in seconds, the amount of time to wait when trying to initially establish a persistent connection. If this value expires before the connection to the remote device is completed, the connection will fail.
persistent_log_messages
boolean
Default:
"no"
ini entries:

[persistent_connection]
log_messages = no

env:ANSIBLE_PERSISTENT_LOG_MESSAGES
var: ansible_persistent_log_messages
This flag will enable logging the command executed and response received from target device in the ansible log file. For this option to work 'log_path' ansible configuration option is required to be set to a file path with write access.
Be sure to fully understand the security implications of enabling this option as it could create a security vulnerability by logging sensitive information in log file.
port
integer
Default:
830
ini entries:

[defaults]
remote_port = 830

env:ANSIBLE_REMOTE_PORT
var: ansible_port
Specifies the port on the remote device that listens for connections when establishing the SSH connection.
private_key_file
-
ini entries:

[defaults]
private_key_file = VALUE

env:ANSIBLE_PRIVATE_KEY_FILE
var: ansible_private_key_file
The private SSH key or certificate file used to authenticate to the remote device when first establishing the SSH connection.
remote_user
-
ini entries:

[defaults]
remote_user = VALUE

env:ANSIBLE_REMOTE_USER
var: ansible_user
The username used to authenticate to the remote device when the SSH connection is first established. If the remote_user is not specified, the connection will use the username of the logged in user.
Can be configured from the CLI via the --user or -u options.
timeout
integer
Default:
120
Sets the connection time, in seconds, for communicating with the remote device. This timeout is used as the default timeout value when awaiting a response after issuing a call to a RPC. If the RPC does not return in timeout seconds, an error is generated.

Status

Authors

  • Ansible Networking Team

Hint

If you notice any issues in this documentation, you can edit this document to improve it.

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.