容器部署腾讯蓝鲸CMDB

本文主要介绍如何部署腾讯的蓝鲸CMDB
蓝鲸CMDB官网:https://github.com/Tencent/bk-cmdb
蓝鲸CMDB部署官网:https://github.com/Tencent/bk-cmdb/blob/master/docs/wiki/container-support.md
蓝鲸CMDB镜像地址官网:https://console.cloud.tencent.com/tke2/registry/qcloud/default/detail/tag?rid=1&reponame=bk.io%252Fcmdb-standalone
建议你有自己的nexus,解决各种网络加速问题,参考:Docker部署Nexusnexus配置的一些实践

1.安装和部署

1.1 概述

1
2
3
docker pull ccr.ccs.tencentyun.com/bk.io/cmdb-standalone:v3.9.28
docker volume create vo-cmdb
docker run --name qa-cmdb3 -p 18083:8090 -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro --restart=always --privileged=true -dit ccr.ccs.tencentyun.com/bk.io/cmdb-standalone:v3.9.28

1.2 准备mongo

1
2
3
4
5
6
7
8
登录mongo并创建库和账号
db.auth("mongo_admin","你的管理员密码");

use tk_cmdb
db.createUser({ user: 'tk_cmdb', pwd: '创建一个密码', roles: [{ role: "readWrite", db: "tk_cmdb" },{ role: 'readWrite', db: 'monstache' }] });
db.grantRolesToUser('tk_cmdb', [{ role: 'readWrite', db: 'tk_cmdb' }]);
use monstache
db.grantRolesToUser('tk_cmdb', [{ role: 'readWrite', db: 'monstache' }]);

1.3 修改镜像的配置

这里的主要问题是:蓝鲸的镜像是all in one,也就是自己内部继承了mongodb、redis、zookeeper,我们需要对数据进行持久化以及使用我们自己的库。
蓝鲸的容器参数化做的不够好,我们先启动蓝鲸的容器,然后修改容器配置,基于容器再打一个内部专用的镜像即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#将启动脚本copy出来
docker cp qa-cmdb:/data/run.sh:./
#将admin服务的脚本copy出来
docker cp qa-cmdb:/data/cmdb/cmdb_adminserver:./
#将redis和mongo初始化脚本copy出来
docker cp qa-cmdb:/data/sidecar/initialize.sh:./
#修改run.sh里的redis、mongodb等参数,再copy回去
docker cp run.sh qa-cmdb3:/data/
#注释掉redis和mongo的初始化命令,再copy回去
docker cp initialize.sh qa-cmdb3:/data/sidecar/
#可能会遇到ddl初始化的脚本没有可执行权限问题,修改后再copy回去
chmod 755 ./cmdb_adminserver/init_db.sh
docker cp ./cmdb_adminserver/init_db.sh qa-cmdb3:/data/cmdb/cmdb_adminserver/

#生成你自己的镜像,并推送上去
docker login --username=你的docker账号 --password="你的docker密码" registry-vpc.cn-qingdao.aliyuncs.com
docker commit -m "修改蓝鲸CMDB" qa-cmdb registry-vpc.cn-qingdao.aliyuncs.com/xxxxx-images/tk-cmdb:1.10
#用你自己的镜像启动即可
docker run --name qa-cmdb3 -p 18083:8090 -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro --restart=always --privileged=true -dit registry-vpc.cn-qingdao.aliyuncs.com/xxxxx-images/tk-cmdb:1.16