m_add_global_config

m_add_global_config.script_main(script)
MULTIPLE device script
Author: Jamie Caesar

This script will add global configuration commands to the provided list of devices. The commands sent will depend on the operating system of each connected device. For example, IOS devices get the commands listed in the ‘ios’ section of the settings for this script. If the device is running NX-OS, it will get the commands from the ‘nxos’ section of the settings, etc.

Any devices that cannot be connected to will be logged in a separate file saved in the output directory.

This script will prompt you to run in “Check Mode”, where the configuration changes the script would be pushed to the devices are ONLY written to a file and NO CHANGES will be made to the devices. If you select “No” when prompted this script will push the configuration changes to the devices. Also, when the changes are pushed to the devices this script will save the running config before and after the changes are made, and will also output a log of the configuration sessions showing all the commands pushed.

Script Settings (found in settings/settings.ini):

  • show_instructions - When True, displays a pop-up upon launching the script
    explaining where to modify the list of commands sent to devices. This window also
    prompts the user if they want to continue seeing this message. If not, the script
    changes this setting to False.
  • ios - A comma separated list of commands that will be sent to IOS devices.
  • ios-xr - A comma separated list of commands that will be sent to IOS-XR devices.
  • nxos - A comma separated list of commands that will be sent to NX-OS devices.
  • asa - A comma separated list of commands that will be sent to ASA devices.
Parameters:script (scripts.Script) – A subclass of the scripts.Script object that represents the execution of this particular script (either CRTScript or DirectScript)
m_add_global_config.per_device_work(session, check_mode, enable_pass, settings_header)

This function contains the code that should be executed on each device that this script connects to. It is called after establishing a connection to each device in the loop above.

You can either put your own code here, or if there is a single-device version of a script that performs the correct task, it can be imported and called here, essentially making this script connect to all the devices in the chosen CSV file and then running a single-device script on each of them.