- 安装 CMDB 及依赖
- 安装 MongoDB
- 安装 Zookeeper
- 安装 cmdb
- 安装 GSE
安装 CMDB 及依赖
cmdb是蓝鲸的配置平台,数据库采用mongodb,服务发现和配置管理使用zookeeper,快照数据使用redis存储,快照采集依赖gse。
CMDB的架构可以参考github上的《蓝鲸智云配置平台的架构设计》
CMDB依赖的组件和服务如下:
github上也有cmdb的安装说明,蓝鲸社区版集成时稍微做了些规范改造和安装自动化,需要了解为什么这样安装mongodb的,可以阅读《CMDB部署文档》
安装 MongoDB
安装cmdb的依赖中,mongodb是最重要的存储依赖,且目前只有cmdb独享,故先介绍mongodb的安装
./bkcec install mongodb
./bkcec initdata mongodb
./bkcec start mongodb
详解:
mongodb 二进制在蓝鲸的 service/ 目录下已经自包含,所以安装时直接用 rsync 将 src/service/mongodb 目录同步到 bkce/service/下即可。
mongodb的配置文件模板只有一个 mongodb.yaml,里面具体配置的含义,请参考MongoDB官方的配置说明文档
初始化mongodb
- 首先以不开启鉴权的方式启动mongodb,并创建管理员
sysadmin
的角色,和globals.env里定义的$MONGODB_USER
用户,并配置为sysadmin
角色。 - 创建 bk_cmdb 用户,创建 cmdb 数据库,并授予 bk_cmdb 用户读写它的权限。
- 关闭 mongodb 进程
- 首先以不开启鉴权的方式启动mongodb,并创建管理员
- 调用
$INSTALL_PATH/service/mongodb/bin/mongodb.sh start
启动 mongodb
安装 Zookeeper
zookeeper作为cmdb的服务发现组件,开始安装。
./bkcec install zk
./bkcec start zk
详解:
- 拷贝java和zookeeper代码目录到 $INSTALL_PATH/service/下
- 渲染配置文件模板,主要是zoo.cfg,并创建软连接到$INSTALL_PATH/etc/zoo.cfg
- 启动 zk
安装 cmdb
需要特别注意的是 cmdb
先启动,再初始化数据
./bkcec install cmdb
./bkcec start cmdb
./bkcec initdata cmdb
详解:
- 安装 cmdb
- 安装依赖,从 dependences.env 里读取到 cmdb 依赖 nginx。需要先 yum 安装 nginx
- rsync将 src/cmdb 拷贝到 bkcec/下
- 创建一个名为 cmdb 的虚拟环境,给supervisord使用
- 渲染 cmdb 模板文件
- 软连接 bkcec/etc/nginx.conf 到 /etc/nginx/nginx.conf 覆盖 nginx 默认的配置
- 将globals.env里配置的 CMDB_FQDN 域名写入 /etc/hosts
- 启动 cmdb
- 需要等待 zk服务可用,通过
dig +short zk.service.consul
是否解析成功来判断。 - 启动 nginx,如果nginx进程已经启动,则 reload
workon cmdb; supervisord -c $INSTALL_PATH/etc/supervisor-cmdb-server.conf
启动 cmdb 后台进程- 启动 cmdb 后,cmdb_adminserver 会将所有进程的配置文件写入 zk 节点内,其他进程启动时从 zk 读取配置
- 需要等待 zk服务可用,通过
- 初始化 cmdb
- 初始化 cmdb 前需要保证所有 cmdb 后台进程的端口均可用。如果不可用说明启动cmdb虽然进程running,但是端口未监听,此时可以尝试重启 cmdb。
- 调用 cmdb_adminserver 的http接口(/migrate/v3/migrate/community/0),来初始化cmdb
安装 GSE
CMDB的快照数据,依赖蓝鲸组件 gse
后台:
./bkcec install gse
./bkcec initdata gse
./bkcec start gse
详解:
- 安装 GSE
- 拷贝gse后台,cert目录到$INSTALL_PATH/下
- 根据globals.env里是否自动获取外网ip配置,来设定gse需要监听的ip地址
- 渲染配置模板
- 将agent,proxy,和证书打包,并传到nginx的miniweb下,供安装agent时使用。
- 初始化 GSE 的zk默认配置
- 启动 GSE 后台进程