自动化运维(使用api自动化管理f5设备)
前言
利用F5设备自带的API,通过python程序,可与F5设备进行实时交互,从而实现精细化巡检、监控、自动化部署等需求。官方api参考手册在附录,非常全面。
用到的python库:request、json、time
示例代码功能:自动化巡检F5设备上一次主备切换时间、主备机配置同步状态、HA状态等信息
F5 的API接口
F5 (以LTM设备为例)的API全名叫做 iControl REST API。
通俗点说,就是向F5设备发送一个http请求,通过认证后,F5会返回json格式数据。数据中可以包括VS、POOL名称、VS、POOL状态等等信息。除查询类操作外,也可以通过API接口完成新建VS、POOL等变更类操作。
利用API接口,可以很方便的对F5进行自动化操作。
- restful设计风格;
- 认证;
- 查询类操作,可实现监控、自动化巡检等需求;
- 变更类操作,可实现自动化部署;
关于认证
如登陆f5设备使用Cisco ACS认证系统,经本人实验,使用ACS中用户无法通过认证。
使用F5中的local用户,可通过认证。 原因暂时未知。
利用python实现自动化巡检
设计思路:
使用python requrest库,模拟http get 、post等请求,获取F5设备相关信息。将获取的json格式数据转换为dict数据结构,取相应的键值,整理并写入到文本文件中。
如下代码供参考:
import requests
import json
import time
auth, ip = ('admin', 'epi@66585006'), '192.168.100.246'
timestamp= time.strftime("%Y-%m-%d %H-%M-%S", time.localtime