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 paramiko
ssh=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向数据库提交数据

  

 

转载于:https://www.cnblogs.com/guobaoyuan/p/7242305.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# CMDB and ansible ui ## 安装参考 - python2.7 - 使用sqlite需要初始化数据库 - 如使用mysql需要创建CMDB库,映射,修改setting数据库信息 - 安装步骤查看help/install - 初次使用需要注册用户(之后会加入用户权限控制) ## 资产管理 ### 1、添加主机 **单台主机添加,需要填写主机的全部信息,一次只能添加一台** ![](http://i.imgur.com/QoPa8ze.png) **批量添加主机,切记不用填写主机的全部信息,只需写ip 主机名即可,写多会报错(下个版本会增加判断用户的输入)** ![](http://i.imgur.com/dr4SPXC.png) ![](http://i.imgur.com/jtXDNbv.png) **提交后,会提示提交成功的有几个,如果重复多次提交,就会提示有几台服务器已存在** ### 2、主机列表 **资产管理==>>主机列表** ![](http://i.imgur.com/CB5JFWZ.png) 1. **更新:点击绿色更新按钮,然后鼠标放到主机名的位置,就会显示服务器的基本信息,第一次不点击更新不会显示,每次点击都会重新获取,如服务器可变化的参数:内存等等,如下图:** ![](http://i.imgur.com/jTpGORn.png) 2. **编辑:点击编辑按钮,可以修改服务器的信息,这里以数据库的ID为主键,所以IP也可以修改,可以理解为原来的删除又重新创建,但是主键ID不改变,如下图:** ![](http://i.imgur.com/FI3tSih.png) 3. **删除:点击删除按钮,此服务器就会被删除,需要注意的是,在密钥管理菜单中也有主机列表,那个主机列表的删除仅仅是删除服务器上的所有公钥,不会删除服务器,如下图:** ![](http://i.imgur.com/oKIRIlk.png) ## 密钥管理 ### 1、密钥用户 **以用户为入口,可以增加密钥用户,修改用户公钥,对某用户授权其可以登陆的服务器** **增加密钥用户:填写用户名,公钥(公钥格式要填写正确,否则无法推送)** ![](http://i.imgur.com/B7mA92i.png) ![](http://i.imgur.com/CalhJM3.png) 1. **编辑:点击编辑,弹出一个主机列表,可以对主机列表的服务器给此用户授权,主机列表的服务器就是资产管理中添加的主机,如下图:** ![](http://i.imgur.com/BGMqy1d.png) **添加成功后,鼠标点击可登陆的服务器数即能显示此用户可以登陆的服务器,如果不看,需要再点击一次,多台服务器的话都可以点出来,一起看,如下图:** ![](http://i.imgur.com/tctIbIG.png) 2. **删除:删除会删除此用户的所有的授权信息,并把此用户的可登陆的服务器的公钥都删除,但不会删除用户本身,之后的版本会加入离职人员,删除授权信息加用户本身,如下图:** ![](http://i.imgur.com/lzB8715.png) ![](http://i.imgur.com/04kfMAi.png) 3. **更新公钥:可以对此用户的公钥修改更新,如下图:** ![](http://i.imgur.com/mC0McnZ.png) ### 2、主机列表 **以主机为入口,可以对服务器进行用户授权,删除权限** ![](http://i.imgur.com/2vAdfgu.png) 1. **编辑:编辑显示用户列表,表示对此服务器可以允许哪些用户登录,如下图:** ![](http://i.imgur.com/5zbhdos.png) **授权成功后,点击允许登陆的用户,即可显示此服务器允 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值