Mass Config Push in Unimus is used to send a set of commands to to a group (or all) of devices in your network. This allows you to roll out mass config changes across your network, or query command outputs from a large set of devices. Before you can push to devices, each device must be in a "discovered" state (normally done one device addition into Unimus). Config push will not be performed to undiscovered devices, and they will be grouped in the "Un-discovered devices" group.
To perform a push, you first need to create a "Push Preset" from the Mass Config Push home page. After a preset is created, you can click "Run now" to push the provided commands to the selected devices.
The commands you specify in the Push Preset are sent to the devices, one line at a time (more info on how Unimus interacts with the device in How commands are sent to devices). The outputs of the executed commands are evaluated on all devices, and a new "Output Group" is created for each unique output during the push. If 2 devices reply with the same output, both devices are assigned to a single output group belonging to that unique output.
As an example, if you push a command to 200 devices, but across all devices there will only be 2 unique outputs to this command, Unimus will create only 2 output groups, and assign each device to the right output group. Output grouping means you don't need to inspect outputs of 200 devices after a config push - saving you time, and making navigation in large push outputs easy.
State of device before Push - require "enable" or "configure" CLI mode
You have the option of letting Unimus ensure that each device in the Push Preset is in a desired CLI mode before your specified commands are pushed. You can check "Require enable mode" and/or "Require configure mode" in the Push Preset, and Unimus will make sure the device is in the specified mode before executing your commands. Modes available on devices are discovered during Discovery, using mode credentials configured in the "Credentials" screen. You can check which modes Unimus was able to discover on devices using the "Devices > Info" window.
If a device can not be switched into the specified CLI mode before, Config Push will NOT push the provided commands to the device, and any devices failing the mode switch will be grouped in appropriate "mode not supported" output groups.
The "enable" and "configure" mode names are only symbolic - each device type has their own modes. In general, the "enable" mode means the 2nd highest possible CLI mode on the device, and the "configure" mode the 3rd highest possible CLI mode on the device (if the device type supports this). Taking Cisco as an example, the "user exec" mode would be 1st possible login mode, "privilege exec" would be the 2nd (enable) mode, and "configure mode" would be the 3rd (configure). Please see our Device mode table article more more info on how the modes in the push preset map to various vendors / device types.
Command sending modifiers and control sequences
How commands are sent to devices
Config Push in Unimus has a few stages:
- connect to device, login to the CLI
- switch the device to desired CLI mode (if require "enable" or "configure" mode is set)
- send each command line from the "Commands" to the device (more info below)
- collect all output from device
- disconnect the CLI session
- create a new output group for this device OR assign the device into an existing output group
The main (and most important) portion of Config Push is sending the actual commands provided in the "Commands" set to the devices.
Unimus here works as following:
- from the command set, send the next command line to the device, followed by Enter
- collect all output, up until a known (recognizable) output occurs
- IF device asks if it should continue with output (more info below), answer "Y", GO TO step 2
- IF device outputs a question (such as a "[y/n]" question - more info below), stop, GO TO step 1.
- IF device asks for a password, or another "secret", stop, GO TO step 1
- IF device pages through output ("-- more --"), send pagination key (space for most device types) to proceed to next page, GO TO step 2
- IF device asks to confirm end of output, ("press Q to finish"), send the appropriate key to finish output, GO TO step 2
- IF a prompt is received, stop, GO TO step 1
As per the description above, pagination ("-- more --"), and output termination which some devices require ("Output finished, press Q to continue") will be handled completely automatically by Unimus.
For step 3, Unimus will automatically answer "Y" to questions like "Show all items?" or "Do you want to show sensitive items?" or "Confirm command...", etc.
For step 4, Unimus recognizes any generic questions asked by devices that end in the "[y/n]" or "(yes/no)" prompts, but also things like "Press enter to config change", etc.
For step 5, usual "Password:" or "Password for..." and similar password prompt are recognized
To make this simple - you can provide the same sequence of commands and key-strokes to Unimus as you would when interacting with the device CLI, and Unimus will properly interact with the device as expected.
Command parsing examples
Device output (keys sent by Unimus in green):
For the "y" confirmation, it will be send as "y" and then Enter. You can only send the "y" without enter like this:
Device output (keys sent by Unimus in green):