F5 Python SDK简介
2021-07-29 11:55:36
Will Tang
通过自动化平台对接时,通常会使用脚本的方式访问设备API。F5在官方的github仓库中提供了Python SDK可以实现快速对接。
Github链接:
https://github.com/F5Networks/f5-common-python
快速入门
DevCentral上有一组系列文章,对Python SDK做了非常好的入门介绍,可以登录DevCentral进行阅读和参考:
Part1: https://devcentral.f5.com/s/articles/getting-started-with-the-f5-common-python-sdk-27438
Part6: https://devcentral.f5.com/s/articles/getting-started-with-the-python-sdk-part-6-transactions-31951
如果想查阅完整的手册请访问:
示例
以下代码用于创建一个新的LB应用,从Monitor,到Pool,再到VS:
from f5.bigip import ManagementRoot b = ManagementRoot('10.1.1.241', 'admin', 'admin') monitor_http_sdk_test_parameters = {'name': 'monitor_http_sdk_test', 'interval': 10, 'timeout': 31, 'send': 'GET /welcome.php', 'recv': 'welcome'} pool_sdk_test_parameters = {"name": "pool_sdk_test", "monitor": "/Common/monitor_http_sdk_test"} pool_sdk_test_members_1_parameters = {'name': '10.1.20.11:80', 'partition': 'Common'} pool_sdk_test_members_2_parameters = {'name': '10.1.20.12:80', 'partition': 'Common'} pool_sdk_test_members_3_parameters = {'name': '10.1.20.13:80', 'partition': 'Common'} vs_sdk_test_parameters = {"name": "vs_sdk_test", "destination": "10.1.10.232:80", "ipProtocol": "tcp", "pool": "pool_sdk_test", "sourceAddressTranslation": {"type": "automap" }, "persist": [{"name": "cookie"}], "profiles": [{"name": "tcp"}, {"name": "http"}]} monitor_http_sdk_test = b.tm.ltm.monitor.https.http.create(**monitor_http_sdk_test_parameters) pool_sdk_test = b.tm.ltm.pools.pool.create(**pool_sdk_test_parameters) pool_sdk_test_members_1 = pool_sdk_test.members_s.members.create(**pool_sdk_test_members_1_parameters) pool_sdk_test_members_2 = pool_sdk_test.members_s.members.create(**pool_sdk_test_members_2_parameters) pool_sdk_test_members_3 = pool_sdk_test.members_s.members.create(**pool_sdk_test_members_3_parameters) vs_sdk_test = b.tm.ltm.virtuals.virtual.create(**vs_sdk_test_parameters)
以下代码用于读取一个Pool member的健康检查状态:
from f5.bigip import ManagementRoot b = ManagementRoot('10.1.1.241', 'admin', 'admin') ltm = b.tm.ltm pool = ltm.pools.pool.load(partition='Common', name='WebPool') member = pool.members_s.members.load(partition='Common', name='10.1.20.11:80') print(member.state)
打印一个Pool内所有member的健康状态:
from f5.bigip import ManagementRoot b = ManagementRoot('10.1.1.241', 'admin', 'admin') pool = b.tm.ltm.pools.pool.load(partition='Common', name='WebPool') members = pool.members_s.get_collection() print(pool.name) for member in members: print("{0} {1}".format(member.name.ljust(20, " "), (member.state)))

发布评论 加入社群
相关文章

自动化的崛起:如何管理当今世界中的BOT
Vanessa.WANG?
2020-11-24 16:40:01 828

iRules 101-#02-if和表达式
CUNHUI
2020-11-09 18:40:29 2208

F5对接Rancher容器云平台部署手册v3
晏顺
2020-06-23 17:23:28 2994

回复评论
发布评论