Forum Discussion
paul_dawson_258
Nimbostratus
Jun 06, 2018Query 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 ...
- Jun 06, 2018
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)
Jason_Nance
Nimbostratus
Jun 06, 2018This 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)
paul_dawson_258
Nimbostratus
Jul 03, 2018Jason this works like a charm. May I request an additional feature? Is it possible ti include the VIP IP address? Last request!
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects