F5社区-F5技术交流中心

F5 Python SDK简介

2021-07-29 11:55:36

Will Tang

通过自动化平台对接时,通常会使用脚本的方式访问设备APIF5在官方的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


Part2: https://devcentral.f5.com/s/articles/getting-started-with-the-python-sdk-part-2-unnamed-resources-and-commands-27602


Part3: https://devcentral.f5.com/s/articles/getting-started-with-the-python-sdk-part-3-working-with-statistics-31387


Part4: https://devcentral.f5.com/s/articles/getting-started-with-the-python-sdk-part-4-working-with-request-parameters-31420


Part5: https://devcentral.f5.com/s/articles/getting-started-with-the-python-sdk-part-5-request-parameters-revisited-31509


Part6: https://devcentral.f5.com/s/articles/getting-started-with-the-python-sdk-part-6-transactions-31951

 

如果想查阅完整的手册请访问:

http://f5-sdk.readthedocs.io

 

示例


以下代码用于创建一个新的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

Login

手机号
验证码
© 2019 F5 Networks, Inc. 版权所有。京ICP备16013763号-1