Scripts¶
It is possible to create and execute SSH scripts on devices from within the system. Scripts can be executed as part of a provisioning workflow.
Script files syntax is the Expect script syntax with the ability to add one of the following per line of the script:
- send data to a device and evaluate and substitute macros visible in the context hierarchy
- define a regular expression for the response expected from the device
- branch to a next line based on a match to a response from a device
- comments can be added to the script
Scripting has been tested with Cisco IOS devices.
Please note:
- Branching is only for one line in the script file and does not yet support blocks of commands.
- Security: There is no control of what can be done or not done on the device.
In order to create and run a script, a supporting data model and IOS script device model Configuration Template can be used as a part of a Provisioning Workflow that is executed.
A GUI Rule called ConfigurationTemplateOverride
for device/ios/Script
is applied
by default to the Configuration Template, which adds a multiline
property to
the expect_script
field of the device model. This enables multiline input of
the script.
The supporting model for the IOS device is data/Ios
, to which an instance is added
containing the host, port and authentication details of the device. This instance can
then be selected as the Network Device Filter in the Provisioning Workflow if required.
Alternatively, the Provisioning Workflow can define a context variable, say ios_details
,
that resolves to a particular data\Ios
instance,
for example {{data.Ios.* || direction:local}}
In the IOS device model Configuration Template, the script itself is entered and can consist
of a combination of Expect script syntax and system macros that are for example used
for standard script blocks or variables for the selected data/IOS
instance values.
When the Provisioning Workflow is executed, the transaction log can be inspected to examine the entire script with macros and variables referenced, as well as the device response.