蓝鲸配置平台架构(实验手册)
一、实验概述
CMDB是所有运维发布系统的基石,而基于蓝鲸开源CMDB打造企业个性化的CMDB,第一步需要我们先搭建一个CMDB的运行环境,如果有已经搭建好的同学,可以大家一起复习下流程。
二、准备工作
- golang >=1.8
- python >= 2.75
- nodejs >6
- 依赖组件zookeeper>=3.4.11、redis >= 3.2.11、mongodb>=2.8.0
- linux/mac的编译运行环境(可以执行makefile脚本)
三、实验知识点
- 实践如何通过makefile脚本编译cmdb项目
- 学习如何搭建一套可运行的cmdb运行环境
四、实验任务一
任务目标: 编译BK-CMDB源代码并部署CMDB服务
步骤一:源代码下载
cd $GOPATH/src
git clone github.com/Tencent/bk-cmdb configcenter
步骤二: 代码编译
cd $GOPATH/src/configcenter/src
首先进入代码根目录,编译环境要能支持makefile脚本的运行
模式一:同时编译前端UI和后端服务
make
如果当前网络无法访问npm,推荐使用cnpm进行前端编译,cnpm安装参考(cnpmjs.org/),编译时需要采用以下命令:
make NPM=cnpm
注:使用其他npm镜像与此类似
此模式编译后会同时生成前端UI文件和后端服务文件。
模式二:仅编译后端服务
make server
此模式下仅会编译生成后端服务文件。
模式三:仅编译前端UI
make ui
大陆地区用户推荐使用npm镜像cnpm进行前端编译,cnpm安装参考cnpmjs.org/,编译时需要采用以下命令:
make ui NPM=cnpm
注:使用其他npm镜像与此类似
此模式下仅会编译生成前端UI文件
步骤三:打包为部署包
make package
归档包存放位置: $GOPATH/src/configcenter/src/bin/pub/cmdb.tar.gz
步骤四:配置数据库
- redis需要打开密码认证的功能,并为其配置密码
- 安装MongoDB后,创建数据库 cmdb
- 为新创建的数据库设置用户名和密码
MongoDB 示例:
登陆MongoDB后执行以下命令:
> use cmdb
> db.createUser({user: "cc",pwd: "cc",roles: [ { role: "readWrite", db: "cmdb" } ]})
注:以上用户名、密码、数据库名仅作示例展示,用户使用中可以更具实际情况自行配置。如果安装的MongoDB的版本大于等于3.6,需要手动修改init.py自动生成的配置文件,详细步骤参看init.py相关小节。
步骤五:部署CMDB
编译后下载 cmdb.tar.gz
在目标机上解压包解cmdb.tar.gz,解压后根目录结构如下:
步骤六:配置文件初始化
假定安装目录是 /data/cmdb/
进入安装目录并执行初始化脚本,按照提示输入参数。
[root@SWEBVM000229 /data/cmdb]# python init.py
usage:
--discovery <discovery> the ZooKeeper server address, eg:127.0.0.1:2181
--database <database> the database name, default cmdb
--redis_ip <redis_ip> the redis ip, eg:127.0.0.1
--redis_port <redis_port> the redis port, default:6379
--redis_pass <redis_pass> the redis user password
--mongo_ip <mongo_ip> the mongo ip ,eg:127.0.0.1
--mongo_port <mongo_port> the mongo port, eg:27017
--mongo_user <mongo_user> the mongo user name, default:cc
--mongo_pass <mongo_pass> the mongo password
--blueking_cmdb_url <blueking_cmdb_url> the cmdb site url, eg: 127.0.0.1:8088 or bk.tencent.com
--blueking_paas_url <blueking_paas_url> the blueking paas url, eg: 127.0.0.1:8088 or bk.tencent.com
--listen_port <listen_port> the cmdb_webserver listen port, should be the port as same as -c <cc
init.py 参数详解:
ZooKeeper地址 | 用途说明 | 必填 | 默认值 |
---|---|---|---|
--discovery | 服务发现组件,ZooKeeper 服务地址 | 是 | 无 |
--database | 数据库名字 | mongodb 中数据库名 | 否 |
--redis_ip | Redis监听的IP | 是 | 无 |
--redis_port | Redis监听的端口 | 否 | 6379 |
--redis_pass | Redis登陆密码 | 是 | 无 |
--mongo_ip | MongoDB服务监听的IP | 是 | 无 |
--mongo_port | MongoDB端口 | 否 | 27017 |
--mongo_user | MongoDB中CMDB数据库用户名 | 是 | 无 |
--mongo_pass | MongoDB中CMDB数据库用户名密码 | 是 | 无 |
--blueking_cmdb_url | 该值表示部署完成后,输入到浏览器中访问的cmdb 网址, 格式: xx.xxx.com:80, 用户自定义填写;在没有配置 DNS 解析的情况下, 填写服务器的 IP:PORT。端口为当前cmdb_webserver监听的端口。 | 是 | 无 |
--blueking_paas_url | 蓝鲸PAAS 平台的地址,对于独立部署的CC版本可以不配置 | 否 | 无 |
--listen_port | cmdb_webserver服务监听的端口,默认是8083 | 是 | 8083 |
注:init.py 执行成功后会自动生成cmdb各服务进程所需要的配置。
示例(示例中的参数需要用真实的值替换):
python init.py --discovery 127.0.0.1:2181 --database cmdb --redis_ip 127.0.0.1 --redis_port 6379 --redis_pass cc --mong
init.py 生成的配置如下
配置文件的存储路径:{安装目录}/cmdb_adminserver/configures/
配置文件目录:{安装目录}/cmdb_adminserver/configures
注:由于MongoDB 从3.6开始更改了默认加密方式,所以如果安装的MongoDB的版本大于等于3.6,需要手动将以上配置文件中MongoDB的配置项中增加 mechanism=SCRAM-SHA-1
配置文件mongodb小节增加mechanism 配置项示例如下
[mongodb]
host=127.0.0.1
usr=cc
pwd=cc
database=cmdb
port=27017
maxOpenConns=3000
maxIDleConns=1000
mechanism=SCRAM-SHA-1
步骤七:启动进程并执行初始化
假定安装目录是 /data/cmdb/,在此目录下执行:./start.sh
[root@SWEBVM000229 /data/cmdb-changevar]# ./start.sh
starting: cmdb_adminserver
starting: cmdb_apiserver
starting: cmdb_auditcontroller
starting: cmdb_datacollection
starting: cmdb_eventserver
starting: cmdb_hostcontroller
starting: cmdb_hostserver
starting: cmdb_objectcontroller
starting: cmdb_proccontroller
starting: cmdb_procserver
starting: cmdb_test
starting: cmdb_toposerver
starting: cmdb_webserver
root 13461 1 0 18:05 pts/0 00:00:00 ./cmdb_adminserver --addrport=127.0.0.1:60004 --logtostderr=false --log-dir=./logs --v=0 --config=conf/migrate.conf
root 13479 1 0 18:05 pts/0 00:00:00 ./cmdb_apiserver --addrport=127.0.0.1:8080 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13498 1 0 18:05 pts/0 00:00:00 ./cmdb_auditcontroller --addrport=127.0.0.1:50005 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13516 1 0 18:05 pts/0 00:00:00 ./cmdb_datacollection --addrport=127.0.0.1:60005 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13533 1 0 18:05 pts/0 00:00:00 ./cmdb_eventserver --addrport=127.0.0.1:60009 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13551 1 0 18:05 pts/0 00:00:00 ./cmdb_hostcontroller --addrport=127.0.0.1:50002 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13569 1 0 18:05 pts/0 00:00:00 ./cmdb_hostserver --addrport=127.0.0.1:60001 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13587 1 0 18:05 pts/0 00:00:00 ./cmdb_objectcontroller --addrport=127.0.0.1:50001 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13605 1 0 18:05 pts/0 00:00:00 ./cmdb_proccontroller --addrport=127.0.0.1:50003 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13624 1 0 18:05 pts/0 00:00:00 ./cmdb_procserver --addrport=127.0.0.1:60003 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13641 1 0 18:05 pts/0 00:00:00 ./cmdb_toposerver --addrport=127.0.0.1:60002 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
root 13658 1 0 18:05 pts/0 00:00:00 ./cmdb_webserver --addrport=127.0.0.1:8083 --logtostderr=false --log-dir=./logs --v=0 --regdiscv=127.0.0.1:2183
process count should be: 12 , now: 12
Not Running: cmdb_test
进程启动成功之后再根目录执行数据初始化:./init_db.sh
{
"result": true,
"bk_error_code": 0,
"bk_error_msg": "success",
"data": "migrate success"
}
运行效果图
学员评价