Learn F5 Technologies, Get Answers & Share Community Solutions Join DevCentral

Filter by:
  • Solution
  • Technology
code share

BIGdiff

Problem this snippet solves:

Allow you compare LTM and GTM objects.You run the script before and after the upgrade, and the script will generate a report in HTML format showing the results.

The HTML file provides table filter functionality, using the TableFilter (http://koalyptus.github.io/TableFilter/) JavaScript library.

Versions 11.x.x/12.x.x/13.x.x/14.x.x were tested and are supported. As new versions are released, I will be testing to see if any change is needed to support that version.

Images of the script and report:

Image Text

Image Text

Image Text

Image Text

How to use this snippet:

Before you use the script make sure you have the following SNMP configuration in the F5 device:

At least one SNMP community version 2c, and localhost IP 127.0.0.1 is allowed to query.

This is the default configuration anyway, with public community and 127.0.0.0/8 in the allow list.

If you want to check, go to System > SNMP > Agent > Access (v1, v2c) for the community, and System > SNMP > Agent > Configuration for the allow list.

Download the tablefilter.js file above, if you want to use the table filter functionality. Download the bigdiff.sh that is the script file.

In the F5 device, create a folder in /shared/tmp, as /shared is shared between all volumes. Upload the file bigdiff.sh to the F5 device.

Change the file permission to run:

chmod +x bigdiff.sh

Run the script:

./bigdiff.sh

Run the script before the upgrade. Upgrade the F5 device. Run the script after the upgrade.

Download the file ending in .html from the F5 device. Open the HTML file with your favourite browser. Make sure you have the tablefilter.js in the same folder as the HTML file, if you want the filter functionalities.

If you want to integrate the script with other tools, use the silent mode.

Run the following command, to get more information:

./bigdiff.sh -h

This will provide you the error code, where 0 means no error:

echo $?

Known Issues

Large LTM Pool Name - BUG ID 364556

https://support.f5.com/csp/article/K14618 If you have pools with large names, and are using versions: 11.0.0 11.1.0 11.2.0 11.2.1 11.3.0 The system will not return the correct name for the pool member in that pool when queried using SNMP. The script will warn you about that and will just skip those pool members.

GTM Links

I could not find a bug ID for this yet. The system will not return the list of GTM links when queried using SNMP. Found in 11.0.0, not present in 12.0.0, 13.0.0, or 14.0.0. The script will not list GTM links.

Comments on this Snippet
Comment made 22-Aug-2018 by Torsten Sorger 13

The script will fail if no SNMP communities exist on the BigIP (exit code 5 - Failure to run snmpwalk).

0
Comment made 22-Aug-2018 by Adam Ingle 122

Never considered using SNMP for this. Significantly faster than TMSH commands! Thanks!

0
Comment made 26-Aug-2018 by jaikumar_f5 1930

Awesome code Leo. Thanks & Appreciate for sharing the code to the community! !!

0
Comment made 27-Aug-2018 by youssef 4072

Thanks Leo for sharing it will be useful for my next migrations

0
Comment made 28-Aug-2018 by jaikumar_f5 1930

Hi Leo,

Was testing this on couple of servers, noticed when there is no SNMP community strings configured, the error that should be captured is e_no_snmp_community(4), but the error getting capture is e_running_snmpwalk(5).

Because irrespective of get_snmp_community() success or not, run_snmpwalk() is getting always triggered. Then "Failure to run snmpwalk" error is coming up.

Would you want to update it to get "There is no SNMP community setup" when there's no SNMP community configured and stop further processing.

0
Comment made 02-Sep-2018 by Leonardo Souza 3174

Sorry for the delay, but I have been in a well deserved holidays.

@Torsten Sorger, thanks for the information, I have to fix that.

@jaikumar_f5, thanks for the extra information, I can easily fix that.

I will update this page as well, explaining the requirements for snmpwalk to work.

0
Comment made 02-Sep-2018 by Leonardo Souza 3174

Information added about the SNMP requirements, and bug fixed.

Please use GitHub to report problems, as that makes easy to track than in code share.

See the issue I opened about that, as an example:

https://github.com/leonardobdes/BIGdiff/issues/1

0
Comment made 26-Sep-2018 by Chause 58

Where can one find the script? Please post link

0
Comment made 26-Sep-2018 by Leonardo Souza 3174

The link is on the page. However, you can't see if you don't login, and maybe that was the issue.

https://github.com/leonardobdes/BIGdiff

0
Comment made 15-Oct-2018 by dabungis 183

This is awesome!

0
Comment made 17-Oct-2018 by Kevin Davies 3030

Yes its magic stuff!

0