# f5-python-sdk-demo-function **Repository Path**: xtomrfx/f5-python-sdk-demo-function ## Basic Information - **Project Name**: f5-python-sdk-demo-function - **Description**: create some funcation for common use - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-01 - **Last Updated**: 2025-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 介绍说明 - f5-sdk-test.py 使用的是f5-common-python sdk做为演示,编写了几个常用场景的函数,给学习者一些参考,方便大家学习sdk使用。 - f5-python-sdk的官方文档: https://f5-sdk.readthedocs.io/en/latest/userguide/index.html - f5-python-sdk的github: https://github.com/F5Networks/f5-common-python ## demo file 说明 - f5-sdk-test.py : 根据场景做了一些函数,可以直接使用,也可以修改。 - f5config.txt : 需要配置的对象, f5-sdk-test.py 读取 f5config.txt 内的对象,进行配置。 ## f5-sdk-test.py 使用说明 ### 安装SDK ```shell $ pip install f5-sdk ``` ### f5-sdk-test.py部分配置说明: ```python # openFile 指定具体的配置对象的文件 openFile = open( '/Users/xxxx/vscode/PycharmProjects/F5-test/f5config.txt' ) initConfig = openFile.read() readConfig = initConfig.split('\n') #修改下面的ip,用户名和密码。 如果需要对多个设备做配置,可以配置多个mgmt.. 方便需要对多个设备做相同操作。 mgmtA = f5.bigip.ManagementRoot('ltm mgmt ip','username','password',token='True',debug='True') mgmtA.debug = True #创建文件中的pool 和 member def createPoolwithMem_(mgmt,readConfig): tm_pool = mgmt.tm.ltm.pools.pool configLenth = len(readConfig) for i in range(configLenth): if 'pool' == readConfig[i].split(" ")[0]: poolmemList = readConfig[i].split(" ") poolName = poolmemList[1] tm_pool.create( name = poolName, partition = 'Common', monitor = '/Common/tcp' ) poolLoad = mgmt.tm.ltm.pools.pool.load( partition='Common', name = poolName ) for mem in poolmemList[2:-1]: poolLoad.members_s.members.create( partition='Common', name = mem.split("-")[0] ) ``` ### f5config.txt部分配置说明: f5-sdk-test.py从f5config.txt 读取需要配置的对象,以下格式必须严格按照要求编写。 如果需要自己定义,需要修改py里的函数按需定义。 - pool和members的使用格式为: pool开头 + pool名字 + members(格式为 ip地址:端口-dis/ena) + 健康检查 ``` 举例: ====== pool and members ======== pool p1 1.0.0.10:80-dis 1.0.0.20:8080-dis 1.0.0.3:80-dis 1.0.0.4:80-dis 1.0.0.5:80-dis tcp 上面就是配置一个名字为p1的pool,里面有5个member,并且都disable状态,使用的健康检查为 tcp ``` - vs配置格式为: virtual开头 + vs名字 + vip:vport + vs协议 + profile(这里只对http和非http做了逻辑,所以要么http profile要么 tcp profile) + 关联的pool + 是否开启 ena/dis ``` 举例: ====== vs ======== virtual v1 10.10.1.1:80 tcp http p1 ena virtual v2 10.10.2.1:80 tcp none p2 dis 上面就是配置了2个vs,分别是v1和v2。 关联了不同的pool,其中v2被手动disable了。 ``` ### 使用自动化脚本举例: 因为f5-sdk-test.py 已经封装了几种场景,可以按需做配置 1. 在f5-sdk-test.py 把f5config.txt的路径填好如下 ```python openFile = open( '/Users/k.ji/vscode/PycharmProjects/F5-test/f5config.txt' ) ``` 2. 修改mgmt的管理ip,用户名和密码,让脚本可以访问BIG IP。如果要同时对多台下发配置,需要额外配置mgmt,并且额外处理逻辑。 注意,如果是集群部署,vip不同一样,因此可以分多个文件放配置对象。 ```python mgmtA = f5.bigip.ManagementRoot('ltm mgmt ip','username','password',token='True',debug='True') ``` 3. 选择需要执行的场景对应的函数,传mgmt 和 配置对象路径参数即可。比如我需要更新pool下的member ip就执行如下: ```python updateMemIP_(mgmtA,readConfig) ```