一直享受广大互联网朋友的帮助 也一直在想自己能做点什么呢 看了一下互联网上没什么开源的cmdb系统 今天就给大家分享一个吧 希望能帮助到您

特点:

动态增删表 自定义字段类型

REST前后端分离架构 开放所有API接口

强大的搜索查找能力(后端使用elasticsearch存储数据 ) 可以配合kibana使用

支持查看数据修改记录

表级权限管理

容器快速部署

设计上参考了饿了么内部的cmdb系统

演示视频(V1版本)

https://www.zhihu.com/video/954146322522050560

在线演示 http://cmdb.xyz/#/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 (因为容器版的ES默认占用2G内存) 并创建一个具有sudo权限的普通用户

2、一个cmdb专用的邮箱 用于发送密码和验证码 如果使用163、qq等第三方邮箱请在设置里面打开POP3/SMTP/IMAP服务并生成授权码

一键安装

#!/usr/bin/env python2

创建文件install_cmdb.py 并将以上代码拷贝文件

执行

sudo python install_cmdb.py

输入网站地址和邮箱信息开始安装

如果一切顺利一会儿后您将看到安装完成 如果失败了可能就要调整一些系统参数并删除已运行的容器重新执行了

sudo docker ps

执行以上命令您将看到三个容器

虽然都是以容器运行的 但数据会保存到宿主机的/var/cmdb/目录下 如果容器退出数据并不会丢失 只需要重启对应的容器即可恢复正常

传统的方式安装 版本请尽量一致

安装mysql (5.7)

1、添加mysql 5.7社区镜像源

<<-'EOF'

2、安装mysql社区版并启动

sudo yum -y install mysql-community-server
sudo systemctl start mysqld

3、获取mysql初始密码

'temporary password' /var/log/mysqld.log

如上图所示我的mysql初始化密码为&RBDoHfPp0!t

4、初始化mysql(包含设置root密码)

mysql_secure_installation

mysql 5.7对密码复杂性有要求的 所以需要设置一个比较复杂的密码才能继续

设置好后一路按 y 完成初始化

5、连接mysql

mysql -u root -p

输入刚刚设置的密码进入

如果你也看到了以上画面即mysql安装成功

安装Elasticsearch 5.6.8

1、安装jdk

sudo yum -y install java-1.8.0-openjdk

2、下载elasticsearch tar包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.tar.gz

3、修改内核参数

"echo vm.max_map_count=262144 >> /etc/sysctl.conf"
sudo sysctl -p

3、解压elasticsearch-6.2.2.tar.gz并将所有者改为当前用户

sudo tar -zxvf elasticsearch-5.6.8.tar.gz
sudo chown -R $USER:$USER elasticsearch-5.6.8

4、运行elasticsearch

./elasticsearch-5.6.8/bin/elasticsearch -d

5、验证安装是否成功

curl http://localhost:9200

如果你看到的和上图一样即安装成功

安装docker社区版(docker-ce)

由于centos自带yum源docker版本较老,所以这里我们从官网给的yum源部署

1、前置安装

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2、安装docker-ce yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3、安装docker-ce并将当前用户加入docker用户组

sudo yum install docker-ce
sudo usermod -a -G docker $USER

这里需要退出linux回话重新登录一下权限才会生效

4、启动docker并验证

sudo systemctl start docker
docker ps

部署主程序

初始化数据库

docker run -it --name cmdb-init-db --rm -e ENV=PRO -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 -e DB_HOST=172.16.0.11 -e ENV=PRO -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=******** -e DB_NAME=cmdb mingmingtang/cmdb init-db

运行cmdb

docker run -d --name cmdb -p 80:80 -e ENV=PRO -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=邮箱密码 -e EMAIL_USE_SSL=<邮箱是否使用ssl> mingmingtang/cmdb start

示例:docker run -d --name cmdb -p 80:80 -e ENV=PRO -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 -e EMAIL_USERNAME=mmt_cmdb@163.com -e EMAIL_PASSWORD=******** -e EMAIL_USE_SSL=0 mingmingtang/cmdb start

部署完成

嘿 哥们儿 忘了点赞吧

