- 23 Oct 2024
-
DarkLight
-
PDF
OpenConfig
- Updated on 23 Oct 2024
-
DarkLight
-
PDF
Beginning in the 2023.2 release, Automation Gateway will work with OpenConfig
(previously referred to as gRPC) for connecting devices. OpenConfig is a cross-platform, open source framework for implementing RPC (Remote Procedure Call) APIs in any environment. As a framework, OpenConfig offers pluggable support for load balancing, tracing, health checking and authentication with a lower processing complexity.
For related reading see → gRPC documentation.
Install OpenConfig
To get started, install pip
in the virtual environment. Restart Automation Gateway.
pip install grpcio==1.53.0
pip install pygnmi
Verify OpenConfig is Enabled
Go to Configuration in Automation Gateway using the left side navigation and click the OpenConfig (e.g. gRPC
) to verify the setting has been enabled. Select the checkbox and click the Save icon.
Figure 1: Enable gRPC
Configure OpenConfig
Use the side-navigation menus in Automation Gateway to open the subheading options. In this example, gPRC
contains nested subheadings (menus) for:
- Inventory
- gNMI
- gNOI
Inventory
The Inventory list contains devices created to run and use OpenConfig. The device will appear in the left side navigation bar. Clicking on the device will display parameters (i.e., host, port, username, etc) and values specific to the device. Click the pencil icon to edit the parameters.
Figure 2: Inventory
gNMI
Use gNMI to configure get
and set
for OpenConfig.
The gnmi_get
mechanism is used to pull-in or acquire data.
Figure 3: gNMI_get
The gnmi_set
mechanism is used to execute a command.
Figure 4: gNMI_set
gNOI
Use gNOI for operational commands on a device such as ping, trace route, and reboot.
Figure 5: gNOI
Creating Devices in OpenConfig
To create an OpenConfig device, click the + sign in the top toolbar above the left side navigation. A Create dialog opens. Use the dropdown to make your selection (e.g., GRPC Device
). Input a device name and configure the variables needed to create the device. Once all the device variables are set, click the Create button.
Figure 6: Configure Device
OpenConfig Device Variables
Variable datatypes can be found in the OpenAPI v3 specification found in the help section UI of Automation Gateway.
Variable | Description | Required |
---|---|---|
host | The hostname or IP address of the OpenConfig device. | Yes |
port | The OpenConfig TCP port to use. | Yes |
username | OpenConfig username | Yes |
password | OpenConfig password | Yes |
insecure | Used to support (or not support) a non-TLS connection to the device. | Yes |
debug | Debug OpenConfig operations (advanced). | Yes |
path_cert | Path to the TLS root certificate store. | No |
path_key | Path to the OpenConfig client certificate key. | No |
path_root | Path to the TLS root certificate store. | No |
openconfig_override | OpenConfig override parameters (advanced). | No |
skip_verify | Skip verification of the TLS server certificate that is presented. | No |
openconfig_timeout | Timeout for OpenConfig connection and channel operations. | No |
openconfig_options | Additional OpenConfig channel options (advanced). | No |
show_diff | Show device gNMI differences (advanced, untested). | No |
token | OpenConfig access token (advanced). | No |
Sending a JSON POST to Create Devices
A JSON POST can be sent to /api/v2.0/inventories/grpc/default/devices
to create a device.
Example post request:
{
"name": "iosxr-cloud",
"variables": {
"host": "sandbox-iosxr-1.cisco.com",
"password": "C1sco12345",
"username": "admin",
"insecure": true,
"port": 57777
}
}
Using TLS with OpenConfig Devices
Before connecting securely to OpenConfig devices, an appropriately configured system PKI infrastructure is required (trusted root certificates and client certificates). Please consult your system administrator to ensure these requirements are in place before proceeding with a secure OpenConfig device setup. To use secure TLS certificates when using OpenConfig, configure the device and set insecure to false
.
A simple device example (JSON POST) that will skip server verification is shown below.
Example: TLS Secured OpenConfig Device without Server Certificate Validation
{
"name": "iosxr-cloud",
"variables": {
"host": "sandbox-iosxr-1.cisco.com",
"password": "C1sco12345",
"username": "admin",
"insecure": false,
"skip_verify": true,
"port": 57777
}
}