python资产管理系统_开源cmdb来啦 开源资产管理系统

开源cmdb来啦 开源资产管理系统

2018-11-22

一直享受广大互联网朋友的帮助 也一直在想自己能做点什么呢 看了一下互联网上没什么开源的cmdb系统 今天就给大家分享一个吧 希望能帮助到您特点:热添加删除表 自定义字段类型REST前后端分离架构 开放所有API接口强大的搜索查找能力(后端使用elasticsearch存储数据 ) 可以配合kibana使用支持查看数据修改记录支持LDAP统一认证接入容器快速部署设计上参考了饿了么内部的cmdb系统先来段演示视频吧在线演示:http://120.79.60.130/#/user/login 用户名 admin 密码 cmdbcmdb 请不要修改后端源码:https://github.com/open-cmdb/cmdb前端源码:https://github.com/open-cmdb/cmdb-web容器名 mingmingtang/cmdb 运行所需的环境变量请看最下面可能还存在一些未知的BUG 欢迎到github上提issue用到的技术前端:Vue.js + Element-UI + Vue Router + Vuex + Axios + Webpack后端:Python3 + Django + Django REST framework + Elasticsearch + Mysql + LDAP + uwsgi + Nginx + Docker微信交流群:打开图片链接扫描j加入https://pan.baidu.com/s/1lr4lgjAyoHSSiL0tnyViDg#list/path=%2F直接放二维码会被知乎替换成识别后的链接有感兴趣的朋友可以联系我一起迭代安装说明1、此教程为快速安装指南,不涉及到高可用和较高的安全2、为方便部署已将主程序打包成docker镜像3、系统是支持高可用部署的 有兴趣可以自己尝试一下 这里不细说环境准备1、一台可以访问互联网的centos 7.x服务器 内存最好 >= 4G 并创建一个具有sudo权限的普通用户2、一个cmdb专用的邮箱 用于发送密码和验证码 如果使用163、qq等第三方邮箱请在设置里面打开POP3/SMTP/IMAP服务并生成授权码一键安装#!/usr/bin/env python2# -*- coding: utf-8 -*-import osimport subprocessimport argparseimport timedef base(cmd): if subprocess.call(cmd, shell=True): raise Exception("{} 执行失败".format(cmd))def install_docker(): base("sudo yum install -y yum-utils device-mapper-persistent-data lvm2") base("sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo") base("sudo yum makecache fast") base("sudo yum -y install docker-ce") if(not os.path.exists("/etc/docker")): base("mkdir -p /etc/docker") with open("/etc/docker/daemon.json", "w") as f: f.write("{\n "registry-mirrors": ["https://9f4w4icn.mirror.aliyuncs.com"] \n}") base("sudo systemctl daemon-reload") base("sudo systemctl start docker")def create_dir(): if (not os.path.exists("/var/cmdb/db")): base("sudo mkdir -p /var/cmdb/db") if (not os.path.exists("/var/cmdb/es")): base("sudo mkdir -p /var/cmdb/es")def run_db_container(): base("sudo docker run --name cmdb-db -d -e MYSQL_ROOT_PASSWORD=cmdbcmdb -v /var/cmdb/db:/var/lib/mysql mysql:5.7.21")def run_es_container(): base("sudo docker run --name cmdb-es -d -v /var/cmdb/es:/usr/share/elasticsearch/data elasticsearch:5.6.8")def init_db(): base("sudo docker run -it --rm --link cmdb-db -e DB_HOST=cmdb-db -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=cmdbcmdb -e DB_NAME=cmdb mingmingtang/cmdb init-db")def run_cmdb_container(site_url, email_host, email_port, email_username, email_password): base("sudo docker run -d --name cmdb --link cmdb-db --link cmdb-es -p 80:80 -e SITE_URL={} -e DB_HOST=cmdb-db -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=cmdbcmdb -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=cmdb-es -e EMAIL_HOST={} -e EMAIL_PORT={} -e EMAIL_USERNAME={} -e EMAIL_PASSWORD={} mingmingtang/cmdb start".format(site_url, email_host, email_port, email_username, email_password))def input_para(help): value = "" while(not value): value = raw_input(help) return valueif __name__ == "__main__": if(os.geteuid() != 0): raise("请以root权限运行") # parser = argparse.ArgumentParser() # parser.add_argument("--siteurl", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1") # parser.add_argument("--emailhost", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1") # parser.add_argument("--emailport", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1") # parser.add_argument("--emailusername", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1") # parser.add_argument("--emailpassword", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1") # args = parser.parse_args() # SITE_URL = args.SITE_URL site_url = input_para("请输入网站域名或IP(http://cmdb.xxx.com):") email_host = input_para("网站邮箱服务器(smtp.163.com):") email_port = input_para("邮箱服务器端口(25):") email_username = input_para("邮箱用户名(cmdb@163.com):") email_password = input_para("邮箱密码|独立授权码(P@ssw0rd):") print("开始安装docker") install_docker() print("开始创建目录") create_dir() print("开始运行mysql容器") run_db_container() print("开始运行elasticsearch容器") run_es_container() print("等待数据库启动完成(10s)") time.sleep(10) print("开始初始化数据库") init_db() print("开始运行cmdb") run_cmdb_container(site_url, email_host, email_port, email_username, email_password) print("完成!")创建文件install_cmdb.py 并将以上代码拷贝文件执行sudo python install_cmdb.py输入网站地址和邮箱信息开始安装如果一切顺利一会儿后您将看到安装完成 如果失败了可能就要调整一些系统参数并删除已运行的容器重新执行了sudo docker ps执行以上命令您将看到三个容器虽然都是以容器运行的 但数据会保存到宿主机的/var/cmdb/目录下 如果容器退出数据并不会丢失 只需要重启对应的容器即可恢复正常传统的方式安装安装mysql1、下载mysql社区版镜像源rpm安装包 下载链接:https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm2、安装下载的镜像源sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm3、安装mysql社区版并启动sudo yum -y install mysql-community-serversudo systemctl start mysqld4、获取mysql初始密码grep "temporary password" /var/log/mysqld.log如上图所示我的mysql初始化密码为&RBDoHfPp0!t5、初始化mysql(包含设置root密码)mysql_secure_installationmysql 5.7对密码复杂性有要求的 所以需要设置一个比较复杂的密码才能继续设置好后一路按 y 完成初始化5、连接mysqlmysql -u root -p输入刚刚设置的密码进入如果你也看到了以上画面即mysql安装成功安装Elasticsearch1、安装jdksudo yum -y install java-1.8.0-openjdk2、下载elasticsearch tar包https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz3、修改内核参数sudo sh -c "echo vm.max_map_count=262144 >> /etc/sysctl.conf"sudo sysctl -p3、解压elasticsearch-6.2.2.tar.gz并将所有者改为当前用户sudo tar -zxvf elasticsearch-6.2.2.tar.gzsudo chown -R $USER:$USER elasticsearch-6.2.24、运行elasticsearch./elasticsearch-6.2.2/bin/elasticsearch -d5、验证安装是否成功curl localhost:9200如果你看到的和上图一样即安装成功安装docker社区版(docker-ce)由于centos自带yum源docker版本较老,所以这里我们从官网给的yum源部署1、前置安装sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm22、安装docker-ce yum源sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo3、安装docker-ce并将当前用户加入docker用户组sudo yum install docker-cesudo usermod -a -G docker $USER这里需要退出linux回话重新登录一下权限才会生效4、启动docker并验证sudo systemctl start dockerdocker ps部署主程序初始化数据库docker run -it --name cmdb-init-db --rm -e DB_HOST=数据库地址 -e DB_PORT=数据库端口 -e DB_USERNAME=数据库用户名 -e DB_PASSWORD=数据库密码 -e DB_NAME=cmdb mingmingtang/cmdb init-db示例:docker run -it --name cmdb-init-db --rm DB_HOST=172.16.0.11 -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=******** -e DB_NAME=cmdb mingmingtang/cmdb init-db运行cmdbdocker run -d --name cmdb -p 80:80 -e SITE_URL=网站地址 -e DB_HOST=数据库地址 -e DB_PORT=数据库端口 -e DB_USERNAME=数据库用户名 -e DB_PASSWORD=数据库密码 -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=ES地址,多个用英文逗号隔开,格式http://xx.xx.xx.xx:9200 -e EMAIL_HOST=邮箱smtp地址 -e EMAIL_PORT=邮箱smtp端口 -e EMAIL_USERNAME=发件箱 -e EMAIL_PASSWORD=邮箱密码 mingmingtang/cmdb start示例:docker run -d --name cmdb -p 80:80 -e SITE_URL=http://120.79.60.130 -e DB_HOST=172.16.0.11 -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=******** -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9200 -e EMAIL_HOST=smtp.163.com -e EMAIL_PORT=25 -eEMAIL_USERNAME=mmt_cmdb@163.com -e EMAIL_PASSWORD=******** mingmingtang/cmdb start部署完成嘿 哥们儿 忘了点赞吧

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python-CMDB资产管理系统项目是基于Python编程语言开发的一种用于管理企业资产的信息系统。CMDB(Configuration Management Database)是一种用于记录和管理组织内所有硬件和软件资源的数据库。该项目的目标是通过实现一个功能强大且易于使用的资产管理系统,帮助企业更好地管理和维护其资产库。 该系统具备以下特点和功能: 1. 资产信息管理:可以录入和管理所有的企业资产信息,包括硬件设备、软件和网络设备等。用户可以根据自己的需求添加、修改和删除资产信息,并可以对资产进行分类和标记,便于查找和管理。 2. 资产追踪和监控:系统可以实时追踪和监控所有资产的状态和位置,帮助用户快速定位和管理资产。例如,用户可以查询特定设备的位置、使用状况和维护历史等信息。 3. 资产维护计划:系统可以为每个资产设置维护计划,包括定期检查、保养和维修等。用户可以根据资产的使用情况和维护需求制定和调整维护计划,以确保资产的正常运行。 4. 报表和统计分析:系统可以生成各种报表和统计分析图表,帮助用户了解和掌握资产的整体情况和趋势。用户可以根据报表和图表的结果做出决策和调整管理策略。 5. 安全和权限管理:系统支持用户权限管理,可以设置不同用户的访问权限,保护重要数据和操作不受未经授权的访问。 Python-CMDB资产管理系统项目使用Python语言开发,具有开源、跨平台和易于扩展等优势。同时,Python拥有丰富强大的库和框架,可以快速开发和调试系统。通过该项目,企业可以有效地管理和维护其资产,提高工作效率和资产利用率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值