salt.proxy.netmiko_px

Netmiko

New in version 2019.2.0.

Proxy module for managing network devices via Netmiko.

codeauthor

Mircea Ulinic <ping@mirceaulinic.net> & Kirk Byers <ktbyers@twb-tech.com>

maturity

new

depends

netmiko

platform

unix

Dependencies

The netmiko proxy modules requires Netmiko to be installed: pip install netmiko.

Pillar

The netmiko proxy configuration requires the following parameters in order to connect to the network device:

  • device_type - Class selection based on device type. Supported options:

    • a10: A10 Networks

    • accedian: Accedian Networks

    • alcatel_aos: Alcatel AOS

    • alcatel_sros: Alcatel SROS

    • apresia_aeos: Apresia AEOS

    • arista_eos: Arista EOS

    • aruba_os: Aruba

    • avaya_ers: Avaya ERS

    • avaya_vsp: Avaya VSP

    • brocade_fastiron: Brocade Fastiron

    • brocade_netiron: Brocade Netiron

    • brocade_nos: Brocade NOS

    • brocade_vdx: Brocade NOS

    • brocade_vyos: VyOS

    • checkpoint_gaia: Check Point GAiA

    • calix_b6: Calix B6

    • ciena_saos: Ciena SAOS

    • cisco_asa: Cisco SA

    • cisco_ios: Cisco IOS

    • cisco_nxos: Cisco NX-oS

    • cisco_s300: Cisco S300

    • cisco_tp: Cisco TpTcCe

    • cisco_wlc: Cisco WLC

    • cisco_xe: Cisco IOS

    • cisco_xr: Cisco XR

    • coriant: Coriant

    • dell_force10: Dell Force10

    • dell_os10: Dell OS10

    • dell_powerconnect: Dell PowerConnect

    • eltex: Eltex

    • enterasys: Enterasys

    • extreme: Extreme

    • extreme_wing: Extreme Wing

    • f5_ltm: F5 LTM

    • fortinet: Fortinet

    • generic_termserver: TerminalServer

    • hp_comware: HP Comware

    • hp_procurve: HP Procurve

    • huawei: Huawei

    • huawei_vrpv8: Huawei VRPV8

    • juniper: Juniper Junos

    • juniper_junos: Juniper Junos

    • linux: Linux

    • mellanox: Mellanox

    • mrv_optiswitch: MrvOptiswitch

    • netapp_cdot: NetAppcDot

    • netscaler: Netscaler

    • ovs_linux: OvsLinux

    • paloalto_panos: PaloAlto Panos

    • pluribus: Pluribus

    • quanta_mesh: Quanta Mesh

    • ruckus_fastiron: Ruckus Fastiron

    • ubiquiti_edge: Ubiquiti Edge

    • ubiquiti_edgeswitch: Ubiquiti Edge

    • vyatta_vyos: VyOS

    • vyos: VyOS

    • brocade_fastiron_telnet: Brocade Fastiron over Telnet

    • brocade_netiron_telnet: Brocade Netiron over Telnet

    • cisco_ios_telnet: Cisco IOS over Telnet

    • apresia_aeos_telnet: Apresia AEOS over Telnet

    • arista_eos_telnet: Arista EOS over Telnet

    • hp_procurve_telnet: HP Procurve over Telnet

    • hp_comware_telnet: HP Comware over Telnet

    • juniper_junos_telnet: Juniper Junos over Telnet

    • calix_b6_telnet: Calix B6 over Telnet

    • dell_powerconnect_telnet: Dell PowerConnect over Telnet

    • generic_termserver_telnet: TerminalServer over Telnet

    • extreme_telnet: Extreme Networks over Telnet

    • ruckus_fastiron_telnet: Ruckus Fastiron over Telnet

    • cisco_ios_serial: Cisco IOS over serial port

  • ip - IP address of target device (not required if host is provided)

  • host - Hostname of target device (not required if ip is provided)

  • username - Username to authenticate against target device, if required

  • password - Password to authenticate against target device, if required

  • secret - The enable password if target device requires one

  • port - The destination port used to connect to the target device

  • global_delay_factor - Multiplication factor affecting Netmiko delays (default: 1)

  • use_keys - Connect to target device using SSH keys (default: False)

  • key_file - Filename path of the SSH key file to use

  • allow_agent - Enable use of SSH key-agent

  • ssh_strict - Automatically reject unknown SSH host keys (default: False, which means unknown SSH host keys will be accepted)

  • system_host_keys - Load host keys from the user's "known_hosts" file (default: False)

  • alt_host_keys - If True, host keys will be loaded from the file specified in alt_key_file (default: False)

  • alt_key_file - SSH host key file to use (if alt_host_keys=True)

  • ssh_config_file - File name of OpenSSH configuration file

  • timeout - Connection timeout, in seconds (default: 90)

  • session_timeout - Set a timeout for parallel requests, in seconds (default: 60)

  • keepalive - Send SSH keepalive packets at a specific interval, in seconds. Currently defaults to 0, for backwards compatibility (it will not attempt to keep the connection alive using the KEEPALIVE packets).

  • default_enter - Character(s) to send to correspond to enter key (default: \n)

  • response_return - Character(s) to use in normalized return data to represent enter key (default: \n)

  • always_alive - In certain less dynamic environments, maintaining the remote connection permanently open with the network device is not always beneficial. In that case, the user can select to initialize the connection only when needed, by setting this option to False. By default this option is set to True (maintains the connection with the remote network device)

  • multiprocessing - Overrides the multiprocessing option, per proxy minion, as the Netmiko communication channel is mainly SSH (default: False)

Proxy Pillar Example

proxy:
  proxytype: netmiko
  device_type: juniper_junos
  host: router1.example.com
  username: example
  password: example
proxy:
  proxytype: netmiko
  device_type: cisco_ios
  ip: 1.2.3.4
  username: test
  use_keys: true
  secret: w3@k
salt.proxy.netmiko_px.alive(opts)

Return the connection status with the network device.

salt.proxy.netmiko_px.args()

Return the Netmiko device args.

salt.proxy.netmiko_px.call(method, *args, **kwargs)

Calls an arbitrary netmiko method.

salt.proxy.netmiko_px.conn()

Return the connection object.

salt.proxy.netmiko_px.init(opts)

Open the connection to the network device managed through netmiko.

salt.proxy.netmiko_px.initialized()

Connection finished initializing?

salt.proxy.netmiko_px.ping()

Connection open successfully?

salt.proxy.netmiko_px.shutdown(opts)

Closes connection with the device.