Salt for Junos OS Overview
Salt, or the SaltStack Platform, is a Python-based, open-source remote execution and configuration management tool. You can use Salt to define and enforce the state of a system or execute ad hoc commands on a device. Salt is highly scalable and can manage thousands of devices, including devices running Junos OS.
The Salt master is the main control server that manages one or more nodes, or Salt minions. The Salt master can manage devices running Junos OS through a Salt proxy minion. A proxy minion enables you to manage a device that does not directly run a Salt minion but can be managed through another protocol, for example, the Network Configuration Protocol (NETCONF).
The Salt installation includes the following components and modules, which enable you to use Salt to manage devices running Junos OS:
Junos proxy—Translates Salt operations into Junos OS-specific instructions and enables the Salt system to connect to and manage devices running Junos OS.
Junos execution module—Defines execution functions that enable you to perform ad hoc tasks on devices running Junos OS from the Salt master command line.
Junos state module—Defines state functions that enable you to declare and enforce the desired state of a device running Junos OS.
Junos syslog engine—Monitors system log messages sent from devices running Junos OS, extracts the event information, and publishes it in Salt format on the Salt event bus.
The Junos proxy connects to the Salt master using the ZeroMQ event bus and uses the Juniper Junos PyEZ library to establish a NETCONF session over SSH with the device running Junos OS. Junos PyEZ is a microframework for Python that enables you to manage and automate devices running Junos OS. Figure 1 illustrates a typical Salt setup with devices running Junos OS.