Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Change the Configuration Using SLAX and XSLT Scripts

SLAX and XSLT op and event scripts can use the jcs:load-configuration template to make structured changes to the Junos OS configuration. Experienced users, who are familiar with Junos OS, can write scripts that prompt for the relevant configuration information and modify the configuration accordingly. This enables users who have less experience with Junos OS to safely modify the configuration using the script.

This topic discusses how to use the jcs:load-configuration template to modify the configuration.

jcs:load-configuration Template Overview

The jcs:load-configuration template is included in the junos.xsl import file. The template can:

  • Load Junos XML configuration data into the candidate configuration using a load merge, load replace, or load override operation and commit the changes

  • Roll back the active configuration to a previously committed configuration

  • Load and commit the rescue configuration

When called, the jcs:load-configuration template performs the following actions on the target device:

  1. Locks the configuration database

  2. Loads the configuration changes

  3. Commits the configuration

  4. Unlocks the configuration database

The jcs:load-configuration template makes changes to the configuration in configure exclusive mode. In this mode, Junos OS locks the candidate global configuration for as long as the script accesses the shared database and makes changes to the configuration. The template call might fail if the configuration database is already locked or if there are existing, uncommitted changes in the candidate configuration when the template is called. If the template successfully loads the configuration data, but the commit fails, Junos OS discards the uncommitted changes when the database is unlocked.

The SLAX template syntax is:

The XSLT template syntax is:

You provide arguments to the jcs:load-configuration template to specify:

  • the connection handle to the device on which the changes will be made

  • the changes to make to the configuration

  • the load action that defines how to integrate the changes into the existing configuration

  • optional commit options

You must establish a connection with the target device before calling the jcs:load-configuration template. To connect to a device, call the jcs:open() function with the necessary arguments. Then set the jcs:load-configuration connection parameter to the handle returned by the jcs:open() function.

The following sample code connects to the local device and modifies the configuration:

When you call the jcs:load-configuration template, you can include the configuration parameter to load new configuration data on a device, you can specify the rollback parameter to revert the configuration to a previously committed configuration, or you can specify the rescue parameter to load and commit the rescue configuration.

Loading and Committing Configuration Data

SLAX and XSLT scripts can call the jcs:load-configuration template to modify the configuration. The configuration parameter defines the Junos XML configuration data to load, and the action parameter specifies how to load the data. The commit-options parameter defines the options to use during the commit operation.

The following sample op script calls the jcs:load-configuration template to modify the configuration to disable an interface. All of the values required for the jcs:load-configuration template are defined as variables, which are then passed into the template as arguments.

The := operator copies the results of the jcs:load-configuration template call to a temporary variable and runs the node-set function on that variable. The := operator ensures that the disable-results variable is a node-set rather than a result tree fragment so that the script can access the contents.

SLAX syntax:

For detailed information about this script, see Example: Changing the Configuration Using SLAX and XSLT Op Scripts.

The equivalent XSLT code for the call to the jcs:load-configuration template is:

Loading and Committing the Rescue Configuration

A rescue configuration allows you to define a known working configuration or a configuration with a known state that you can restore at any time. SLAX and XSLT scripts can call the jcs:load-configuration template with the rescue parameter to load the rescue configuration, if one exists.

The following SLAX op script loads and commits the existing rescue configuration.

The equivalent XSLT script is:

Rolling Back the Configuration

SLAX and XSLT scripts can call the jcs:load-configuration template with the rollback parameter to revert the configuration to a previously committed configuration. The following SLAX op script prompts for the rollback number, and then loads the requested rollback configuration and commits it.