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向数据库提交数据
python 资产管理的更多相关文章
- Python 【第十一章】 Django模版
1.直接传值 urls.py """mysite URL Configuration The `urlpatterns` list routes URLs to view ...
- Python开发【前端】:jQuery
jQuery简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是&qu ...
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- Python Django之路由系统
1.初识路由系统 路由系统是用户发请求到URL,然后URL根据路由系统重新指向到函数名的一个对应关系 2.创建project和app django-admin startproject mysite ...
- day3-Python集合、函数、文件操作,python包的概念
本节大纲: 1 python程序由包(package).模块(module)和函数组成.包是由一系列模块组成的集合.模块是处理某一类问题的函数和类的集合. 2 包就是一个完成特定任务的工具箱. 3 包 ...
- python【第十八篇】Django基础
1.什么是Django? Django是一个Python写成的开源Web应用框架.python流行的web框架还有很多,如tornado.flask.web.py等.django采用了MVC的框架模式 ...
- Python 学习 第十篇 CMDB用户权限管理
Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...
- Python自动化运维之27、Django(一)
一.概述 1.什么是框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单说就是使用别人搭好的舞台,你来做表演. 2.常 ...
随机推荐
- mount挂载与umount卸载
mount挂载与umount卸载 author:headsen chen 2017-10-23 15:13:51 个人原创,转载请注明作者,否则依法追究法律责任 mount:挂载: eg ...
- linux学习之路--(三)文件系统
一.文件系统 rootfs:根文件系统 FHS:linux /boot:系统启动相关的文件,如内核.initrd,grub(bootloader) /dev:设备文件:不存储内容,就是个访问入口 块设 ...
- canvas小球
小球碰撞效果是采用面向对象的方式写的,在小球的构造器里包含了小球的属性值,大小,移动速度,半径大小以及颜色. 在小球的原型方法里,添加了小球运动的方法,当小球碰撞到屏幕边界的时候进行反弹. 小球是 ...
- js中, 用变量或对象作为if或其他条件的表达式
源: 因为js是弱语言, 就体现在js的变量是弱类型的, 在js中所有变量类型声明都用var, 而在其他强类型语言中,如java/c,必须有强制类型转换和类型检查才能编译通过等, 但是: 弱语言也有优 ...
- JS面向对象与面向过程
前言 面向对象编程: 就是将你的需求抽象成一个对象,然后针对这个对象分析其特征(属性)与动作(方法)--这个对象就称之为类 面向过程编程: 特点:封装,就是将你需要的功能放在一个对象里面 ------ ...
- 【treeview】 基于jQuery的简单树形插件
[treeview] 效果图: 前几天想把后台的目录结构通过树形插件的方法反映到前端来,在网上搜了半天只找到了这个treeview,虽然不是很好看,不过还是够用的..用treeview的前提是要有jq ...
- 【Python】 配置文件相对路径&软件自动执行的工作目录
今天对监控脚本做了一些变更,然后突然发现监控全部都失效了..排查了半天问题仍然不知所踪.最终发现居然是一个踩过好几次的老坑.. 就是脚本内写的配置文件为了调试方便写成了相对路径,但是在上线时没有意识到 ...
- 去除input的自动填充色
input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px #ffffff inset !important; }
- scrapy crawl 源码修改 爬虫多开
import os from scrapy.commands import ScrapyCommand from scrapy.utils.conf import arglist_to_dict fr ...
- Beta冲刺Day1
项目进展 李明皇 今天解决的进度 点击首页list相应条目将信息传到详情页 明天安排 优化信息详情页布局 林翔 今天解决的进度 前后端连接成功 明天安排 开始微信前端+数据库写入 孙敏铭 今天解决的进 ...