cmdb抓取服务信息的方式有很多种,可以使用自动化工具saltstack、ansible、puppet,或者使用其它模块直接ssh远程连接抓取服务器信息。这里记录一下用ansible的API接口调用setup模块抓取。
实验使用两台机器
IP
系统
软件
192.168.93.137
centos6.5_x64
ansible 1.9.4
192.168.93.128
centos6.5_x64
无
两台机器建立好ssh信任后在192.168.93.137上执行
ansible 192.168.93.128 -m setup
将其封装成函数保存为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的服务器信息
运维平台展示服务器信息
按钮的id值最后一位就是192.168.93.128在数据库表中的id
(部署新java程序,程序 错,需copy的一个包)——java使用siger 获取服务器硬件信息
mcat-siger.sh 查看是否安装siger rsync -aPuv /usr/lib64/libsigar-amd64-linux.so $i:/usr/lib64/ java使用siger …
用python获取服务器硬件信息[转]
#!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(‘ …
android获取当前软件版本 和版本 名称
/** * 获取本地软件版本 */ public static int getLocalVersion(C …
dotnet 通过 WMI 获取系统安装软件
C# 获取操作系统相关的信息
C#获取当前主机硬件信息
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T …
Android开发之获取手机SIM卡信息
TelephonyManager是一个管理手机通话状态.电话 络信息的服务类.该类提供了大量的getXxx(),方法获取电话 络的相关信息. TelephonyManager类概述: 可用于訪问有关设 …
ubuntu下升级特定软件与查看软件版本信息
ubuntu 升级软件: sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 ubu …
调用手机在线API获取手机 码归属地信息
手机在线(www.showji.com)始创于2001年,发展至今已拥有国内最准确. 段容量最大的手机 码归属地数据库系统, 目前 段容量将近33万条,每月保持两次以上规模数据更新,合作伙伴包括:百度 …
随机推荐
WebSocket异常 通常每个套接字地址(协议/ 络地址/端口)只允许使用一次
websocket的实例:http://blog.csdn.net/for_cxc/article/details/51500185 问题: 新建一个连接通信没有问题,但是如果关闭再建立就会 错:通常 …
widows和Linux java加密注意事项
/** * @Title: EncrypAES.java * @Package com.weidinghuo.payment.util * @Description: TODO(用一句话描述该文件做什 …
使用ssh连接gitHub
github每次pull/push代码时要求推送代码的用户是合法的,所以每次推送时候都要输入账 密码用以验证用户是否为合法用户,而ssh是一种安全的传输模式,可以代替用户的这一”输入账 密码 …
(原)String类两种实例化的区别
String有两种实例化方式,一种是通过直接赋值的方式,另外一种是使用标准的new调用构造方法完成实例化. public class StringDemo { public static void m …
为 Macbook 安装 enca 命令
enca 是个查看.转换编码的开源软件, 地址: http://dl.cihar.com/enca/ 安装的步骤比安装 wget 简单多了: 1.用 wget 获取最新的enca 的 tar.gz 的 …
c#中的委托和事件(转)
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 …
初始Hibernate框架技术
hibernate: 定义:ORM:Object Relational Mapping 对象 关系 映射 使用hibernate时几个必要的: 1.实体类 2.映射文件(类 -数据库表,属性-字段) …
android listview 加载图片错乱(错位)
写道 今天晚上一个朋友介绍我看了一篇文章,也是解决android中listview在加载图片错位的问题,看了之后,感觉写的很好,自己也遇到这个问题,但是又不知道从何下手,看到这篇文章后,我的问题 …
agile学习
https://www.flickr.com/photos/codingthearchitecture/sets/
SUSE linux升级perl及openssl
一.perl安装: 1.下载并解压软件:tar zxvf perl-5.24.0.tar.gz 2.运行./configure.gnu -help查看帮助,运行./configure.gnu -des …
相关资源:vissim电子仿真软件-嵌入式文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!