python 资产管理

python 资产管理

一、Agent 方式

1.这个方法的优点:使用简单,速度快,适合服务器较多场景使用,缺点:服务器比较占资源,性能会变低。

2.使用Agent的前提条件是客户端(服务器)特别多的时候使用这种方法。

3.Agent方法原理是在每一台服务器上部署python脚本代码(拷贝到服务器),然后再从每一台服务器中获取硬件信息
4.每一个客户端都会把数据发送给api然后再通过api把每个服务器的信息发送个数据库

 

Agent 每一个客户端执行的 

import subprocess
import requests
url="http://127.0.0.1:8000/asset.html"
# 设置一个url,也就是api的地址
value1= subprocess.getoutput(‘ipconfig‘)
# 通过subprocess.getoutput获取括号内的命令执行后转成的字符串
value2= subprocess.getoutput(‘dir‘)
# 通过subprocess.getoutput获取括号内的命令执行后转成的字符串
response=requests.post(url,data={‘k1‘:value1,‘k2‘:value2})
# 通过requests模块以post请求携带字典内容发送到url中,在api端我们设置了返回值,所以当前有一个接收的值
print(response.text)
# 打印接收参数的内容

  

API

from django.shortcuts import render,HttpResponse

# Create your views here.

def asset(request):
    if request.method==‘POST‘:
        print(request.POST.get(‘a‘))
        print(1)
        return HttpResponse(‘收到了‘)
    else:
        return HttpResponse(‘没有收到‘)

二、SSH类 paramiko

1.优点:无agent,每个服务器不需要进行全部脚本部署,缺点:因为需要远程连接,使用网络会有传输慢弊端2.paramiko 管理模式是通过一个中控主机远程连接到多台服务器一种管理模式
3.paramiko 的使用条件是服务比较少的时候4.paramiko 原理通过中控机获取每台服务器的信息,然后返回给api,在由api提交给数据库

ssh中控主机的代码

import paramikossh=paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接服务器ssh.connect(hostname=‘192.168.227.146‘,port=22,username=‘root‘,password=‘123456‘)

stdin,stdout,stderr = ssh.exec_command(‘ifconfig‘)# 执行命令result = stdout.read()# 获取命令结果

ssh.close()# 关闭连接

print(result)url="http://127.0.0.1:8000/asset.html"# 设置一个url,也就是api的地址response=requests.post(url,data={‘k1‘:‘value1‘,‘k2‘:‘value2‘})# 通过requests模块以post请求携带字典内容发送到url中,在api端我们设置了返回值,所以当前有一个接收的值print(response.text)# 打印接收参数的内容

三、saltstack安装与配置

1.当下最火软件,大部分公司都在使用中
saltstack(Python开发)安装与配置

安装saltstack (父机)
yum install salt-master - y

安装完成后进行文件配置
vim /etc/salt/master

找到master 192.168.227.144    这个地址是服务端本机的地址

安装完成并配置完文件后启动客户端
service salt- master start

安装saltstack(子机)
yum install salt-minion - y

在客户端的编辑器中修改(vim /etc/salt/minion)
找到master 192.168.227.144   这个地址是服务端的地址
或
    master:
        - 10.211.55.4
        - 10.211.55.5
    random_master: True

id: c2.salt.com                    # 客户端在salt-master中显示的唯一ID

安装完成并配置完文件后启动服务端

service salt-minion start

需要注意:在服务端和客户端都要把防火墙关闭,不然就不能接受到访问

saltstack(Python开发)授权

salt-key -L                    # 查看已授权和未授权的slave
salt-key -a  salve_id      # 接受指定id的salve
salt-key -r  salve_id      # 拒绝指定id的salve
salt-key -d  salve_id      # 删除指定id的salve

在客户端和服务端的配置文件都没有问题后,能够通讯后就查看授权
 

授权

在master中通过python访问api进行数据传输

#!/usr/bin/python
#conding:utf8
#import salt.client,requests
#local = salt.client.LocalClient()
#result = local.cmd(‘*‘,‘cmd.run‘,[‘ifconfig‘])
#url=‘192.168.11.25‘
#requests.post(url,result)

import subprocess,requests
v=subprocess.getoutput(‘salt "*" cmd.run "ifconfig"‘)
url =‘http://192.168.11.25:8000‘
requests.post(url,data={‘a‘:v})

