cmdb资产采集功能实现

cmdb资产采集功能实现可以有三种方式:

一、Agent方式

 1 import subprocess
 2 import requests
 3 # pip install requests
 4 
 5 # ################ 采集数据 ########################
 6 # result = subprocess.getoutput('ipconfig')
 7 # result正则处理获取想要数据
 8 
 9 # 整理资产信息
10 data_dict = {
11     'nic':{},
12     'disk':{},
13     'mem':{}
14 }
15 
16 # ################ 发送数据 ########################
17 requets.post('http://www.127.0.0.1:8000/assets.html',data=data_dict)
Agent方式

二、SSH方式

此方法是基于 paramiko 模块,通过  pip3 install paramiko  安装

 1 import requests
 2 
 3 # ######################### 获取今日未采集主机名 #######################
 4 
 5 
 6 result = requets.get('http://www.127.0.0.1:8000/assets.html',data=data_dict)
 7 result = ['c1.com','c2.com']
 8 
 9 
10 # ######################### 通过paramiko连接远程服务器,执行命令 #######################
11 # 创建SSH对象
12 ssh = paramiko.SSHClient()
13 # 允许连接不在know_hosts文件中的主机
14 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
15 # 连接服务器
16 sh.connect(hostname='192.168.14.26',port=22,username='root',password='root')
17 
18 # 执行命令
19 stdin, stdout, stderr = ssh.exec_command('ipconfig')
20 
21 # 获取命令结果
22 result = stdout.read()
23 
24 # 关闭连接
25 ssh.close()
View Code

三、SaltStack

官网地址:http://docs.saltstack.cn

 1 # 1. 安装saltstack
 2 #       rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub
 3 #
 4 #
 5 """
 6         Master: yum install salt-master
 7        Master准备:
 8             a. 配置文件,监听本机IP
 9                 vim /etc/salt/master
10                 interface: 本机IP地址
11             b. 启动master
12                 /etc/init.d/salt-master start
13 
14 
15         Slave:  yum install salt-minion
16         Slave准备:
17             a. 配置文件,连接那个master
18                 vim /etc/salt/minion
19                 master: 远程master地址
20             b. 启动slave
21                 /etc/init.d/salt-minion start
22 
23 2. 创建关系
24     查看
25     Master:salt-key -L
26         Accepted Keys:
27         Denied Keys:
28         Unaccepted Keys:
29             c1.com
30             c2.com
31             c3.com
32         Rejected Keys:
33     接受
34     Master:salt-key -a c1.com
35         Accepted Keys:
36             c1.com
37             c2.com
38         Denied Keys:
39         Unaccepted Keys:
40             c3.com
41         Rejected Keys:
42 
43 
44 3. 执行命令
45     master:
46         salt 'c1.com' cmd.run  'ifconfig'
47 
48     import salt.client
49     local = salt.client.LocalClient()
50     result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])
51 
52 """
53 # ################## 获取今日未采集主机名 ##################
54 #result = requests.get('http://www.127.0.0.1:8000/assets.html')
55 # result = ['c1.com','c2.com']
56 
57 
58 # ################## 远程服务器执行命令 ##################
59 # import subprocess
60 # result = subprocess.getoutput("salt 'c1.com' cmd.run  'ifconfig'")
61 #
62 # import salt.client
63 # local = salt.client.LocalClient()
64 # result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])
65 
66 
67 # ##################  发送数据 ##################
68 # requests.post('http://www.127.0.0.1:8000/assets.html',data=data_dict)
SlatStack

 

posted @ 2019-04-26 13:35  渣爷  阅读(110)  评论(0)    收藏  举报