安装 & 升级
Docker 一键快速构建
方法一
- 第一步: 先安装 Docker 环境, 以及Docker Compose(v2)
- 第二步: 拷贝项目
git clone https://github.com/veops/cmdb.git
- 第三步:进入主目录,执行:
docker compose up -d
本地开发环境搭建
环境和依赖
- 存储: mysql, redis
- python 版本:
3.8 <= python <= 3.11
安装
- 启动 mysql 服务, redis 服务
mysql一定要设置sql_mode, root进入mysql执行:
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
- 创建数据库 cmdb
- 拉取代码
git clone https://github.com/veops/cmdb.git
cd cmdb
cp cmdb-api/settings.example.py cmdb-api/settings.py
设置cmdb-api/settings.py 里的 database
-
安装库
- 后端:
cd cmdb-api && pipenv run pipenv install && cd .. - 前端:
cd cmdb-ui && yarn install && cd ..
- 后端:
-
可以将 docs/cmdb.sql 导入到数据库里,登录用户和密码分别是:demo/123456
-
创建数据库表: 进入cmdb-api目录执行
pipenv run flask db-setup && pipenv run flask common-check-new-columns && pipenv run flask cmdb-init-cache -
启动服务
-
后端: 进入cmdb-api目录执行
pipenv run flask run -h 0.0.0.0 -
前端: 进入cmdb-ui目录执行
yarn run serve -
worker:
- 进入cmdb-api目录执行
pipenv run celery -A celery_worker.celery worker -E -Q one_cmdb_async --autoscale=5,2 --logfile=one_cmdb_async.log -D - 进入cmdb-api目录执行
pipenv run celery -A celery_worker.celery worker -E -Q acl_async --autoscale=2,1 --logfile=one_acl_async.log -D
- 进入cmdb-api目录执行
-
浏览器打开: http://127.0.0.1:8000
- 如果是非本机访问, 要修改cmdb-ui/.env里VUE_APP_API_BASE_URL里的 IP 地址为后端服务的 ip 地址
-
Makefile 安装
Install by Makefile
- 启动 mysql 服务, redis 服务
- 创建数据库 cmdb
- 拉取代码
git clone https://github.com/veops/cmdb.git
cd cmdb
cp cmdb-api/settings.example.py cmdb-api/settings.py
设置 cmdb-api/settings.py 里的 database
- 顺序在 cmdb 目录下执行
- 环境:
make env - 启动 API:
make api - 启动 UI:
make ui - 启动 worker:
make worker
- 环境:
纯净模式 安装
所谓的 纯净模式 即db里的数据完全是空的
如果已经安装过维易CMDB(本地或者docker-compose安装),想体验纯净模式的安装(已经安装过的前提是当前数据不重要, 如果重要需备份)
- 先关服务
- 删掉DB,再重新建DB
- 清掉redis缓存
安装步骤
- 本地或者docker-compose按照前面安装即可,本地部署先不要启动服务。需要注意的是
docker-compose.yml里cmdb-db下的volumes里的./docs/cmdb.sql:/docker-entrypoint-initdb.d/cmdb.sql要注释掉 - 进入API环境,本地执行
pipenv shell, 容器执行docker exec -it cmdb-api sh - 执行如下命令:
flask db-setupflask cmdb-init-aclflask init-department
- 本地开发环境启动服务,一定要启动celery worker. docker部署此步骤忽略
- 同样在API环境里执行
flask add-user去创建一个用户,需要注意的是Admin选项要填Y - 用上面创建的用户登录系统,然后从模板市场下载所需模板导入系统即可
新版本如何升级
- 如果是代码部署的: 升 级到最新的代码版本, API里执行
flask db-setup && flask common-check-new-columns, 然后重启前后端相关的服务 - 如果是Docker部署的: 升级到最新的代码, 执行
docker compose down,docker compose up -d, 升级不要用docker compose down -v
问题: 如果使用docker-compose升级后发现数据不见了?
- 可能得原因是在版本
<=2.3.8时, db volume的命名与目录名相关, 执行docker volume ls|grep db-data上次部署的目录名如果是cmdb-2.3.8,那么db volume的命名应该是cmdb-238_db-data, 修改docker-compose.yml文件的最后的volumes里的name为cmdb-238_db-data,并重启,当然如果代码目录一直是cmdb就没这个问题!
为了避免下次出现同样问题,建议导出mysql的数据,然后恢复docker-compose,重启服务后,再导入mysql数据
升级注意事项
大于2.4.5的版本,因为表结构有一些重大变更,升级后请执行下面的命令:
docker compose exec cmdb-api flask cmdb-patch -v {升级后的版本号}