m_update_dhcp_relay

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

This script will scan the running configuration of the provided list of devices, looking for instances of old IP helper/DHCP relay addresses (IOS/NXOS) on interfaces and if found will update the helper/relay addresses with the newer ones. The new and old addresses that the script looks for is saved in the settings.ini file, as documented below.

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.
  • old_relays - This is a comma separated list of IP addresses that the script should
    search for as relay addresses in the device’s configuration.
  • new_relays - This is a comma separated list of IP addresses that are the new relay
    addresses that should be added to any interface that has at least one of the old
    helper/relay addresses on it.
  • remove_old_relays - If True, the script will add the new relays and REMOVE the old
    relays immediately after adding the new ones. If False (default), the script will
    only add the new relays to interfaces where at least one old relay is found. This
    is useful when you want to push out new relays as part of a migration process
    without removing the old relays. Since this script will not try to push new relay
    addresses that already exist on an interface, the script can be run again with this
    option set to True to later remove the old relays.
Parameters:script (scripts.Script) – A subclass of the scripts.Script object that represents the execution of this particular script (either CRTScript or DirectScript)
m_update_dhcp_relay.per_device_work(session, check_mode, enable_pass, old_helpers, new_helpers, remove_old_helpers)

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.