CMDB
1. Agent方式(适用于多台机器)
API:Django接收数据并入库
程序:放置在每台服务器
![](https://images2017.cnblogs.com/blog/1123318/201707/1123318-20170726193031671-333445894.png)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
服务端(api) from django.shortcuts import render,HttpResponse def asset(request): if request.method == "POST": print(request.POST) # 写入到数据 return HttpResponse('1002') else: return HttpResponse('姿势不对')
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
客户端(agent) import subprocess v1 = subprocess.getoutput('ipconfig') value1 = v1[20:30] v2 = subprocess.getoutput('dir') value2 = v2[0:5] # 连接api url = "http://127.0.0.1:8000/asset.html" import requests response = requests.post(url,data={'k1':value1,'k2':value2}) print(response.text) #结束api返回的值
2、paramiko SSH类(适用于少量的机器)
API:Django接收数据并入库
程序:放在中控机
![](https://images2017.cnblogs.com/blog/1123318/201707/1123318-20170726193212687-1968870002.png)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='192.168.203.135', port=22, username='maeve', password='qiyue318') # 执行命令,继续写入放入stdin,内容放入stdout,错误信息放入stderr stdin, stdout, stderr = ssh.exec_command('ls') # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close() value = result[0:10] print(value) url = "http://127.0.0.1:8000/asset.html" import requests response = requests.post(url,data={'k1':value,'k2':value}) print(response.text)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
服务端(api)
from django.shortcuts import render,HttpResponse
def asset(request):
if request.method == "POST":
print(request.POST)
# 写入到数据
return HttpResponse('1002')
else:
return HttpResponse('姿势不对')
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
saltstack hostname 问题记录解决 1、删除minion-id和pki目录 cd /etc/salt rm -rf minion_id pki/ 2、修改/etc/sysconfig/Network文件 vim /etc/sysconfig/network HOSTNAME=Admin2-saltstack.littlebee.com 3、保存退出 登出系统重新进入 4、重启salt-minion服务 service salt-minion start 5.在master端把新的key加入进去 授权: salt-key -L 查看授权连接 salt-key -A 给所有的还未授权的连接授权
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CentOS7 安装 yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm -y yum install salt-master -y yum install salt-minion -y CentOS6 安装 yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm -y yum install salt-master -y
saltstack
![](https://images2017.cnblogs.com/blog/1123318/201707/1123318-20170726193307515-1399119858.png)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
master yum install salt-master cd etc/salt/ 下面的master vim etc/salt/master interface:配置自己的ip service salt-master start 启动服务 授权: salt-key -L 查看授权连接 salt-key -A 给所有的还未授权的连接授权 在master上执行: salt "*" cmd.run "ifconfig" #所有授权的主机都执行这条命令 subprocess getoutput("salt "*" cmd.run "ifconfig" ") salve yum install salt-minion cd etc/salt/ 下面的minion vim etc/salt/minion master: 配置master的ip service salt-minion start 启动服务 saltstack hostname 问题记录解决 1、删除minion-id和pki目录 cd /etc/salt rm -rf minion_id pki/ 2、修改/etc/sysconfig/Network文件 vim /etc/sysconfig/network HOSTNAME=Admin2-saltstack.littlebee.com 3、保存退出 登出系统重新进入 4、重启salt-minion服务 service salt-minion start 5.在master端把新的key加入进去 授权: salt-key -L 查看授权连接 salt-key -A 给所有的还未授权的连接授权
puppet
![](https://images2017.cnblogs.com/blog/1123318/201710/1123318-20171013114428871-287929864.png)