在中控机上运行python脚本把获取的数据传输到api上然后再通过api提交的数据库

上边方法中所提到的api代码

from django.shortcuts import render,HttpResponse

# Create your views here.

def asset(request):
    if request.method==‘POST‘:
        # print(request.POST.get(‘a‘))
        print(1)
        return HttpResponse(‘收到了‘)
    else:
        return HttpResponse(‘没有收到‘)

 

四、puppet(ruby)

1.老公司一般使用这种方式
puppet 原理每个服务器会定时回向api发送自己机器相关数据(定时默认为30分钟)然后通过api向数据库提交数据

  

时间: 2025-01-13 19:29:32

python 资产管理的相关文章

Python [5] IT资产管理

上篇博客中已经介绍过Django的安装和基本使用,如果大家还有不明白请参考我的博客或者留言 Python [4] Django的安装和基础运行环境简介 http://467754239.blog.51cto.com/4878013/1613612 这篇博客和大家聊聊Python结合Django实现IT资产管理 基础环境: 系统版本:CentOS 6.4 64bit Python版本:2.6 Django版本:1.6.5 ip地址:192.168.1.210 一.安装Django环境 # rpm 

Python [6] IT资产管理(下)

上一篇博客聊到以下内容 1.安装django 2.部署工程和应用 3.修改.添加工程和应用配置文件并能成功url访问 4.Python脚本采集主机信息 5.通过post方式传送搜集的信息到服务器端 6.主机分组 如需更详细的了解,请参考http://467754239.blog.51cto.com/4878013/1616551 在这篇博客中,我们针对上篇博客中的重点部分做阐述,如何多钟方式实现第5步: 5.通过post方式传送搜集的信息到服务器端 一.Python序列化 1.序列化是什么 序列

python day18

  Web框架     请求周期     处理用户请求       放置HTML模版        操作数据库     Controllers         Views               Modals           Views             Template            Modals         MVC/MTV             Django => MTV        Django            1.安装         pip3 ins

python笔记day2

作用域 只要内存中存在就可以使用,在有函数栈的情况下,还需要加一个条件. name = {'name1':'Carrick','name2','Tina'} for item in name: print item  -->仅仅是打印,没有将变量指向item内存空间 print item -->无法打印,没有变量指向item的内存空间,print不知道该打印哪个内存空间 name = {'name1':'Carrick','name2','Tina'} for item in name: a

Python之路-(js正则表达式、前端页面的模板套用、Django基础)

js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m 表示多行匹配 登录注册验证: test: 判断字符串是否符合规定的规则 rep = /\d+/;   (定义规则) rep.test('')   (引号里面必须包含字母和数字才返回true,否则为false) rep = /^\d+$/; (只有是纯数字时候才返回true,否则是false) exe

Python开发【前端】:jQuery

jQuery简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口:

day1-Python高级自动化开发课程:模块一Python基础

1.开课介绍 Alex LI (金角大王) CrazyEye堡垒机.Madking资产管理.TriAquae主机管理开源软件作者 老男孩教育Python教学总监,51CTO2016年十大最受学员喜欢的讲师之一 曾就职于松下.公安部.飞信.中金公司.华尔街英语.Nokia中国.Advent软件.汽车之家 热爱Coding.旅游.电影.音乐.妹子 2.Python长的领域: 1)web开发  Django\Pyramid\Tornado\Bottle\Flask\WebPy 2)网络编程 Twist

Python之路,Day19 - CMDB、CMDB、CMDB

Python之路,Day19 - CMDB.CMDB.CMDB 本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OGC(

python学习笔记(开课介绍1)

讲师简介:Alex Li(金角大王) crazyeye堡垒机.madking资产管理.TriAquae主机管理开源软件作者. 老男孩教育python教学总监,51cto 2016十大最受学员喜欢讲师之一 就职经历:略 其中中金公司.诺基亚公司的介绍,让人觉得,难怪实业如此没落:金融行业和互联网行业太挣钱,吸引走了大量高级人才. 其他讲师的信息: 银角大王:擅长c#.python.PHP等,博客地址:http://www.cnblogs.com/wupeiqi 陈sir:<智慧运维>倡导者,&l