- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# netconf – Provides a persistent connection using the netconf protocol

- Synopsis
- Requirements
- Parameters
- Status

## 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

- This connection is not guaranteed to have a backwards compatible interface. [preview]
- This connection is maintained by the Ansible Community. [community]

### 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.