salt.modules.napalm_mod#
NAPALM helpers#
Helpers for the NAPALM modules.
New in version 2017.7.0.
- salt.modules.napalm_mod.alive(**kwargs)#
Returns the alive status of the connection layer. The output is a dictionary under the usual dictionary output of the NAPALM modules.
CLI Example:
salt '*' napalm.alive
Output Example:
result: True out: is_alive: False comment: ''
- salt.modules.napalm_mod.call(method, *args, **kwargs)#
Execute arbitrary methods from the NAPALM library. To see the expected output, please consult the NAPALM documentation.
Note
This feature is not recommended to be used in production. It should be used for testing only!
CLI Example:
salt '*' napalm.call get_lldp_neighbors salt '*' napalm.call get_firewall_policies salt '*' napalm.call get_bgp_config group='my-group'
- salt.modules.napalm_mod.compliance_report(filepath=None, string=None, renderer='jinja|yaml', **kwargs)#
Return the compliance report.
- filepath
The absolute path to the validation file.
Changed in version 2019.2.0.
Beginning with release codename
2019.2.0, this function has been enhanced, to be able to leverage the multi-engine template rendering of Salt, besides the possibility to retrieve the file source from remote systems, the URL schemes supported being:salt://http://andhttps://ftp://s3://swift:/
Or on the local file system (on the Minion).
Note
The rendering result does not necessarily need to be YAML, instead it can be any format interpreted by Salt's rendering pipeline (including pure Python).
- string
New in version 2019.2.0.
The compliance report send as inline string, to be used as the file to send through the renderer system. Note, not all renderer modules can work with strings; the 'py' renderer requires a file, for example.
- renderer:
jinja|yaml New in version 2019.2.0.
The renderer pipe to send the file through; this is overridden by a "she-bang" at the top of the file.
- kwargs
Changed in version 2019.2.0.
Keyword args to pass to Salt's compile_template() function.
CLI Example:
salt '*' napalm.compliance_report ~/validate.yml salt '*' napalm.compliance_report salt://path/to/validator.sls
Validation File Example (pure YAML):
- get_facts: os_version: 4.17 - get_interfaces_ip: Management1: ipv4: 10.0.2.14: prefix_length: 24 _mode: strict
Validation File Example (as Jinja + YAML):
- get_facts: os_version: {{ grains.version }} - get_interfaces_ip: Loopback0: ipv4: {{ grains.lo0.ipv4 }}: prefix_length: 24 _mode: strict - get_bgp_neighbors: {{ pillar.bgp.neighbors }}
Output Example:
device1: ---------- comment: out: ---------- complies: False get_facts: ---------- complies: False extra: missing: present: ---------- os_version: ---------- actual_value: 15.1F6-S1.4 complies: False nested: False get_interfaces_ip: ---------- complies: False extra: missing: - Management1 present: ---------- skipped: result: True
- salt.modules.napalm_mod.config_diff_text(source1='candidate', candidate_path=None, source2='running', running_path=None)#
New in version 2019.2.0.
Return the diff, as text, between the two different configuration sources. The sources can be either specified using the
source1andsource2arguments when retrieving from the managed network device.- source1:
candidate The source from where to retrieve the configuration to be compared with. Available options:
candidate,running,startup. Default:candidate.- candidate_path
Absolute or remote path from where to load the candidate configuration text. This argument allows any URI supported by
cp.get_url), e.g.,salt://,https://,s3://,ftp:/, etc.- source2:
running The source from where to retrieve the configuration to compare with. Available options:
candidate,running,startup. Default:running.- running_path
Absolute or remote path from where to load the running configuration text. This argument allows any URI supported by
cp.get_url), e.g.,salt://,https://,s3://,ftp:/, etc.- saltenv:
base Salt fileserver environment from which to retrieve the file. Ignored if
candidate_pathorrunning_pathis not asalt://URL.
CLI Example:
salt '*' napalm.config_diff_text salt '*' napalm.config_diff_text candidate_path=https://bit.ly/2mAdq7z # Would compare the running config with the configuration available at # https://bit.ly/2mAdq7z
- source1:
- salt.modules.napalm_mod.config_diff_tree(source1='candidate', candidate_path=None, source2='running', running_path=None)#
New in version 2019.2.0.
Return the diff, as Python dictionary, between two different sources. The sources can be either specified using the
source1andsource2arguments when retrieving from the managed network device.- source1:
candidate The source from where to retrieve the configuration to be compared with. Available options:
candidate,running,startup. Default:candidate.- candidate_path
Absolute or remote path from where to load the candidate configuration text. This argument allows any URI supported by
cp.get_url), e.g.,salt://,https://,s3://,ftp:/, etc.- source2:
running The source from where to retrieve the configuration to compare with. Available options:
candidate,running,startup. Default:running.- running_path
Absolute or remote path from where to load the running configuration text. This argument allows any URI supported by
cp.get_url), e.g.,salt://,https://,s3://,ftp:/, etc.- saltenv:
base Salt fileserver environment from which to retrieve the file. Ignored if
candidate_pathorrunning_pathis not asalt://URL.
CLI Example:
salt '*' napalm.config_diff_text salt '*' napalm.config_diff_text candidate_path=https://bit.ly/2mAdq7z # Would compare the running config with the configuration available at # https://bit.ly/2mAdq7z
CLI Example:
salt '*' napalm.config_diff_tree salt '*' napalm.config_diff_tree running startup
- source1:
- salt.modules.napalm_mod.config_filter_lines(parent_regex, child_regex, source='running')#
New in version 2019.2.0.
Return a list of detailed matches, for the configuration blocks (parent-child relationship) whose parent respects the regular expressions configured via the
parent_regexargument, and the child matches thechild_regexregular expression. The result is a list of dictionaries with the following keys:match: a boolean value that tells whetherchild_regexmatched any children lines.parent: the parent line (as text).child: the child line (as text). If no child line matched, this field will beNone.
Note
This function is only available only when the underlying library ciscoconfparse is installed. See
ciscoconfparse modulefor more details.- parent_regex
The regular expression to match the parent configuration lines against.
- child_regex
The regular expression to match the child configuration lines against.
- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.
CLI Example:
salt '*' napalm.config_filter_lines '^interface' 'ip address' salt '*' napalm.config_filter_lines '^interface' 'shutdown' source=candidate
- salt.modules.napalm_mod.config_find_lines(regex, source='running')#
New in version 2019.2.0.
Return the configuration lines that match the regular expressions from the
regexargument. The configuration is read from the network device interrogated.- regex
The regular expression to match the configuration lines against.
- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.
CLI Example:
salt '*' napalm.config_find_lines '^interface Ethernet1\d'
- salt.modules.napalm_mod.config_lines_w_child(parent_regex, child_regex, source='running')#
New in version 2019.2.0.
Return the configuration lines that match the regular expressions from the
parent_regexargument, having child lines matchingchild_regex. The configuration is read from the network device interrogated.Note
This function is only available only when the underlying library ciscoconfparse is installed. See
ciscoconfparse modulefor more details.- parent_regex
The regular expression to match the parent configuration lines against.
- child_regex
The regular expression to match the child configuration lines against.
- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.
CLI Example:
salt '*' napalm.config_lines_w_child '^interface' 'ip address' salt '*' napalm.config_lines_w_child '^interface' 'shutdown' source=candidate
- salt.modules.napalm_mod.config_lines_wo_child(parent_regex, child_regex, source='running')#
New in version 2019.2.0.
Return the configuration lines that match the regular expressions from the
parent_regexargument, having the child lines not matchingchild_regex. The configuration is read from the network device interrogated.Note
This function is only available only when the underlying library ciscoconfparse is installed. See
ciscoconfparse modulefor more details.- parent_regex
The regular expression to match the parent configuration lines against.
- child_regex
The regular expression to match the child configuration lines against.
- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.
CLI Example:
salt '*' napalm.config_lines_wo_child '^interface' 'ip address' salt '*' napalm.config_lines_wo_child '^interface' 'shutdown' source=candidate
- salt.modules.napalm_mod.config_merge_diff(source='running', merge_config=None, merge_path=None, saltenv='base')#
New in version 2019.2.0.
Return the merge diff, as text, after merging the merge config into the configuration source requested (without loading the config on the device).
- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.- merge_config
The config to be merged into the initial config, sent as text. This argument is ignored when
merge_pathis set.- merge_path
Absolute or remote path from where to load the merge configuration text. This argument allows any URI supported by
cp.get_url), e.g.,salt://,https://,s3://,ftp:/, etc.- saltenv:
base Salt fileserver environment from which to retrieve the file. Ignored if
merge_pathis not asalt://URL.
CLI Example:
salt '*' napalm.config_merge_diff merge_path=salt://path/to/merge.cfg
- source:
- salt.modules.napalm_mod.config_merge_text(source='running', merge_config=None, merge_path=None, saltenv='base')#
New in version 2019.2.0.
Return the merge result of the configuration from
sourcewith the merge configuration, as plain text (without loading the config on the device).- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.- merge_config
The config to be merged into the initial config, sent as text. This argument is ignored when
merge_pathis set.- merge_path
Absolute or remote path from where to load the merge configuration text. This argument allows any URI supported by
cp.get_url), e.g.,salt://,https://,s3://,ftp:/, etc.- saltenv:
base Salt fileserver environment from which to retrieve the file. Ignored if
merge_pathis not asalt://URL.
CLI Example:
salt '*' napalm.config_merge_text merge_path=salt://path/to/merge.cfg
- source:
- salt.modules.napalm_mod.config_merge_tree(source='running', merge_config=None, merge_path=None, saltenv='base')#
New in version 2019.2.0.
Return the merge tree of the
initial_configwith themerge_config, as a Python dictionary.- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.- merge_config
The config to be merged into the initial config, sent as text. This argument is ignored when
merge_pathis set.- merge_path
Absolute or remote path from where to load the merge configuration text. This argument allows any URI supported by
cp.get_url), e.g.,salt://,https://,s3://,ftp:/, etc.- saltenv:
base Salt fileserver environment from which to retrieve the file. Ignored if
merge_pathis not asalt://URL.
CLI Example:
salt '*' napalm.config_merge_tree merge_path=salt://path/to/merge.cfg
- source:
- salt.modules.napalm_mod.config_tree(source='running', with_tags=False)#
New in version 2019.2.0.
Transform Cisco IOS style configuration to structured Python dictionary. Depending on the value of the
with_tagsargument, this function may provide different views, valuable in different situations.- source:
running The configuration type to retrieve from the network device. Default:
running. Available options:running,startup,candidate.- with_tags:
False Whether this function should return a detailed view, with tags.
CLI Example:
salt '*' napalm.config_tree
- source:
- salt.modules.napalm_mod.junos_call(fun, *args, **kwargs)#
New in version 2019.2.0.
Execute an arbitrary function from the
junos execution module. To check whatargsandkwargsyou must send to the function, please consult the appropriate documentation.- fun
The name of the function. E.g.,
set_hostname.- args
List of arguments to send to the
junosfunction invoked.- kwargs
Dictionary of key-value arguments to send to the
junofunction invoked.
CLI Example:
salt '*' napalm.junos_fun cli 'show system commit'
- salt.modules.napalm_mod.junos_cli(command, format=None, dev_timeout=None, dest=None, **kwargs)#
New in version 2019.2.0.
Execute a CLI command and return the output in the specified format.
- command
The command to execute on the Junos CLI.
- format:
text Format in which to get the CLI output (either
textorxml).- dev_timeout:
30 The NETCONF RPC timeout (in seconds).
- dest
Destination file where the RPC output is stored. Note that the file will be stored on the Proxy Minion. To push the files to the Master, use
cp.push.
CLI Example:
salt '*' napalm.junos_cli 'show lldp neighbors'
- salt.modules.napalm_mod.junos_commit(**kwargs)#
New in version 2019.2.0.
Commit the changes loaded in the candidate configuration.
- dev_timeout:
30 The NETCONF RPC timeout (in seconds).
- comment
Provide a comment for the commit.
- confirm
Provide time in minutes for commit confirmation. If this option is specified, the commit will be rolled back in the specified amount of time unless the commit is confirmed.
- sync:
False When
True, on dual control plane systems, requests that the candidate configuration on one control plane be copied to the other control plane, checked for correct syntax, and committed on both Routing Engines.- force_sync:
False When
True, on dual control plane systems, force the candidate configuration on one control plane to be copied to the other control plane.- full
When
True, requires all the daemons to check and evaluate the new configuration.- detail
When
True, return commit detail.
CLI Examples:
salt '*' napalm.junos_commit comment='Commitiing via Salt' detail=True salt '*' napalm.junos_commit dev_timeout=60 confirm=10 salt '*' napalm.junos_commit sync=True dev_timeout=90
- dev_timeout:
- salt.modules.napalm_mod.junos_copy_file(src, dst, **kwargs)#
New in version 2019.2.0.
Copies the file on the remote Junos device.
- src
The source file path. This argument accepts the usual Salt URIs (e.g.,
salt://,http://,https://,s3://,ftp://, etc.).- dst
The destination path on the device where to copy the file.
CLI Example:
salt '*' napalm.junos_copy_file https://example.com/junos.cfg /var/tmp/myjunos.cfg
- salt.modules.napalm_mod.junos_facts(**kwargs)#
New in version 2019.2.0.
The complete list of Junos facts collected by
junos-eznc.CLI Example:
salt '*' napalm.junos_facts
- salt.modules.napalm_mod.junos_install_os(path=None, **kwargs)#
New in version 2019.2.0.
Installs the given image on the device.
- path
The image file source. This argument supports the following URIs:
Absolute path on the Minion.
salt://to fetch from the Salt fileserver.http://andhttps://ftp://swift:/s3://
- dev_timeout:
30 The NETCONF RPC timeout (in seconds)
- reboot:
False Whether to reboot the device after the installation is complete.
- no_copy:
False If
Truethe software package will not be copied to the remote device.
CLI Example:
salt '*' napalm.junos_install_os salt://images/junos_16_1.tgz reboot=True
- salt.modules.napalm_mod.junos_rpc(cmd=None, dest=None, format=None, **kwargs)#
New in version 2019.2.0.
Execute an RPC request on the remote Junos device.
- cmd
The RPC request to the executed. To determine the RPC request, you can check the from the command line of the device, by executing the usual command followed by
| display xml rpc, e.g.,show lldp neighbors | display xml rpc.- dest
Destination file where the RPC output is stored. Note that the file will be stored on the Proxy Minion. To push the files to the Master, use
cp.pushExecution function.- format:
xml The format in which the RPC reply is received from the device.
- dev_timeout:
30 The NETCONF RPC timeout.
- filter
Used with the
get-configRPC request to filter out the config tree.- terse:
False Whether to return terse output.
Note
Some RPC requests may not support this argument.
- interface_name
Name of the interface to query.
CLI Example:
salt '*' napalm.junos_rpc get-lldp-neighbors-information salt '*' napalm.junos_rpc get-config <configuration><system><ntp/></system></configuration>
- salt.modules.napalm_mod.netmiko_args(**kwargs)#
New in version 2019.2.0.
Return the key-value arguments used for the authentication arguments for the netmiko module.
When running in a non-native NAPALM driver (e.g.,
panos, f5`,mos- either from https://github.com/napalm-automation-community or defined in user's own environment, one can specify the Netmiko device type (thedevice_typeargument) via thenetmiko_device_type_mapconfiguration option / Pillar key, e.g.,netmiko_device_type_map: f5: f5_ltm dellos10: dell_os10
The configuration above defines the mapping between the NAPALM
osGrain and the Netmikodevice_type, e.g., when the NAPALM Grain isf5, it would use thef5_ltmSSH Netmiko driver to execute commands over SSH on the remote network device.CLI Example:
salt '*' napalm.netmiko_args
- salt.modules.napalm_mod.netmiko_call(method, *args, **kwargs)#
New in version 2019.2.0.
Execute an arbitrary Netmiko method, passing the authentication details from the existing NAPALM connection.
- method
The name of the Netmiko method to execute.
- args
List of arguments to send to the Netmiko method specified in
method.- kwargs
Key-value arguments to send to the execution function specified in
method.
CLI Example:
salt '*' napalm.netmiko_call send_command 'show version'
- salt.modules.napalm_mod.netmiko_commands(*commands, **kwargs)#
New in version 2019.2.0.
Invoke one or more commands to be executed on the remote device, via Netmiko. Returns a list of strings, with the output from each command.
- commands
A list of commands to be executed.
- expect_string
Regular expression pattern to use for determining end of output. If left blank will default to being based on router prompt.
- delay_factor:
1 Multiplying factor used to adjust delays (default:
1).- max_loops:
500 Controls wait time in conjunction with delay_factor. Will default to be based upon self.timeout.
- auto_find_prompt:
True Whether it should try to auto-detect the prompt (default:
True).- strip_prompt:
True Remove the trailing router prompt from the output (default:
True).- strip_command:
True Remove the echo of the command from the output (default:
True).- normalize:
True Ensure the proper enter is sent at end of command (default:
True).- use_textfsm:
False Process command output through TextFSM template (default:
False).
CLI Example:
salt '*' napalm.netmiko_commands 'show version' 'show interfaces'
- salt.modules.napalm_mod.netmiko_config(*config_commands, **kwargs)#
New in version 2019.2.0.
Load a list of configuration commands on the remote device, via Netmiko.
Warning
Please remember that
netmikodoes not have any rollback safeguards and any configuration change will be directly loaded into the running config if the platform doesn't have the concept ofcandidateconfig.On Junos, or other platforms that have this capability, the changes will not be loaded into the running config, and the user must set the
commitargument toTrueto transfer the changes from the candidate into the running config before exiting.- config_commands
A list of configuration commands to be loaded on the remote device.
- config_file
Read the configuration commands from a file. The file can equally be a template that can be rendered using the engine of choice (see
template_engine).This can be specified using the absolute path to the file, or using one of the following URL schemes:
salt://, to fetch the file from the Salt fileserver.http://orhttps://ftp://s3://swift://
- exit_config_mode:
True Determines whether or not to exit config mode after complete.
- delay_factor:
1 Factor to adjust delays.
- max_loops:
150 Controls wait time in conjunction with delay_factor (default:
150).- strip_prompt:
False Determines whether or not to strip the prompt (default:
False).- strip_command:
False Determines whether or not to strip the command (default:
False).- config_mode_command
The command to enter into config mode.
- commit:
False Commit the configuration changes before exiting the config mode. This option is by default disabled, as many platforms don't have this capability natively.
CLI Example:
salt '*' napalm.netmiko_config 'set system ntp peer 1.2.3.4' commit=True salt '*' napalm.netmiko_config https://bit.ly/2sgljCB
- salt.modules.napalm_mod.netmiko_fun(fun, *args, **kwargs)#
New in version 2019.2.0.
Call an arbitrary function from the
Netmikomodule, passing the authentication details from the existing NAPALM connection.- fun
The name of the function from the
Netmikoto invoke.- args
List of arguments to send to the execution function specified in
fun.- kwargs
Key-value arguments to send to the execution function specified in
fun.
CLI Example:
salt '*' napalm.netmiko_fun send_command 'show version'
- salt.modules.napalm_mod.netmiko_multi_call(*methods, **kwargs)#
New in version 2019.2.0.
Execute a list of arbitrary Netmiko methods, passing the authentication details from the existing NAPALM connection.
- methods
List of dictionaries with the following keys:
name: the name of the Netmiko function to invoke.args: list of arguments to send to thenamemethod.kwargs: key-value arguments to send to thenamemethod.
CLI Example:
salt '*' napalm.netmiko_multi_call "{'name': 'send_command', 'args': ['show version']}" "{'name': 'send_command', 'args': ['show interfaces']}"
- salt.modules.napalm_mod.nxos_api_config(commands=None, config_file=None, template_engine='jinja', context=None, defaults=None, saltenv='base', **kwargs)#
New in version 2019.2.0.
Configures the Nexus switch with the specified commands, via the NX-API.
- commands
The list of configuration commands to load on the Nexus switch.
Note
This argument is ignored when
config_fileis specified.- config_file
The source file with the configuration commands to be sent to the device.
The file can also be a template that can be rendered using the template engine of choice. This can be specified using the absolute path to the file, or using one of the following URL schemes:
salt://https://ftp:/s3:/swift://
- template_engine:
jinja The template engine to use when rendering the source file. Default:
jinja. To simply fetch the file without attempting to render, set this argument toNone.- context:
None Variables to add to the template context.
- defaults:
None Default values of the
contextdict.- saltenv:
base Salt fileserver environment from which to retrieve the file. Ignored if
config_fileis not asalt://URL.
CLI Example:
salt '*' napalm.nxos_api_config 'spanning-tree mode mstp' salt '*' napalm.nxos_api_config config_file=https://bit.ly/2LGLcDy context="{'servers': ['1.2.3.4']}"
- salt.modules.napalm_mod.nxos_api_rpc(commands, method='cli', **kwargs)#
New in version 2019.2.0.
Execute an arbitrary RPC request via the Nexus API.
- commands
The RPC commands to be executed.
- method:
cli The type of the response, i.e., raw text (
cli_ascii) or structured document (cli). Defaults tocli(structured data).
CLI Example:
salt '*' napalm.nxos_api_rpc 'show version'
- salt.modules.napalm_mod.nxos_api_show(commands, raw_text=True, **kwargs)#
New in version 2019.2.0.
Execute one or more show (non-configuration) commands.
- commands
The commands to be executed.
- raw_text:
True Whether to return raw text or structured data.
CLI Example:
salt '*' napalm.nxos_api_show 'show version' salt '*' napalm.nxos_api_show 'show bgp sessions' 'show processes' raw_text=False
- salt.modules.napalm_mod.pyeapi_call(method, *args, **kwargs)#
New in version 2019.2.0.
Invoke an arbitrary method from the
pyeapilibrary. This function forwards the existing connection details to thepyeapi.run_commandsexecution function.- method
The name of the
pyeapimethod to invoke.- kwargs
Key-value arguments to send to the
pyeapimethod.
CLI Example:
salt '*' napalm.pyeapi_call run_commands 'show version' encoding=text salt '*' napalm.pyeapi_call get_config as_string=True
- salt.modules.napalm_mod.pyeapi_config(commands=None, config_file=None, template_engine='jinja', context=None, defaults=None, saltenv='base', **kwargs)#
New in version 2019.2.0.
Configures the Arista switch with the specified commands, via the
pyeapilibrary. This function forwards the existing connection details to thepyeapi.run_commandsexecution function.- commands
The list of configuration commands to load on the Arista switch.
Note
This argument is ignored when
config_fileis specified.- config_file
The source file with the configuration commands to be sent to the device.
The file can also be a template that can be rendered using the template engine of choice. This can be specified using the absolute path to the file, or using one of the following URL schemes:
salt://https://ftp:/s3:/swift://
- template_engine:
jinja The template engine to use when rendering the source file. Default:
jinja. To simply fetch the file without attempting to render, set this argument toNone.- context:
None Variables to add to the template context.
- defaults:
None Default values of the
contextdict.- saltenv:
base Salt fileserver environment from which to retrieve the file. Ignored if
config_fileis not asalt://URL.
CLI Example:
salt '*' napalm.pyeapi_config 'ntp server 1.2.3.4'
- salt.modules.napalm_mod.pyeapi_nxos_api_args(**prev_kwargs)#
New in version 2019.2.0.
Return the key-value arguments used for the authentication arguments for the
pyeapi execution module.CLI Example:
salt '*' napalm.pyeapi_nxos_api_args
- salt.modules.napalm_mod.pyeapi_run_commands(*commands, **kwargs)#
Execute a list of commands on the Arista switch, via the
pyeapilibrary. This function forwards the existing connection details to thepyeapi.run_commandsexecution function.- commands
A list of commands to execute.
- encoding:
json The requested encoding of the command output. Valid values for encoding are
json(default) ortext.
CLI Example:
salt '*' napalm.pyeapi_run_commands 'show version' encoding=text salt '*' napalm.pyeapi_run_commands 'show ip bgp neighbors'
- salt.modules.napalm_mod.reconnect(force=False, **kwargs)#
Reconnect the NAPALM proxy when the connection is dropped by the network device. The connection can be forced to be restarted using the
forceargument.Note
This function can be used only when running proxy minions.
CLI Example:
salt '*' napalm.reconnect salt '*' napalm.reconnect force=True
- salt.modules.napalm_mod.rpc(command, **kwargs)#
New in version 2019.2.0.
This is a wrapper to execute RPC requests on various network operating systems supported by NAPALM, invoking the following functions for the NAPALM native drivers:
napalm.junos_rpcforjunosnapalm.pyeapi_run_commandsforeosnapalm.nxos_api_rpcfornxosnapalm.netmiko_commandsforios,iosxr, andnxos_ssh
- command
The RPC command to execute. This depends on the nature of the operating system.
- kwargs
Key-value arguments to be sent to the underlying Execution function.
The function capabilities are extensible in the user environment via the
napalm_rpc_mapconfiguration option / Pillar, e.g.,napalm_rpc_map: f5: napalm.netmiko_commands panos: panos.call
The mapping above reads: when the NAPALM
osGrain isf5, then callnapalm.netmiko_commandsfor RPC requests.By default, if the user does not specify any map, non-native NAPALM drivers will invoke the
napalm.netmiko_commandsExecution function.CLI Example:
salt '*' napalm.rpc 'show version' salt '*' napalm.rpc get-interfaces
- salt.modules.napalm_mod.scp_get(remote_path, local_path='', recursive=False, preserve_times=False, **kwargs)#
New in version 2019.2.0.
Transfer files and directories from remote network device to the localhost of the Minion.
Note
This function is only available only when the underlying library scp is installed. See
scp modulefor more details.- remote_path
Path to retrieve from remote host. Since this is evaluated by scp on the remote host, shell wildcards and environment variables may be used.
- recursive:
False Transfer files and directories recursively.
- preserve_times:
False Preserve
mtimeandatimeof transferred files and directories.- passphrase
Used for decrypting private keys.
- pkey
An optional private key to use for authentication.
- key_filename
The filename, or list of filenames, of optional private key(s) and/or certificates to try for authentication.
- timeout
An optional timeout (in seconds) for the TCP connect.
- socket_timeout:
10 The channel socket timeout in seconds.
- buff_size:
16384 The size of the SCP send buffer.
- allow_agent:
True Set to
Falseto disable connecting to the SSH agent.- look_for_keys:
True Set to
Falseto disable searching for discoverable private key files in~/.ssh/- banner_timeout
An optional timeout (in seconds) to wait for the SSH banner to be presented.
- auth_timeout
An optional timeout (in seconds) to wait for an authentication response.
- auto_add_policy:
False Automatically add the host to the
known_hosts.
CLI Example:
salt '*' napalm.scp_get /var/tmp/file /tmp/file auto_add_policy=True
- salt.modules.napalm_mod.scp_put(files, remote_path=None, recursive=False, preserve_times=False, saltenv='base', **kwargs)#
New in version 2019.2.0.
Transfer files and directories to remote network device.
Note
This function is only available only when the underlying library scp is installed. See
scp modulefor more details.- files
A single path or a list of paths to be transferred.
- remote_path
The path on the remote device where to store the files.
- recursive:
True Transfer files and directories recursively.
- preserve_times:
False Preserve
mtimeandatimeof transferred files and directories.- saltenv:
base The name of the Salt environment. Ignored when
filesis not asalt://URL.- hostname
The hostname of the remote device.
- port:
22 The port of the remote device.
- username
The username required for SSH authentication on the device.
- password
Used for password authentication. It is also used for private key decryption if
passphraseis not given.- passphrase
Used for decrypting private keys.
- pkey
An optional private key to use for authentication.
- key_filename
The filename, or list of filenames, of optional private key(s) and/or certificates to try for authentication.
- timeout
An optional timeout (in seconds) for the TCP connect.
- socket_timeout:
10 The channel socket timeout in seconds.
- buff_size:
16384 The size of the SCP send buffer.
- allow_agent:
True Set to
Falseto disable connecting to the SSH agent.- look_for_keys:
True Set to
Falseto disable searching for discoverable private key files in~/.ssh/- banner_timeout
An optional timeout (in seconds) to wait for the SSH banner to be presented.
- auth_timeout
An optional timeout (in seconds) to wait for an authentication response.
- auto_add_policy:
False Automatically add the host to the
known_hosts.
CLI Example:
salt '*' napalm.scp_put /path/to/file /var/tmp/file auto_add_policy=True