Example NCM command script with variables
The following script contains commands with variables to remove the public read-only community string:
${EnterConfigMode} no snmp-server community public RO ${ExitConfigMode} ${SaveConfig} ${Reboot}
Parsed for Cisco IOS devices:
config terminal no snmp-server community public RO end write memory reload${CRLF}y${CRLF}y
Parsed for a Dell PowerConnect Switch:
config no snmp-server community public RO end copy running-config startup-config${CRLF}${CRLF} reload${CRLF}Yes
The ${CRLF}
variable equals a carriage return line feed for all devices.
Define script variables
Script variables are defined in device command templates. You can create new device templates or edit existing custom templates.
Each device template contains a System OID that is used to uniquely identify a device. A list of command names, and the corresponding commands to be sent to the device when the command name is called, are also included in the templates. These command names are the variables used when creating a script.
Consider the following line taken from the Cisco IOS device command template:
<Command Name="EnterConfigMode" Value="config terminal"/>
When a script is run on a Cisco IOS device, the variable ${EnterConfigMode}
parses as config terminal
. New command names can be added and existing command names can be modified within these files.
Reference variables with variables
The script engine also allows you to reference variables with variables. For example, you can define a complex variable in the device template:
ShowInt = running | include interface
Then define another variable that includes the first:
Reveal = show ${ShowInt}
When you call ${Reveal}
, it equals show running | include interface
.