Code Monkey home page Code Monkey logo

opencmdb-backend's Introduction

OpenCMDB

系统组件和引用说明

主要模块

  • 模型管理(自定义CI模型、模型编辑、模型关系等) v0.1 - 当前版本
  • 仓库管理(基于Excel数据导入导出、资产编辑、资产搜索、Web SSH等) v0.2
  • 视图管理(内置架构视图、业务视图等) v0.2
  • 容量管理(多维度Dashboard展示) v0.3
  • 系统设置(API Token、验证方式、) v0.3
  • 用户中心(权限管理、SSH Key管理) v0.3

安装文档

API简介

API主要使用:

本地测试环境搭建

1.安装Python 3.6

[root@linux-node1 ~]# yum install https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
[root@linux-node1 ~]# yum install -y gcc glibc make zlib-devel openssl-devel curl-devel
[root@linux-node1 ~]# cd /usr/local/src
[root@linux-node1 src]# wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
[root@linux-node1 src]# tar zxf Python-3.6.6.tgz
[root@linux-node1 src]# cd Python-3.6.6/
[root@linux-node1 Python-3.6.6]# ./configure --prefix=/usr/local/Python-3.6.6 --with-ssl
[root@linux-node1 Python-3.6.6]# make && make install

2.创建Python虚拟环境,并安装依赖

[root@linux-node1 ~]# cd /opt/
[root@linux-node1 opt]# /usr/local/Python-3.6.6/bin/pyvenv-3.6 opencmdb-backend-runtime
[root@linux-node1 opt]# git clone https://github.com/unixhot/opencmdb-backend.git
[root@linux-node1 opt]# source /opt/opencmdb-backend-runtime/bin/activate
(opencmdb-backend-runtime) [root@devopsedu opt]# pip install -r /opt/opencmdb-backend/requirements.txt 

3.安装MongoDB

[root@linux-node1 ~]# yum install -y mongodb mongodb-server
[root@linux-node1 ~]# systemctl start mongod
[root@linux-node1 ~]# systemctl enable mongod
[root@linux-node1 ~]# netstat -ntlp | grep 27017
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      28513/mongod
[root@linux-node1 ~]# mongo
> use opencmdb
switched to db opencmdb
> db.createUser({user: "opencmdb",pwd: "opencmdb",roles: [ { role: "readWrite", db: "opencmdb" } ]});
Successfully added user: {
	"user" : "opencmdb",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "opencmdb"
		}
	]
}
> exit
bye

4.修改配置文件并启动

4.1 开启一个screen,把OpenCMDB后端服务运行在screen中。

[root@linux-node1 ~]# screen
[root@linux-node1 ~]# cd /opt/opencmdb-backend/
[root@linux-node1 ~]# source /opt/opencmdb-backend-runtime/bin/activate

4.2 指定使用development的配置

[root@linux-node1 ~]# export FLASK_ENV=DEVELOPMENT

4.3 设置配置文件

(opencmdbENV) [root@linux-node1 opencmdb-backend]# cp api/config/development.py_sample api/config/development.py
(opencmdbENV) [root@linux-node1 opencmdb-backend]# vim api/config/development.py
 #(编辑api/config/development.py 更改mongo的配置, 任意配置SECRET_KEY和SECURITY_PASSWORD_SALT)

4.4 执行 python manager.py init_user_info 初始化用户信息,可以自行修改初始化密码。

(opencmdbENV) [root@linux-node1 opencmdb-backend]# vim scripts/init_user_info.py 
def init_user_info():
    user = create_user('[email protected]', 'opencmdb')
    role = create_role('admin', '管理员')
    grant_role_to_user(user, role)

4.5 初始化用户信息并启动

(opencmdbENV) [root@linux-node1 opencmdb-backend]# python manager.py init_user_info
(opencmdbENV) [root@linux-node1 opencmdb-backend]# python manager.py runserver -h 0.0.0.0 -p 5000

5.配置swagger

  • 修改 vim api/docs/index.html 43行左右 将地址配置为自己的服务地址
  • 修改 vim api/docs/public/api.yml 17左右行 将地址配置为自己的服务地址

6.访问OpenCMDB

用户名:[email protected] 密码:opencmdb

DevOps Flow:该项目使用DevOps-X进行管理

项目管理:

  1. 使用Redmine进行项目管理,采用敏捷开发方式。

分支管理:

  1. 采用特性分支策略,每一个用户故事对应一个特性分支。

流水线设计:

  1. 提交阶段流水线:采用特性分支,除Master外分支有任何Push操作,即触发。
  2. 基础测试阶段流水线:采用Docker进行测试,Master分支有Push操作,即触发。
  3. 生产部署阶段流水线:采用Kubernetes进行发布

opencmdb-backend's People

Contributors

unixhot avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.