开源资产管理系统_开源cmdb来啦 通用CMDB 开源资产管理系统相关推荐

  1. 日报管理系统_好车日报:通用电动车无线电池管理系统;8月皮卡增长39.8%

    1.福特全新品牌形象 福特汽车官网对外表示,福特将在2020北京国际车展上进行福特品牌形象焕新,并将为广大消费者呈现预示福特下一代设计语言的概念艺术装置,以及多款诠释福特"先锋创新 进无止境 ...

  2. 开源的定义_共享与自由与公共:开源的真正定义

    开源的定义 当您听到"开源"一词时,您认为这与诸如共享软件,免费软件或公共领域之类的术语同义吗? 如果是这样,你并不是孤独的. 在技​​术行业内外的许多人都认为这些术语是相同的. ...

  3. python是开源工具吗_微软最强 Python 自动化工具开源了!不用写一行代码

    1. 前言 最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python,它支持主流的浏览器,包含:Chrome.Firefox.Safari.Microsoft E ...

  4. 完全开源im框架_【行业资讯】移动端开源 IM 框架 MobileIMSDK v5.0 发布!

    一.更新内容简介 本次更新为主要版本更新,强势升级,可同时支持TCP.UDP两种协议,精心封装之下,实现一套API.两种协议同时并存.可能是市面上唯一同时支持UDP+TCP两种协议的同类IM框架. 二 ...

  5. linux开源视频播放器_什么定义了Linux的顶级开源音乐播放器?

    linux开源视频播放器 在我撰写此音乐专栏的两年左右的时间里,Linux发烧友的世界得到了发展. 出现了新的Linux发行版和开源音频播放器,旧的已经消失了,随着高质量的数字下载,新的和高质量的播放 ...

  6. 2017 开源软件排行_震撼2017年的十大开源法律故事

    2017 开源软件排行 像每年一样,法律问题在2017年是开源世界中的热门话题.虽然我们已经深入到今年第一季度,但回顾一下去年开源领域的顶级法律新闻仍然值得. 1. GitHub修改ToS 2017年 ...

  7. 开源的词法分析器_将意图分析器用于您的开源家庭自动化项目

    开源的词法分析器 在Mycroft开源语音助手的本系列的第1部分和第2部分中 ,我为学习如何创建技能奠定了基础. 在第3部分中 ,我逐步创建了技能概述,并建议首先在纯Python中创建技能,以确保方法 ...

  8. 开源发票识别_适用于小型企业的4种开源发票工具

    开源发票识别 无论您创办小企业的原因是什么,保持该企业正常运转的关键都是获得报酬. 获得付款通常意味着向客户发送发票. 那里有各种各样的商业和闭源发票工具. 但是,与开放源代码同类产品相比,开放源代码 ...

  9. java图书馆管理系统_六天写出来的基于Swing的图书管理系统你不来吐槽一下?

    前段时间学习完了MySQL和JDBC,想着自己做个东西实战一下,于是写了一个烂大街的图书管理系统...但好歹是自己一个人日夜兼程,硬着头皮做出来的还像样的东西,总结一手吧.看的人欢迎吐槽.我会从以下几 ...

最新文章

  1. 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之76——BREW中的安全性网络编程...
  2. HTTP 301 跳转和302跳转的区别
  3. AUTOSAR从入门到精通100讲(二)-SOME/IP及其应用
  4. Taro+react开发(74):taro架构使用
  5. C#后台调用前台js(RegisterStartupScript)
  6. spark的java源码,Spark源码包的编译
  7. webpack插件实现自动抽取css中的主题色样式,并动态切换主题色(element-ui)
  8. hbase占用内存过高_为什么不建议在 HBase 中使用过多的列族
  9. php tp框架验证,tp5.1验证 - thinkphp5.1框架学习 - php中文网博客
  10. Nopi的学习笔记(C#篇)
  11. c语言pi算法程序,C语言计算圆周率PI
  12. python五子棋双人对弈_基于python的socket实现单机五子棋到双人对战
  13. SEM和SEO的区别?
  14. 代价地图、局部规划器调参说明
  15. 注意力机制与V_net神经网络的介绍与实现
  16. Qt qss 九宫格
  17. 《求职》第四部分 - 操作系统篇 - Linux基础
  18. (二)ROS中控制机器人运动(示例运行)
  19. 践行数字化工厂,用友网络助力宝舜实现智能制造
  20. 基于JAVA的TCP网络QQ聊天工具系统

热门文章

  1. Python学习笔记:Io编程序列化
  2. extjs chart无法在panel中显示_手绘风格的 JS 图表库:Chart.xkcd
  3. 【Python】is 和 == 的区别
  4. 【Python】正负无穷
  5. [云炬创业管理笔记]第一章讨论2
  6. 科大星云诗社动态20210818
  7. 重磅!深度学习圣经“花书”核心笔记、代码发布
  8. 如何在阅读参考文献时,有效率的做笔记?
  9. linux 中 set,env,export,declare显示shell变量的区别
  10. 如何将伪数组转换成数组