- 产品定位:全开源轻量级CMDB项目
- 我们的口号:让**所有的运维工程师不再使用Excel管理运维资产!
- 官网网站: http://opencmdb.cn
- 前端代码:https://github.com/unixhot/opencmdb-frontend/
- 后端代码:https://github.com/unixhot/opencmdb-backend/
- 项目成员:赵班长(PO)、母红英(Dev)、张亚庆(Dev)、张龙(Dev)
- 前端框架:Vue.js https://cn.vuejs.org/
- 数据可视化:Echarts http://echarts.baidu.com/
- 后端:Flask + Flask Restful + Mongodb
- API文档:Swagger UI https://swagger.io/download-swagger-ui/
- API测试:pyresttest https://github.com/svanoort/pyresttest
- RESTful API设计指南: http://www.ruanyifeng.com/blog/2014/05/restful_api.html
- 模型管理(自定义CI模型、模型编辑、模型关系等) v0.1 - 当前版本
- 仓库管理(基于Excel数据导入导出、资产编辑、资产搜索、Web SSH等) v0.2
- 视图管理(内置架构视图、业务视图等) v0.2
- 容量管理(多维度Dashboard展示) v0.3
- 系统设置(API Token、验证方式、) v0.3
- 用户中心(权限管理、SSH Key管理) v0.3
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('admin@opencmdb.cn', '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
用户名:admin@opencmdb.cn 密码:opencmdb
- 使用Redmine进行项目管理,采用敏捷开发方式。
- 采用特性分支策略,每一个用户故事对应一个特性分支。
- 提交阶段流水线:采用特性分支,除Master外分支有任何Push操作,即触发。
- 基础测试阶段流水线:采用Docker进行测试,Master分支有Push操作,即触发。
- 生产部署阶段流水线:采用Kubernetes进行发布