自动化运维(使用api自动化管理f5设备)
自动化运维(使用api自动化管理f5设备)
- 前言
- F5 的API接口
- 关于认证
- 利用python实现自动化巡检
- 成果
- 附录(f5 api reference)
前言
利用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 timeauth, ip = ('admin', 'epi@66585006'), '192.168.100.246'
timestamp= time.strftime("%Y-%m-%d %H-%M-%S", time.localtime()) url= 'https://' + ip + '/mgmt/tm/cm/sync-status'
#获取F5设备配置同步状态
url2= 'https://' + ip + '/mgmt/tm/cm/device'
#获取F5设备型号、可用模块、failover主备状态
url3= 'https://' + ip + '/mgmt/tm/sys/failover'
#获取F5设备上一次failover切换时间result_failover= requests.get(url3, verify= False, auth= auth)
resp_failover= result_failover.text
failover_dict= json.loads(resp_failover)result_sync= requests.get(url, verify= False, auth= auth)
resp_sync= result_sync.text
sync_dict= json.loads(resp_sync)resp_hastatus= requests.get(url2, verify= False, auth= auth)
hastatus_dict= json.loads(resp_hastatus.text)filename= 'f5/'+ timestamp + '.txt'
with open(filename, 'a') as f:f.write(ip+ ' last failover time: '+ failover_dict['apiRawValues']['apiAnonymous'])f.write(ip+ ' sync status is :'+ sync_dict['entries']['https://localhost/mgmt/tm/cm/sync-status/0']['nestedStats']['entries']['color']['description']+ '\n')f.write('HA status:'+ '\n'+ hastatus_dict['items'][0]['hostname']+ ','+ hastatus_dict['items'][0]['failoverState']+ '\n'+ hastatus_dict['items'][1]['hostname']+ \','+ hastatus_dict['items'][1]['failoverState']+ '\n\n')
成果
巡检完成后,根据巡检时间生成文本文件。
文件中包括设备上一次主备切换时间、主备机配置同步状态、HA状态等信息。
附录(f5 api reference)
f5官方api参考手册:
https://clouddocs.f5.com/api/icontrol-rest/APIRef_tm_ltm.html
功能非常强大,ltm、gtm、lc、irule等等,一切你想要的信息都在里面。
自动化运维(使用api自动化管理f5设备)相关推荐
- 自动化运维工具Puppet(管理资源)
接上文<自动化运维工具Puppet>http://kaliarch.blog.51cto.com/8966921/1973736 利用模块与模版管理agent端资源 一.模块管理 环境安装 ...
- 2011系统架构师大会分享-自动化运维中的关系管理
问过一些技术方向的朋友,在他们眼中运维是做怎么样的事情?其中大部份人回答说:搬机器.装系统.收报警.写各种各样维护清理的shell脚本等等.运维真的只是做这些事情? 不同的公司.不同规模的集群,运维所 ...
- python实现自动化运维项目_Python自动化运维项目开发最佳实战
下载地址:五号服务器---VIP资料下载七区\VIP专题教程二区 游客,如果您要查看本帖隐藏内容请回复 Python 自动化运维项目开发最佳实战 这个远比什么老男孩的python好的多 2017-1- ...
- mysql 自动化运维开发_Python自动化运维开发----基础(十三)Mysql数据库基础
1.MYSQL 语言的分类 (1) DDL 数据库定义 (2) DQL 数据库查询 (3) DML 数据库操作 (4) DCL 数据库权限 2.MYSQL 操作 (1) 创建数据库mysql> ...
- LINUX学习------Linux自动化运维——Kubernetes的pod管理
一.Pod管理 Pods Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip. Pod (就像在鲸鱼荚或者豌豆荚中)是一 ...
- Ansible自动化运维工具配置与管理(CentOS8)
一.Ansible搭建 安装EPEL仓库 dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch. ...
- 标杆徐2018 Linux自动化运维实战,标杆徐2018 Linux自动化运维系列⑦: SaltStack自动化配置管理实战...
结合企业自动化集群场景讲解,轻松玩转SaltStack自动化配置管理工具 第1章 SaltStack基础应用 SaltStack安装 SaltStack认证 Saltstack远程执行 SaltSta ...
- 自动化运维之kickstart自动化部署安装操作系统
第1章 简介 1.1 PXE简介 q PXE是预启动执行环境,全名是Pre-boot Execution Environment q 通过网络接口启动计算机,不需要依赖本地存储设备或本地已安装的操 ...
- kickstart自动化系统安装_自动化运维之kickstart自动化部署安装操作系统
第1章 简介 1.1 PXE简介 qPXE是预启动执行环境,全名是Pre-boot Execution Environment q通过网络接口启动计算机,不需要依赖本地存储设备或本地已安装的操作系统 ...
- python自动化运维开发-Python自动化运维开发----基础(七)元组
1.元组的定义(tuple) 元组是以小括号括起来的,每个元素之间是以逗号隔开,元组中如果只有一个元素的时候不能省略逗号 如下定义一个元组>>> a = (1,2,3,4) > ...
最新文章
- Oracle MD5加密
- 动态引用webservice
- 电脑操作系统维护10条实用建议!
- javascript中Date对象的初始化方法
- 操作系统--用户级线程与内核级线程
- MATLAB GPU加速
- Elasticsearch 性能监控2(五种常见问题的解决办法)
- SpringCloud+OAuth2+Redis实现的微服务统一认证授权
- django.db.utils.OperationalError: (1049, Unknown database 'djangodb')
- chrome拓展 --截屏文字识别
- RabbitMQ系列8 TTL 死信队列 延迟队列
- matlab检验数据异方差,求教!怀特异方差检验方法在matlab中的实现,以及广义最........
- MT6573 android2.3.4 OTA包的生成研究
- c语言pow函 新闻,c语言pow函数(C语言pow函数)
- 新手入门:PyCharm 的使用
- stata陈强:第四章 stata操作基础
- ipad和iphone切图_如何在iPhone和iPad上使用触控板模式选择文本
- m5CPred‑SVM: a novel method for predicting m5C sites of RNA
- 微信公众号开发实战 | 01:环境配置
- android 音频压缩 silk,微信音頻silk導出多個mp3,合並成一個mp3,壓縮大小