跳到主要内容

安装 & 升级

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
    • 浏览器打开: http://127.0.0.1:8000

      • 如果是非本机访问, 要修改cmdb-ui/.envVUE_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-setup
    • flask cmdb-init-acl
    • flask 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 {升级后的版本号}