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')

以上获得到的bigipRestbigipSoap是一个可实行目标,对其开展各种各样实际操作就可以操纵此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条)

刀客源码 匿名评论