资产管理对于任何公司来说都是件非常重要的事情,大家不用cmdb都有点不好意思出来见人了,上了CMDB之后基础就是资产这块,为了不苦逼似的一个个往里边录入,于是用python 结合Ansible 写了个自动收集资产信息,然后拿出自己需要关注的字段,自动insert 到cmdb 数据库里边去。

我们的cmdb 是开源改的,前端自定义好之后,后端的数据库需要自己创建个表,创建表语句如下:
CREATE TABLE ansible_host (
id int(11) NOT NULL AUTO_INCREMENT,
hostname varchar(200) COLLATE utf8_bin DEFAULT NULL,
manufacturer varchar(200) COLLATE utf8_bin DEFAULT NULL,
os varchar(200) COLLATE utf8_bin DEFAULT NULL,
cpu_model varchar(200) COLLATE utf8_bin DEFAULT NULL,
cpu_count varchar(10) COLLATE utf8_bin DEFAULT NULL,
cpu_core varchar(255) COLLATE utf8_bin DEFAULT NULL,
memory_totally varchar(255) COLLATE utf8_bin DEFAULT NULL,
swap_totally varchar(255) COLLATE utf8_bin DEFAULT NULL,
disk varchar(200) COLLATE utf8_bin DEFAULT NULL,
ip varchar(255) COLLATE utf8_bin DEFAULT NULL,
mac_address varchar(255) COLLATE utf8_bin DEFAULT NULL,
sn varchar(20) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

python 代码:
#gobal_fun 辅助模块,时间和数据定义在这里边,正式程序直接import
#!/usr/bin/env python
import datetime
import time
import sys
import MySQLdb as mysql
d1=datetime.datetime.now()
#input=open(sys.argv[1],'r')
d2=(d1-datetime.timedelta(days=1)).strftime('%Y-%m-%d')
d3=(d1-datetime.timedelta(days=1)).strftime('%d/%b/%Y')
day = time.strftime("%Y")
#outpu=open(d2+'__hourpv.csv','a+')
#outip=open('ip
'+d2+'.csv','a+')
dk=time.strftime("%d/%b/%Y",time.localtime())+':00'
da=time.strftime("%d/%b/%Y",time.localtime())
conn= mysql.connect(user="root", passwd="vivame",db="falcon", charset="utf8")
cur = conn.cursor()

主程序

#!/usr/bin/env python

coding=utf-8

author :wosun

gro=raw_input("pls input ansible group:")
import ansible.runner as arun
import gobal_fun
def get_info():
ass_list=[]
runner = arun.Runner(
module_name='setup',
module_args='',
pattern='%s'%gro,
forks=10
)
results=runner.run()
INFO=results['contacted']
for host,val in INFO.items():
for i in val['ansible_facts']["ansibledevices"]:
if i[0:2] not in ("sr"):
dis=str(i+'
'+val['ansible_facts']['ansible_devices'][i]['size'])
ass=host,str(val['ansible_facts']["ansible_product_name"]),str(val['ansible_facts']["ansibledistribution"])+""+st)
ass_list.append(ass)
#for i in ass_list:

print i

Msql="INSERT INTO ansible_host (hostname,manufacturer,os,cpu_model,cpu_count,cpu_core,memory_totally,`swa"
try:
gobal_fun.cur.executemany(Msql,ass_list)
gobal_fun.conn.commit()
gobal_fun.cur.close()
gobal_fun.conn.close()
print "success insert "
except Exceptioin,e:
conn.rollback()
print e
if name == "main":
get_info()

转载于:https://blog.51cto.com/seekerwolf/2105533

Python 结合Ansible 把管理资产信息自动插入到CMDB中相关推荐

  1. 用开源工具OCSNG管理资产信息

    2019独角兽企业重金招聘Python工程师标准>>> 用开源工具OCSNG管理资产信息 (本文提供软件和部署视频) 今天为大家介绍的OCS,它能帮助管理员掌握计算机软件安装和配置, ...

  2. 把Python程序的输出和异常信息自动写入文件

    一般情况下,Python的内置函数print()会把数据输出到标准控制台,也就是屏幕,当然这可以通过为print()函数传递file参数来改变.如果代码执行过程中出现了异常,异常信息也会默认显示在屏幕 ...

  3. python爬取携程网航班机票信息并存储到数据库中,2020年最新版本

    我们先看一下携程网的信息 从以上我们可以获取两个信息 1.我是从上海到成都的 2.7条航班信息 教你如何爬虫 我不教静态网页的爬虫,因为太简单了:我们直接上手携程网 我们到这个上述这个页面以后,我推荐 ...

  4. python使用opencv方法将签名图片自动插入到图片任意位置

    三.将签名图片插入到图片底部 方法一:通过操作像素点将图片遍历到原图 原理: 现有待插入图片(jpg\png)格式.手写签名png图片 0.利用opencv修改图片大小 1.使用numpy将两张图片的 ...

  5. 自动生成文章的html,文章自动更新工具|自动生成文件|自动伪原创|文章自动插入关键词工具...

    概念网络发布一款自动更新文章的工具, 该套工具可用概念的文章站程序, 概念的发布站程序, 概念的企业站程序, 只要在服务器一直开着这个工具, 工具会更具配置文件的配置, 每天定时的更新网站的文章, 文 ...

  6. WORD中自动插入图表标签

    在WORD中自动插入图表标签的主要菜单项为"插入"菜单下的"应用"菜单下的"题注-"和"交叉应用"两个菜单项. 1. 自 ...

  7. Python调用ansible API系列(一)获取资产信息

    你想让ansible工作首先就需要设置资产信息,那么我们如何通过使用Python调取Ansible的API来获取资产信息呢? 要提前准备一个hosts文件 获取组或者主机 #!/usr/bin/env ...

  8. Python使用matplotlib保存图像时发生自动裁剪丢了部分标签信息解决方案(plt.savefig保存时丢失了部分标签字符)

    Python使用matplotlib保存图像时发生自动裁剪丢了部分标签信息解决方案(plt.savefig保存时丢失了部分标签字符) 目录

  9. Python实现信息自动配对爬虫排版程序(附下载)

    授权自AI科技大本营(ID:rgznai100) 本文约2800字,建议阅读7分钟. 本文为你介绍Python实现信息自动配对爬虫排版程序. 公众号(DatapiTHU)后台回复"20200 ...

最新文章

  1. mysql数据备份mysqldump
  2. java.lang.NumberFormatException: multiple points错误问题
  3. line和spline_探索适用于Apache Spark的Spline Data Tracker和可视化工具(第1部分)
  4. 《vue2.0基础系列》目录大全,你要的都在这里
  5. 2021牛客寒假算法基础集训营2,签到题FHIJ
  6. 【vscode】vscode + vue项目实战记录
  7. 逻辑思维训练500题(带答案)
  8. flash spi 野火_野火stm32-SPI
  9. Linux RabbitMQ - CLI tool fails to authenticate with the server
  10. 数据库的基本操作习题
  11. 【告别小白】什么是标志性语言?
  12. (附源码)记账微信小程序 毕业设计180815
  13. 2023元旦倒计时代码
  14. 关于DBA的一些学习(一)
  15. 钟汉良日记:多看电视剧也可以提升写作能力
  16. 将Edgex网关接入Thingsboard物联网平台
  17. 新世纪福音战士剧场版破
  18. 数字 IC 技能拓展(14)基于 C 程序的 FFT 设计
  19. Android专用Log开源项目——KLog - 泡在网上的日子
  20. 软件KEIL串口应用-- printf调试

热门文章

  1. Kali安装peda
  2. K:括号分隔符匹配问题
  3. Pandas时间序列数据处理和datetime模块详细教程
  4. Win8/10的UI风格——Metro UI
  5. TYLER ADAMS BRADBERRY :不想让自己失望,就应该做好这三件事
  6. semantic ui html5,Semantic UI :安装 Semantic UI
  7. semantic.css,PC端框架—semantic ui
  8. 目标检测系列--YOLO V4
  9. PHP利用CURL_MULTI实现多线程爆破
  10. 迅为IMX6开发板Buildroot文件系统4G拨号上网工具测试