Module to interact with Junos devices.
maturity: | new |
---|---|
dependencies: | junos-eznc, jxmlease |
Note
Those who wish to use junos-eznc (PyEZ) version >= 2.1.0, must use the latest salt code from github until the next release.
Refer to junos
for information on connecting to junos proxy.
Executes the CLI commands and returns the output in specified format. (default is text) The output can also be stored in a file.
text
or xml
)cp.push
.CLI Examples:
salt 'device_name' junos.cli 'show system commit' salt 'device_name' junos.cli 'show version' dev_timeout=40 salt 'device_name' junos.cli 'show system alarms' format=xml dest=/home/user/cli_output.txt
To commit the changes loaded in the candidate configuration.
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.True
, on dual control plane systems, force the candidate configuration on one control plane to be copied to the other control plane.True
, requires all the daemons to check and evaluate the new configuration.True
, return commit detailCLI Examples:
salt 'device_name' junos.commit comment='Commiting via saltstack' detail=True salt 'device_name' junos.commit dev_timeout=60 confirm=10 salt 'device_name' junos.commit sync=True dev_timeout=90
Perform a commit check on the configuration
CLI Example:
salt 'device_name' junos.commit_check
Returns the difference between the candidate and the current configuration
CLI Example:
salt 'device_name' junos.diff 3
Displays the facts gathered during the connection. These facts are also stored in Salt grains.
CLI Example:
salt 'device_name' junos.facts
Reload the facts dictionary from the device. Usually only needed if, the device configuration is changed by some other actor. This function will also refresh the facts stored in the salt grains.
CLI Example:
salt 'device_name' junos.facts_refresh
Copies the file from the local device to the junos device
CLI Example:
salt 'device_name' junos.file_copy /home/m2/info.txt info_copy.txt
Installs the given configuration file into the candidate configuration. Commits the changes if the commit checks or throws an error.
.conf
extension, the content is treated as text format. If the file has a .xml
extension, the content is treated as XML format. If the file has a .set
extension, the content is treated as Junos OS set
commands.private
, dynamic
, batch
, exclusive
.True
if you want this file is to completely replace the configuration file.replace:
statements. If True
, only those statements under the replace
tag will be changed.cp.push
.Variables to be passed into the template processing engine in addition to those present in pillar, the minion configuration, grains, etc. You may reference these variables in your template like so:
{{ template_vars["var_name"] }}
CLI Examples:
salt 'device_name' junos.install_config 'salt://production/network/routers/config.set' salt 'device_name' junos.install_config 'salt://templates/replace_config.conf' replace=True comment='Committed via SaltStack' salt 'device_name' junos.install_config 'salt://my_new_configuration.conf' dev_timeout=300 diffs_file='/salt/confs/old_config.conf' overwrite=True salt 'device_name' junos.install_config 'salt://syslog_template.conf' template_vars='{"syslog_host": "10.180.222.7"}'
Installs the given image on the device. After the installation is complete the device is rebooted, if reboot=True is given as a keyworded argument.
True
the software package will not be SCP’d to the deviceCLI Examples:
salt 'device_name' junos.install_os 'salt://images/junos_image.tgz' reboot=True salt 'device_name' junos.install_os 'salt://junos_16_1.tgz' dev_timeout=300
Loads the configuration from the file provided onto the device.
.conf
extension, the content is treated as text format. If the file has a .xml
extension, the content is treated as XML format. If the file has a .set
extension, the content is treated as Junos OS set
commands.True
if you want this file is to completely replace the configuration file.replace:
statements. If True
, only those statements under the replace
tag will be changed.Variables to be passed into the template processing engine in addition to those present in pillar, the minion configuration, grains, etc. You may reference these variables in your template like so:
{{ template_vars["var_name"] }}
CLI Examples:
salt 'device_name' junos.load 'salt://production/network/routers/config.set' salt 'device_name' junos.load 'salt://templates/replace_config.conf' replace=True salt 'device_name' junos.load 'salt://my_new_configuration.conf' overwrite=True salt 'device_name' junos.load 'salt://syslog_template.conf' template_vars='{"syslog_host": "10.180.222.7"}'
Attempts an exclusive lock on the candidate configuration. This is a non-blocking call.
Note
When locking, it is important to remember to call junos.unlock
once finished. If locking during orchestration, remember to include a step in the orchestration job to unlock.
CLI Example:
salt 'device_name' junos.lock
Send a ping RPC to a device
True
, executes ping at 100pps instead of 1ppsCLI Examples:
salt 'device_name' junos.ping '8.8.8.8' count=5 salt 'device_name' junos.ping '8.8.8.8' ttl=1 rapid=True
Roll back the last committed configuration changes and commit
cp.push
.CLI Example:
salt 'device_name' junos.rollback 10
This function executes the RPC provided as arguments on the junos device. The returned data can be stored in a file.
cp.push
.get-config
RPC to get specific configurationCLI Example:
salt 'device' junos.rpc get_config /var/log/config.txt format=text filter='<configuration><system/></configuration>' salt 'device' junos.rpc get-interface-information /home/user/interface.xml interface_name='lo0' terse=True salt 'device' junos.rpc get-chassis-inventory
Set the device's hostname
CLI Example:
salt 'device_name' junos.set_hostname salt-device
Shut down (power off) or reboot a device running Junos OS. This includes all Routing Engines in a Virtual Chassis or a dual Routing Engine system.
Note
One of
shutdown
orreboot
must be set toTrue
or no action will be taken.
True
if you want to shutdown the machine. This is a safety mechanism so that the user does not accidentally shutdown the junos device.True
, reboot instead of shutting downCLI Examples:
salt 'device_name' junos.shutdown reboot=True salt 'device_name' junos.shutdown shutdown=True in_min=10 salt 'device_name' junos.shutdown shutdown=True
Unlocks the candidate configuration.
CLI Example:
salt 'device_name' junos.unlock
Resets the device to default factory settings
CLI Example:
salt 'device_name' junos.zeroize
© 2019 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.junos.html