GithubHelp home page GithubHelp logo

selcukcosan / f5-get_inventory Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 31 KB

Get F5 BIG-IP information from multiple devices in your inventory via Python

Python 100.00%
f5 f5-bigip f5-ltm f5networks python python3

f5-get_inventory's Introduction

f5-get_inventory

This Python script connects to each F5 BIG-IP devices in your inventory via REST API and collects some information ie. version, platform, serial number, base mac address. The script will export the collected information to a json file.

The F5 BIG-IP credential information are in the inventory.json file as below format.

{
    "bigip1": {
        "inventory_network_os": "f5.bigip",    
        "inventory_network_location": "Home",         
        "inventory_host": "192.168.1.245",
        "inventory_user": "admin",
        "inventory_pass": "password",
        "inventory_cli_port": "22",        
        "inventory_rest_port": "443"
    },
    "bigip2": {
        "inventory_network_os": "f5.bigip",    
        "inventory_network_location": "Home",         
        "inventory_host": "192.168.1.246",
        "inventory_user": "admin",
        "inventory_pass": "password",
        "inventory_cli_port": "22",        
        "inventory_rest_port": "443"
    },
     "bigip11": {
        "inventory_network_os": "f5.bigip",    
        "inventory_network_location": "Home",         
        "inventory_host": "192.168.1.231",
        "inventory_user": "admin",
        "inventory_pass": "password",
        "inventory_cli_port": "22",        
        "inventory_rest_port": "443"
    }                                                                                                                                                                                                                                                                                                                        
}

Usage:

python f5-get_inventory.py

Files

  • f5-get_inventory.py >> This script file
  • inventory.json >> F5 BIG-IP information ie management ip, username, password, location etc.
  • f5-get_inventory-export-datetimenow.json >> Output file format

output File Example

the output file name format will be f5-get_inventory-export-datetimenow.json

When we run the script, bigip7 and bigip9 was unreachable. So that the information is missing for these unreachable devices in the output json file.

{
	"bigip1": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.245",
		"Status": "Connected",
		"Build": "0.44.2",
		"Date": "Wed Oct 25 15:58:18 PDT 2023",
		"Edition": "Engineering Hotfix",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.2",
		"baseMac": "aa:bb:cc:b7:79:a0",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-c019-8daca9b779a0",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip2": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.246",
		"Status": "Connected",
		"Build": "0.44.2",
		"Date": "Wed Oct 25 15:58:18 PDT 2023",
		"Edition": "Engineering Hotfix",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.2",
		"baseMac": "aa:bb:cc:fc:66:f2",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-9f8d-d8bfa9fc66f2",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip3": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.247",
		"Status": "Connected",
		"Build": "0.44.2",
		"Date": "Wed Oct 25 15:58:18 PDT 2023",
		"Edition": "Engineering Hotfix",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.2",
		"baseMac": "aa:bb:cc:66:cc:f4",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-da77-58838466ccf4",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip4": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.248",
		"Status": "Connected",
		"Build": "0.44.2",
		"Date": "Wed Oct 25 15:58:18 PDT 2023",
		"Edition": "Engineering Hotfix",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.2",
		"baseMac": "aa:bb:cc:1b:6d:58",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-4818-a5c3811b6d58",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip5": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.249",
		"Status": "Connected",
		"Build": "0.44.2",
		"Date": "Wed Oct 25 15:58:18 PDT 2023",
		"Edition": "Engineering Hotfix",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.2",
		"baseMac": "aa:bb:cc:c3:64:83",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-0720-30aa71c36483",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip6": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.250",
		"Status": "Connected",
		"Build": "0.44.2",
		"Date": "Wed Oct 25 15:58:18 PDT 2023",
		"Edition": "Engineering Hotfix",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.2",
		"baseMac": "aa:bb:cc:04:70:ce",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-82cf-b5d5ed0470ce",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip7": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.251",
		"Status": "HTTPSConnectionPool(host='192.168.1.251', port=443): Max retries exceeded with url: /mgmt/tm/sys/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f791c858310>: Failed to establish a new connection: [Errno 113] No route to host'))"
	},
	"bigip8": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.244",
		"Status": "Connected",
		"Build": "0.44.2",
		"Date": "Wed Oct 25 15:58:18 PDT 2023",
		"Edition": "Engineering Hotfix",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.2",
		"baseMac": "aa:bb:cc:02:f1:10",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-5c93-d66e5502f110",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip9": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.252",
		"Status": "HTTPSConnectionPool(host='192.168.1.252', port=443): Max retries exceeded with url: /mgmt/tm/sys/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f791c7e35e0>: Failed to establish a new connection: [Errno 113] No route to host'))"
	},
	"bigip10": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.243",
		"Status": "Connected",
		"Build": "0.0.12",
		"Date": "Wed Nov 15 11:32:44 PST 2023",
		"Edition": "Point Release 3",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.3",
		"baseMac": "aa:bb:cc:b2:66:44",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-42dc-d0058db26644",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	},
	"bigip11": {
		"Inventory_Network_OS": "f5.bigip",
		"Management_IP": "192.168.1.231",
		"Status": "Connected",
		"Build": "0.0.12",
		"Date": "Wed Nov 15 11:32:44 PST 2023",
		"Edition": "Point Release 3",
		"Product": "BIG-IP",
		"Title": "Main Package",
		"Version": "15.1.10.3",
		"baseMac": "aa:bb:cc:7b:0f:53",
		"biosRev": " ",
		"cloudName": " ",
		"hypervisorName": "VMware Virtual Platform",
		"marketingName": "BIG-IP Virtual Edition",
		"bigipChassisSerialNum": "aabbccdd-eeff-7ca0-c097497b0f53",
		"hostBoardPartRevNum": " ",
		"hostBoardSerialNum": " ",
		"platform": "Z100",
		"project_200LevelBomNum": " ",
		"switchBoardPartRevNum": " ",
		"switchBoardSerialNum": " "
	}
}

