Introducing opConfig’s Virtual Operator

By Daniel Carter


opConfig’s new Virtual Operator can be used to help create jobs comprised of commands sets that can be run on one/many nodes, reporting to see job results and troubleshooting to diagnoses nodes which raise conditions through opConfig’s plug-in system. Quick actions are templates that the virtual operator uses that saves you from having to constantly create commonly run jobs. It also gives operators easy access to run commands on remote systems without giving them full access to the machines.

New Virtual Operator Job

To create a new virtual operator job go to Virtual Operator menu option and click New Virtual Operator Job. You will need to select which nodes you are wanting to run commands on, these are auto-completed from the list of currently activated nodes in opConfig. Next, you can select which command sets should be run on the nodes, this is auto-completed from all command sets which opConfig has loaded. You can also use tags to select which command sets should be run. You can schedule this job to be run now or at a later time, by selecting later this will bring a time-picker to schedule when this job shall be run. A name is auto-generated from data you have already inputted but this can be amended to anything you desire. The details section is a free text field for keeping notes about this job. By clicking schedule this will add the Job to opConfig’s queue and take you to the report schedule.

Virtual Operator Report

A Virtual Operator Report is an aggregation of all data collected from your virtual operator job. On the left panel, you have meta-data about the job, how it was created, by whom and when it’s going to be run or when it was run. The commands panel is a paginated table of the successful commands which were run for the current job. If the command set is using a plug-in to show derived data or report conditions these results are shown inline by clicking the expand icon in the derived column. If the condition has a tag this can be used to help filter down command sets for creating linked virtual operator jobs off these conditions. All operations for the current job are shown to help diagnose connection or command issues that may have occurred.

Virtual Operator Troubleshooting

If you have clicked troubleshoot button from a report condition (see screenshot above for the green button), you are taken to the new virtual operator job screen, but there are a couple of key differences. The node has already been filled out and the command sets have been filtered down using a tag, in this example, we have three command sets with the tag disk. This can help to create workflows where conditions are tagged to limit what the operator can select for the next steps in the troubleshooting process. When this job is created the parent’s job ID is also recorded and the parent’s job name is shown in the newly created report.

Virtual Operator Results & Schedules

There are two final pages that are new, one that shows all scheduled virtual operator jobs and one that shows completed virtual operator jobs. Scheduled shows user-created running jobs and ones which are scheduled in the future. Results show all the completed jobs which were user created and CLI run.

Quick Actions

Quick actions are templates for new virtual operator jobs, we have shipped four sample jobs but you can create your own. Clicking the quick action button will take you to a new virtual operator screen and fill out the specified fields. Create a new json file under

   "name": "IOS Hourly Collection",
   "description": "Hourly baseline collection for Cisco IOS.",
   "command_sets": ["IOS_DAILY"],
   "buttonLabel": "Collect Now",
   "buttonClass": "btn-primary"


Key Datatype About
name string Name which is shown at the top of the quick action element
description string Text shown under the quick action name, useful to describe what the action does
command_sets array of strings Command set keys which you wish to be run
nodes array of strings Names of nodes which you wish the command sets to be run against
buttonLabel string Text of the run button
buttonClass string Css class applied to the button to colour it. btn-default, btn-primary (default), btn-success, bnt-warn, btn-danger

This is the final result of a dashboard that your organization could use today.