ansible服务器信息收集,资产管理 cmdb之ansible 获取服务器硬件、软件等信息(示例代码)…

cmdb抓取服务信息的方式有很多种,可以使用自动化工具saltstack、ansible、puppet,或者使用其它模块直接ssh远程连接抓取服务器信息。这里记录一下用ansible的API接口调用setup模块抓取。

实验使用两台机器IP系统软件

192.168.93.137centos6.5_x64ansible 1.9.4

192.168.93.128centos6.5_x64无

两台机器建立好ssh信任后在192.168.93.137上执行ansible 192.168.93.128 -m setup

96132c2552251ac08a3cc35d8839cfce.png

将其封装成函数保存为test.py,(此处封装借鉴的一位高手,可惜忘了博客地址)

里面的参数根据各自的系统可适当修改# -*- coding: UTF-8 -*-

import ansible.runner

def get_info(ip):

data = {}

runner = ansible.runner.Runner(module_name=‘setup‘, module_args=‘‘, pattern=‘all‘, forks=2)

datastructure = runner.run()

sn = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_product_serial‘]

host_name = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_hostname‘]

description = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_lsb‘][‘description‘]

ansible_machine = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_machine‘]

sysinfo = ‘%s %s‘ % (description, ansible_machine)

os_kernel = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_kernel‘]

cpu = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_processor‘][1]

cpu_count = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_processor_count‘]

cpu_cores = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_processor_cores‘]

mem = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_memtotal_mb‘]

ipadd_in = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_all_ipv4_addresses‘][0]

disk = datastructure[‘contacted‘][ip][‘ansible_facts‘][‘ansible_devices‘][‘sda‘][‘size‘]

# print sysinfo

data[‘sn‘] = sn

data[‘sysinfo‘] = sysinfo

data[‘cpu‘] = cpu

data[‘cpu_count‘] = cpu_count

data[‘cpu_cores‘] = cpu_cores

data[‘mem‘] = mem

data[‘disk‘] = disk

data[‘ipadd_in‘] = ipadd_in

data[‘os_kernel‘] = os_kernel

data[‘host_name‘] = host_name

return data

if __name__ == ‘__main__‘:

data = get_info(‘‘)

import pprint

pprint.pprint(data)

在192.168.93.137上执行test.py获取192.168.93.128的服务器信息

e5327932545c453ca79e1d20bb867ec3.png

运维平台展示服务器信息

2a22910c4338e35c480336635cec62b3.png

按钮的id值最后一位就是192.168.93.128在数据库表中的id号

8ee7ab2007c3db010d32a638954cbf0a.png

相关资源:vissim电子仿真软件-嵌入式文档类资源-CSDN文库

来源:Blair Long

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月3日
下一篇 2021年7月3日

相关推荐