Collecting Same Information via curl

curl -s -k -u "admin:password" https://192.168.1.245/mgmt/tm/sys/version | json_pp
{
   "entries" : {
      "https://localhost/mgmt/tm/sys/version/0" : {
         "nestedStats" : {
            "entries" : {
               "Build" : {
                  "description" : "0.44.2"
               },
               "Date" : {
                  "description" : "Wed Oct 25 15:58:18 PDT 2023"
               },
               "Edition" : {
                  "description" : "Engineering Hotfix"
               },
               "Product" : {
                  "description" : "BIG-IP"
               },
               "Title" : {
                  "description" : "Main Package"
               },
               "Version" : {
                  "description" : "15.1.10.2"
               }
            }
         }
      },
      "https://localhost/mgmt/tm/sys/version/1" : {
         "nestedStats" : {
            "entries" : {
               "ID1117229_2" : {
                  "description" : "ID1117229-2"
               },
               "ID1240121_2" : {
                  "description" : "ID1240121-2"
               },
               "ID1381357_3" : {
                  "description" : "ID1381357-3"
               }
            }
         }
      }
   },
   "kind" : "tm:sys:version:versionstats",
   "selfLink" : "https://localhost/mgmt/tm/sys/version?ver=15.1.10.2"
}
curl -s -k -u "admin:password" https://192.168.1.245/mgmt/tm/sys/hardware | json_pp
{
      "https://localhost/mgmt/tm/sys/hardware/platform" : {
         "nestedStats" : {
            "entries" : {
               "https://localhost/mgmt/tm/sys/hardware/platform/0" : {
                  "nestedStats" : {
                     "entries" : {
                        "baseMac" : {
                           "description" : "aa:bb:cc:b7:79:a0"
                        },
                        "biosRev" : {
                           "description" : " "
                        },
                        "cloudName" : {
                           "description" : " "
                        },
                        "hypervisorName" : {
                           "description" : "VMware Virtual Platform"
                        },
                        "marketingName" : {
                           "description" : "BIG-IP Virtual Edition"
                        }
                     }
                  }
               }
            }
         }
      },
      "https://localhost/mgmt/tm/sys/hardware/system-info" : {
         "nestedStats" : {
            "entries" : {
               "https://localhost/mgmt/tm/sys/hardware/system-info/0" : {
                  "nestedStats" : {
                     "entries" : {
                        "bigipChassisSerialNum" : {
                           "description" : "aabbccdd-eeff-c019-8daca9b779a0"
                        },
                        "hostBoardPartRevNum" : {
                           "description" : " "
                        },
                        "hostBoardSerialNum" : {
                           "description" : " "
                        },
                        "platform" : {
                           "description" : "Z100"
                        },
                        "project_200LevelBomNum" : {
                           "description" : " "
                        },
                        "switchBoardPartRevNum" : {
                           "description" : " "
                        },
                        "switchBoardSerialNum" : {
                           "description" : " "
                        }
                     }
                  }
               }
            }
         }
      }
   },
   "kind" : "tm:sys:hardware:hardwarestats",
   "selfLink" : "https://localhost/mgmt/tm/sys/hardware?ver=15.1.10.2"
}

f5-get_inventory's People

Contributors

selcukcosan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.