cmdb

CMDB 配置管理系统 资产管理系统
授权协议 LGPL-3.0 License
开发语言 JavaScript
所属分类 Web应用开发、 网页开发工具
软件类型 开源软件
地区 不详
投 递 者 沈英勋
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

cmdb

CMDB 资产管理系统

知乎链接

https://zhuanlan.zhihu.com/p/34191320

在线演示

http://cmdb.xyz用户名:admin 密码:cmdbcmdb (请不要修改)

问答群

特性

  • 热添加删除表 自定义字段类型
  • REST前后端分离架构 开放所有API接口
  • 强大的搜索查找能力(后端使用elasticsearch存储数据 ) 可以配合kibana使用
  • 支持查看数据修改记录
  • 表级权限管理
  • 容器快速部署

前端

  • Vue
  • Element-ui
  • Vue-Router
  • Vuex
  • Axios

后端

  • Python3
  • Django 1.11
  • Django REST framework
  • Elasticsearch
  • Mysql
  • LDAP
  • uwsgi
  • Nginx
  • Docker

前端

https://github.com/open-cmdb/cmdb-web

快速开始

准备一台可以访问互联网的centos服务器(内存大于等于4G) 将下面代码保存到install_cmdb.py 执行sudo python install_cmdb.py

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import os
import subprocess
import argparse
import time

def 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 ENV=PRO -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 ENV=PRO -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 value

if __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("完成!")

手工部署

先安装好Elasticsearch(5.6) 和 Mysql(5.7) 其它版本未测试

容器名称

mingmingtang/cmdb

初始化数据库

docker run -it --name cmdb-init-db --rm -e DB_HOST=数据库地址 -e ENV=PRO -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=邮箱密码 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=******** mingmingtang/cmdb start

嘿 哥们儿 给颗星吧 ┭┮﹏┭┮

  • 目前的prism已经实现的功能:prism一期 对api和coa进行服务治理,主要是结合opentracing 完成服务的申请以及appkey的分配 完成服务的实例查询以及实例的在线状态 完成服务的操作:隔离,停止,配置获取以及配置设置 完成服务的上下流关联 完成通过服务进入容器以及进入grafana cmdb平台 cmdb平台简介 cmdb代表管理数据库,configuration manage

  • 原文地址:http://www.cnblogs.com/zhuifeng-mayi/p/9166964.html 浅谈ITIL   TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)

  • CMDB -- Configuration Management Database 配置管理数据库,CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。     转载于:https://www.cnblogs.com/code1992/p/10761976.html

  •   制定政策   企业政策,是企业管理的行动指南和共同纲领。它使企业在认识上形成统一,减少了不必要的沟通成本,并使企业在流程执行上事半功倍。对于构建CMDB而言,主要有以下两类政策。   宏观政策 主要是涉及公司或IT部门层面指导性、方向性的政策,其目标是在企业内部形成统一认识。如:   ◆ 企业IT内部应当使用统一的配置管理流程,并且使用标准的文档记录和汇报机制。   配置管理流程的使用主体很大

  • CMDB,Configuration ManagementDataBase,配置管理数据库,是与 IT 系统所有组件相关的信息库,它包含 IT 基础架构配置项的详细信息。 CMDB 是与每个企业具体的 IT 软硬件环境、组织架构和流程强相关的,这就决定了 CMDB 一定是高度定制化的体系。虽然我们都知道它不仅仅是一个存储信息的数据库那么简单,但是它的具体形态是什么样子的,并没有统一的标准。 从传统

 相关资料
  • Current Usage # resource_getrusage.py import resource import time RESOURCES = [ ('ru_utime', 'User time'), ('ru_stime', 'System time'), ('ru_maxrss', 'Max. Resident Set Size'), ('ru_i

  • 9.1. 系统管理 查询系统版本 查看Linux系统版本: - uname -a - lsb_release -a 查看Unix系统版本:操作系统版本: - more /etc/release 查询硬件信息 查看CPU使用情况: - sar -u 5 10 查询CPU信息: - cat /proc/cpuinfo 查看CPU的核的个数: - cat /proc/cpuinfo | grep pro

  • Fabric Fabric 是一个用来简化系统管理任务的第三方库。当 Chef 和 Puppet 更倾向于管理服务器和系统库的时候,Fabric 则更关注于应用级别的任务管理,比如应用部署。 安装 Fabric: $ pip install fabric 下面的代码为我们创建了两个可以使用的任务:memory_usage 和 deploy,前面的任务会输出每一个服务器设备的内存使用率;后面的任

  • 设备和磁盘 在Linux下你的磁盘和USB设备都被看作设备。要读写它们你得先把这些设备挂载到一个文件夹(被称为挂载点)里。在Slitaz里你可以使用图形界面工具mountbox挂载设备,也可以用命令行挂载。要挂载第一个硬盘的第一个主要分区到/mnt/disk: # mkdir -p /mnt/disk # mount /dev/hda1 /mnt/disk 要挂载USB设备或者CDROM,建议使用

  • 系统管理 函数 描述 uname 得到内核的名称和信息 getpwuid 通过uid获得相应的结构体passwd getpwnam 通过用户名获得相应的结构体passwd getspnam 通过用户名获得结构体spwd(内包含密码) getgrgid 通过gid获得相应的结构体group getgrnam 通过组名获得相应的结构体group getenv 获取系统环境变量的值

  • 用命令去下载,升级,管理安装在系统上的软件。Windows 平台用 chocolatey,macOS 可以使用 Homebrew。

  • 函数原型 #include <sys/types.h> #include <grp.h> struct group *getgrnam(const char *name); struct group *getgrgid(gid_t gid); int getgrnam_r(const char *name, struct group *grp, char *buf, size_t

  • 函数原型 #include <sys/types.h> #include <pwd.h> struct passwd *getpwnam(const char *name); struct passwd *getpwuid(uid_t uid); int getpwnam_r(const char *name, struct passwd *pwd, char