Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To perform a push, you first need to create a "Push Preset" from the Mass Config Push home page. For the "Commands", you can provide the same sequence of commands and key-strokes to Unimus as you would when interacting with the device CLI manually.

After a preset is created, you can click  "Run now" to push the provided commands to the selected devices.

...

Normally, Unimus waits for some know output (for example a prompt) after each sent command line (see How commands are sent to devices for more info).
There are 2 modifiers that can influence this behavior, with "$[wait]" being the default behavior.

Code Block
languagetext
$[wait]
$[no-wait]

...

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:

  1. from the command set, send the next command line to the device, followed by Enter
  2. collect all output, up until a known (recognizable) output occurs (unless "$[no-wait]" specified)
  3. IF "$[no-wait]" specified, GO TO step 1
  4. IF device asks if it should continue with output (more info below), Unimus answers "Y", GO TO step 2
  5. IF device outputs a question (such as a "[y/n]" question - more info below), stop, GO TO step 1.
  6. IF device asks for a password, or another "secret", stop, GO TO step 1
  7. IF device pages through output ("-- more --"), Unimus sends pagination key (space for most device types) to proceed to next page, GO TO step 2
  8. IF device asks to confirm end of output, ("press Q to finish"), Unimus sends the appropriate key to finish output, GO TO step 2
  9. 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 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. To understand more in depth how Unimus interacts with a device, here is a (still very simplified) chart:

Image Added

Note 1:
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, Note 2:
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 confirm change", etc.
For step 5, usual Password prompts like "Password: " or "Password for..." and similar password prompt are also properly 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 expectedand will advance to sending the next line from the "Commands"

Note 3:
If the device pages through output ("-- more --"), Unimus sends pagination key (space for most device types) to proceed to next page automatically.
IF device asks to confirm end of output ("press Q to finish"), Unimus sends the appropriate key to finish output automatically.

Command parsing examples

Push commands:

...

Code Block
languagetext
banner motd ^^$[no-wait]
This is the start of the banner$[no-wait]
And this is a 2nd line of the banner$[no-wait]
This is the end of the banner^

It is important to NOT specify "$[no-wait]" after the last line, since the device will respond with a prompt after the last line, and you want Unimus to wait for the prompt and collect the output.

The interaction with the device will look like this:

Panel

device (config)# banner motd ^<enter>
Enter TEXT message.  End with the character '^'.
This is the start of the banner<enter>
And this is a 2nd line of the banner<enter>
This is the end of the banner^<enter>

device (config)#

Debugging failed pushes - "INTERACTION_ERROR" group

...