Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Managing YANG Packages, Modules, and Scripts on Devices Running Junos OS

 

You can load custom YANG modules on devices running Junos OS to add RPCs and data models that are not natively supported by Junos OS but can be supported by translation. When you load nonnative YANG data models onto the device, you must also load any translation scripts, action scripts, and deviation modules required by those data models.

Note

Starting in Junos OS Release 17.3R1, when you load custom YANG data models onto the device, you do not need to explicitly load any required Junos OS extension modules. In earlier releases, you must load the Junos OS extension modules for any packages that use the modules.

Devices running Junos OS use packages to identify a collection of related YANG modules, translation scripts, and action scripts. Each package has a unique identifier. When you add YANG modules and scripts to the device, you must associate them with a new or existing package. This topic discusses how to create, update, and delete YANG packages and add or update their associated modules and scripts.

Note

To prevent CLI-related or configuration database errors, we recommend that you do not perform any CLI operations or change the configuration while a device is in the process of adding, updating, or deleting a YANG package and modifying the schema.

Creating a YANG Package and Adding Modules and Scripts

To validate YANG modules and scripts and add them to a new package:

  1. Download the YANG modules and any necessary scripts to any directory on the device.
  2. Ensure that any unsigned Python action scripts are owned by either root or a user in the Junos OS super-user login class and that only the file owner has write permission for the file.Note

    Users can only execute unsigned Python scripts on devices running Junos OS when the script's file permissions include read permission for the first class that the user falls within, in the order of user, group, or others.

  3. (Optional) Validate the syntax of the modules and scripts.

  4. Create a YANG package with a unique identifier, and specify the file paths for the modules and scripts that are part of that package, as well as for any deviation modules that identify deviations for the modules in that package.

    Note

    You can specify the absolute or relative path to a single file, or you can add multiple files by specifying a space-delimited list of file paths enclosed in brackets.

    Note

    To install OpenConfig modules that are packaged as a compressed tar file, use the request system software add command. OpenConfig modules and scripts that are installed by issuing the request system software add command are always associated with the package identifier openconfig.

    Note

    Starting in Junos OS Release 18.3R1, adding, deleting, or updating YANG packages in configuration mode with the run command is not supported.

  5. When the system prompts you to restart the Junos OS CLI, press Enter to accept the default value of yes.
  6. Verify that the package was created and contains the correct modules and scripts.
    user@host> show system yang package package-name
  7. If the package includes translation scripts or action scripts that are written in Python, configure the language python statement.
  8. On multichassis systems, repeat steps 1 through 7 on each node in the system.

When you create a new package, the device stores copies of the module and script files in a new location. The device also stores copies of the action script and translation script files under the /var/db/scripts/action and /var/db/scripts/translation directories, respectively. After the modules and scripts are validated and added to the device, Junos OS rebuilds its schema to include the new data models and then validates the active configuration against this schema. Newly added RPCs and configuration hierarchies are immediately available for use.

Note

Devices that use the ephemeral configuration database will delete all ephemeral configuration data in the process of rebuilding the schema.

Note

Junos OS does not support using configure private mode to configure statements corresponding to third-party YANG data models, for example, OpenConfig or custom YANG data models.

Updating a YANG Package with New or Modified Modules and Scripts

You create a new YANG package by executing the request system yang add command. To update an existing package to either add new modules and scripts to the package or update existing modules and scripts in the package, you must use the request system yang update command.

To update a YANG package with new or modified modules and scripts:

  1. Download the modules and scripts to any directory on the device.
  2. Ensure that any unsigned Python action scripts are owned by either root or a user in the Junos OS super-user login class and that only the file owner has write permission for the file.Note

    Users can only execute unsigned Python scripts on devices running Junos OS when the script's file permissions include read permission for the first class that the user falls within, in the order of user, group, or others.

  3. (Optional) Validate the syntax of the modules and scripts.

  4. Update the YANG package by issuing the request system yang update command, and specify the file paths for the new and modified modules and scripts.

    Note

    You can specify the absolute or relative path to a single file, or you can update multiple files by specifying a space-delimited list of file paths enclosed in brackets.

    Note

    Starting in Junos OS Release 18.3R1, adding, deleting, or updating YANG packages in configuration mode with the run command is not supported.

  5. When the system prompts you to restart the Junos OS CLI, press Enter to accept the default value of yes.
  6. If the package includes translation scripts or action scripts that are written in Python, configure the language python statement, if it is not already configured.
  7. On multichassis systems, repeat steps 1 through 6 on each node in the system.

When you update a package, the device stores copies of the new and modified module and script files. Junos OS then rebuilds its schema to include any changes to the data models associated with that package and validates the active configuration against this schema.

Note

Devices that use the ephemeral configuration database will delete all ephemeral configuration data in the process of rebuilding the schema.

Deleting a YANG Package

Caution

Before you delete a YANG package from a device running Junos OS, ensure that the active configuration does not contain configuration data that has dependencies on the data models added by that package.

To delete a YANG package and all modules and scripts associated with that package from a device running Junos OS:

  1. Review the active configuration to determine if there are any dependencies on the YANG modules that will be deleted.
  2. If the configuration contains dependencies on the modules, update the configuration to remove the dependencies.
  3. Delete the package and associated modules and scripts by issuing the request system yang delete command with the appropriate package identifier.

    Note

    You must use the request system software delete command to remove OpenConfig packages that were installed from a compressed tar file by issuing the request system software add command.

    Note

    Starting in Junos OS Release 18.3R1, adding, deleting, or updating YANG packages in configuration mode with the run command is not supported.

  4. If the system prompts you to restart the Junos OS CLI, press Enter to accept the default value of yes.

When you delete a package, Junos OS rebuilds its schema to remove the data models associated with that package and then validates the active configuration against this schema. The device removes the copies of the module and script files that were generated when the package was created. The device also removes the copies of the package’s action script and translation script files that are stored under the /var/db/scripts/action and /var/db/scripts/translation directories. If you downloaded the original module and script files to a different location, the original files remain unchanged.

Note

Devices that use the ephemeral configuration database will delete all ephemeral configuration data in the process of rebuilding the schema.

Release History Table
Release
Description
Starting in Junos OS Release 18.3R1, adding, deleting, or updating YANG packages in configuration mode with the run command is not supported.
Starting in Junos OS Release 17.3R1, when you load custom YANG data models onto the device, you do not need to explicitly load any required Junos OS extension modules.