摘要
我从去年底开始,一直在潜心研究F5自动化技术开发,主要使用Python语言,开发了LTM和GTM模块。F5有四种管理机制,分别是网页、tmshcmd、RESTful API和SOAP API。其中,网页和tmshcmd是最常用的。
正文
F5 API接口开发设计实战演练(一)
自己从18年中下旬,逐渐从业F5web服务的自动化技术开发设计工作中,关键应用python计算机语言,开发设计的F5程序模块为LTM和GTM。
F5开发设计介绍
1、F5管理机制
F5的管理机制关键有4种(不包含snmp),各自为web页面,tmshcmd,restful api,及其soap api。这在其中,web页面和tmshcmd大部分F5管理人员都使用过,也是传统式运维管理方式,而restful api和soap api必须开发设计第三方程序流程去启用,有一定应用门坎。这二者的差别为
- soap api较为老,数据传输文件格式为http xml。插口设计风格为soap,包括许多一次性获取所有配备的插口,資源使用量小,有一些地区比rest好用。
- restful api较为新,数据传输文件格式应用http json。规范restful设计风格,启用构造清楚,但一部分插口虚有其表,資源使用量大,乃至现网配备过多会发生插口启用不成功。
本文本文档将绝大多数应用restful api开展详细介绍,对必须应用soap的一部分也会做一定详细介绍。这二种api都是有python已封裝好的第三方库。
2、 有关F5版本号和api适用状况
- soap:适用v10及其之上全部版本号,但v11与v10对比修改很大,在其中修改一部分soap很有可能会不兼容。
- rest:不兼容v10,适用v11之上全部版本号,v12和v11对比又有较为大的改动,造成一部分作用v12和v11的插口方式有转变。
之上2种api都是有F5官方网材料,全英,连接以下:https://clouddocs.f5.com/api/
3、 应用python的第三方库开展开发设计
能够 应用python的requests包立即与F5开展互动,但F5有标准接口开展封裝的第三方库,能够 防止反复造轮子。自己应用的python版本号为3.7.5,restful的第三方库为f5-sdk,soap的第三方库为bigsuds。在其中rest的封裝库有文本文档,连接以下:https://f5-sdk.readthedocs.io/en/latest/。
基本上应用方法为应用ip详细地址、登录名、登陆密码开展验证,应用web页面登录的登录名和登陆密码。
安裝第三方库:
pip install f5-sdk
pip install bigsuds
rest插口验证方法:
import f5.bigip
bigipRest = f5.bigip.ManagementRoot('192.168.1.45', 'admin', '123456')
soap验证方法:
import bigsuds
bigipSoap = bigsuds.BIGIP('192.168.1.45', 'admin', '123456')
以上获得到的bigipRest
和bigipSoap
是一个可实行目标,对其开展各种各样实际操作就可以操纵此F5。
4、 F5插口的rest设计风格介绍
什么叫rest设计风格?百度搜索出去的結果是“描述性情况迁移”,是一组构架约束和标准,一种插口设计风格和完成。F5上所有的rest设计原理能够 写一大本很厚的教材内容,因而在这里我不会做详细说明,只举例说明说好多个常见的,不追求专而精但求日常见到的能掌握。
下列好多个专有名词必须了解:
- Resource:資源,能够 了解为F5上的某一配备项,例如某一pool便是一个Resource,某一vs也是一个Resource。
- Collection:结合,Collection是一组Resource的抽象性展现,例如某台ltm上所有的pool便是一个Collection。
- Subcollection:子集合,Subcollection是在某一Resource下的一种配备项,例如pool下边有members,那麼某一pool下的全部members便是一组Subcollection。
- Subcollection Resource:子資源,说白了,在Subcollection下的資源便是SR,例如某一pool下的某一member。
- Organizing Collection:机构结合,它是较大的一层定义,简易了解得话,ltm便是一个OC,gtm也是一个OC,他是一组所有作用的整体完成。
- Unnamed Resource:未命名資源,一般是F5上内置的資源项,不能被删掉或是增加,非常少采用。
F5上对某一資源开展配备实际操作时,便是以以上专有名词的组成精准定位的,例如
http://192.168.1.1/mgmt/tm/ltm/pool/~Common~mypool/members/~Common~1.1.1.1:80
|----|--|---|----|--------------|-------|-------------|
|root|OC|OC |Coll| Resource | SC |SubColl Resrc|
例如以上url就意味着了这台F5 192.168.1.1上的ltm(OC),在pool这一配备大类(Collection)中的这一/Common/mypool(Resource),下边的members中(Subcollection),存有一个/Common/1.1.1.1:80(Subcollection Resource)的配备。此刻根据http的方式(get、post、delete等),就可以对它开展查看/变动/删掉等实际操作了。(Common前后左右应用~替代/的缘故是由于url选用/意味着途径隔开,因而只能用~取代了)
上边的描述构造尽管清楚,但或是有点儿繁杂,python的第三方库对其开展了优良的封裝。封裝后的操作方法更非常容易了解和应用,将在后面2~3篇文章内容中详细介绍。
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
评论0