自动化运维(使用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进行自动化操作。

  1. restful设计风格;
  2. 认证;
  3. 查询类操作,可实现监控、自动化巡检等需求;
  4. 变更类操作,可实现自动化部署;

关于认证

如登陆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设备)相关推荐

  1. 自动化运维工具Puppet(管理资源)

    接上文<自动化运维工具Puppet>http://kaliarch.blog.51cto.com/8966921/1973736 利用模块与模版管理agent端资源 一.模块管理 环境安装 ...

  2. 2011系统架构师大会分享-自动化运维中的关系管理

    问过一些技术方向的朋友,在他们眼中运维是做怎么样的事情?其中大部份人回答说:搬机器.装系统.收报警.写各种各样维护清理的shell脚本等等.运维真的只是做这些事情? 不同的公司.不同规模的集群,运维所 ...

  3. python实现自动化运维项目_Python自动化运维项目开发最佳实战

    下载地址:五号服务器---VIP资料下载七区\VIP专题教程二区 游客,如果您要查看本帖隐藏内容请回复 Python 自动化运维项目开发最佳实战 这个远比什么老男孩的python好的多 2017-1- ...

  4. mysql 自动化运维开发_Python自动化运维开发----基础(十三)Mysql数据库基础

    1.MYSQL 语言的分类 (1) DDL 数据库定义 (2) DQL 数据库查询 (3) DML 数据库操作 (4) DCL  数据库权限 2.MYSQL  操作 (1) 创建数据库mysql> ...

  5. LINUX学习------Linux自动化运维——Kubernetes的pod管理

    一.Pod管理 Pods Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip. Pod (就像在鲸鱼荚或者豌豆荚中)是一 ...

  6. Ansible自动化运维工具配置与管理(CentOS8)

    一.Ansible搭建 安装EPEL仓库 dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch. ...

  7. 标杆徐2018 Linux自动化运维实战,标杆徐2018 Linux自动化运维系列⑦: SaltStack自动化配置管理实战...

    结合企业自动化集群场景讲解,轻松玩转SaltStack自动化配置管理工具 第1章 SaltStack基础应用 SaltStack安装 SaltStack认证 Saltstack远程执行 SaltSta ...

  8. 自动化运维之kickstart自动化部署安装操作系统

    第1章 简介 1.1 PXE简介 q  PXE是预启动执行环境,全名是Pre-boot Execution Environment q  通过网络接口启动计算机,不需要依赖本地存储设备或本地已安装的操 ...

  9. kickstart自动化系统安装_自动化运维之kickstart自动化部署安装操作系统

    第1章 简介 1.1 PXE简介 qPXE是预启动执行环境,全名是Pre-boot Execution Environment q通过网络接口启动计算机,不需要依赖本地存储设备或本地已安装的操作系统 ...

  10. python自动化运维开发-Python自动化运维开发----基础(七)元组

    1.元组的定义(tuple) 元组是以小括号括起来的,每个元素之间是以逗号隔开,元组中如果只有一个元素的时候不能省略逗号 如下定义一个元组>>> a = (1,2,3,4) > ...

最新文章

  1. Oracle MD5加密
  2. 动态引用webservice
  3. 电脑操作系统维护10条实用建议!
  4. javascript中Date对象的初始化方法
  5. 操作系统--用户级线程与内核级线程
  6. MATLAB GPU加速
  7. Elasticsearch 性能监控2(五种常见问题的解决办法)
  8. SpringCloud+OAuth2+Redis实现的微服务统一认证授权
  9. django.db.utils.OperationalError: (1049, Unknown database 'djangodb')
  10. chrome拓展 --截屏文字识别
  11. RabbitMQ系列8 TTL 死信队列 延迟队列
  12. matlab检验数据异方差,求教!怀特异方差检验方法在matlab中的实现,以及广义最........
  13. MT6573 android2.3.4 OTA包的生成研究
  14. c语言pow函 新闻,c语言pow函数(C语言pow函数)
  15. 新手入门:PyCharm 的使用
  16. stata陈强:第四章 stata操作基础
  17. ipad和iphone切图_如何在iPhone和iPad上使用触控板模式选择文本
  18. m5CPred‑SVM: a novel method for predicting m5C sites of RNA
  19. 微信公众号开发实战 | 01:环境配置
  20. android 音频压缩 silk,微信音頻silk導出多個mp3,合並成一個mp3,壓縮大小

热门文章

  1. 郑州市养老院解决方案,苏州新导助力养老院行业发展
  2. 一般与特殊结构关系 整体与部分结构关系
  3. 莹石云直播原生和莹石云直播vue的使用和区别
  4. 网线福禄克测试仪多少db符合规范要求
  5. ADSL 各种拨号错误代码解析
  6. Excel中删除重复数据(用VBA代码)
  7. rocketmq设置端口号_nginx代理rocketmq端口
  8. c 语言大整数阶乘,c++大数阶乘的实现方法
  9. c语言调用 svn api,Subversion API 使用简介
  10. sklearn中的支持向量机SVM(上)