paul_dawson_258
Jun 06, 2018Nimbostratus
Query to retrieve VIP name from Node IP input
Hi, We are doing a DC migration and have the need to retrieve a list of VIP names based on the server/node IP address. I was wondering if anyone has written a script which does this already. I would like to provide an input file with a list of ip addresses and do a loops which retrieves any virtual server to which that server/node IP belongs.
TIA
This should do it, though it is fairly resource-intensive if you have a lot of virtual servers / pools / nodes:
!/usr/bin/env python3 from f5.bigip import ManagementRoot from getpass import getpass from pprint import pprint hostname = 'my.f5.ltm.net' username = 'foo' node_ips = ['192.168.1.1', 192.168.1.2', '192.168.1.3'] mgmt = ManagmentRoot(hostname, username, getpass()) Get node names that have IPs in the list nodes = [] for node in mgmt.tm.ltm.nodes.get_collection(): if node.address in node_ips: fullPath is /PARTITION/NAME nodes.append(node.fullPath) Get pool names which nodes in list belong pools = [] for pool in mgmt.tm.ltm.pools.get_collection(): members = pool.members_s.get_collection() for member in members: Member fullpath is '/PARTITION/NODENAME:SERVICE_PORT' if member.fullPath.split(':')[0] in nodes: pools.append(pool.fullPath) break Get virtual server names which pools in list belong virtuals = [] for virtual in mgmt.tm.ltm.virtuals.get_collection(): if hasattr(virtual, 'pool') and virtual.pool in pools: virtuals.append(virtual.fullPath) pprint(virtuals)