课程评价 (4)

请对课程作出评价:
0/300

学员评价

sof***ang
2018-11-28
还不错,再接再厉
用户2***325
2018-11-27
很不错
用户4***199
2018-11-24
说的啥?
ev***an
2018-11-23
课程很好,不过截图太模糊了,代码看不清,建议放高清图,或者直接放代码。
20分钟

蓝鲸配置平台架构(实验手册)

一、实验概述

CMDB是所有运维发布系统的基石,而基于蓝鲸开源CMDB打造企业个性化的CMDB,第一步需要我们先搭建一个CMDB的运行环境,如果有已经搭建好的同学,可以大家一起复习下流程。

二、准备工作

  1. golang >=1.8
  2. python >= 2.75
  3. nodejs >6
  4. 依赖组件zookeeper>=3.4.11、redis >= 3.2.11、mongodb>=2.8.0
  5. linux/mac的编译运行环境(可以执行makefile脚本)

三、实验知识点

  1. 实践如何通过makefile脚本编译cmdb项目
  2. 学习如何搭建一套可运行的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

步骤四:配置数据库

  1. redis需要打开密码认证的功能,并为其配置密码
  2. 安装MongoDB后,创建数据库 cmdb
  3. 为新创建的数据库设置用户名和密码

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"
 }

运行效果图