七叶笔记 » golang编程 » 基于centos7 单机编译安装蓝鲸CMDB及3个问题

基于centos7 单机编译安装蓝鲸CMDB及3个问题

概述

在开发调试蓝鲸CMDB时,往往可能只需要部署一个CMDB服务即可,而不需要使用到整个蓝鲸平台,所以根据开源社区提供的CMDB部署指南,这边整理成一个比较简单快速的的方式进行部署蓝鲸CMDB。


CMDB 微服务进程清单

1. web层服务进程

  • cmdb_webserver

2. 服务网关进程

  • cmdb_apiserver

3. 场景层服务进程

  • cmdb_adminserver
  • cmdb_eventserver
  • cmdb_hostserver
  • cmdb_procserver
  • cmdb_toposerver
  • cmdb_datacollection

4. 资源管理服务进程

  • cmdb_auditcontroller
  • cmdb_hostcontroller
  • cmdb_objectcontroller
  • cmdb_proccontroller

一、环境准备

1、配置yum

 for i in /etc/yum.repos.d/*.repo;do cp $i ${i%.repo}_bak;done
rm -rf /etc/yum.repos.d/*.repo
wget -P /etc/yum.repos.d/ 
wget -O /etc/yum.repos.d/epel.repo 
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf     
yum clean all &&   yum makecache  

2、在线yum安装 docker

 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo 
yum clean all && yum makecache
-- 安装docker
yum install docker-ce docker-ce-cli containerd.io -y
-- 安装docker-compose
curl -L `uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
--启动docker服务
systemctl start docker
systemctl enable docker
systemctl status docker  

二、CMDB前置依赖安装部署

1、安装 mongodb (版本4.0.4)

 docker pull mongo:4.0.4 
mkdir -p /data/mongo
docker run --name mongo -v /data/mongo:/data/db -d -p 27017:27017 mongo:4.0.4  

2、安装 redis (版本5.0.2)

 docker pull redis:5.0.2
mkdir -p /data/redis
docker run --name redis -v /data/redis:/data -d -p 16379:6379 redis:5.0.2 redis-server --requirepass password  

3、 安装 zookeeper (版本3.4.13)

 docker pull zookeeper:3.4.13
mkdir -p /data/zookeeper 
docker run --name zookeeper -v /data/zookeeper:/data -d -p 2181:2181 zookeeper:3.4.13  

4、创建mongodb用户

需要为cmdb创建一个mongodb的用户

 docker exec -it mongo /bin/ bash 
mongo
use cmdb
db.createUser({user: "cc",pwd: "cc",roles: [ { role: "readWrite", db: "cmdb" } ]})  

>>查看mongodb中数据

 mongo
use cmdb
show collections
db.cc_ServiceCategory.find().pretty()  

三、 编译安装cmdb

1、安装和配置golang

 wget 
tar -xvf go1.13.6.linux-amd64.tar.gz -C /usr/local/
cat >> /etc/profile << EOF
export GOPATH=/data/cmdb
export  PATH=/usr/local/go/bin:$PATH
export GOPROXY="#34;
EOF  

2、安装node和npm

 yum -y install npm
cat >> /etc/profile << EOF
alias cnpm="npm --registry= \
  --cache=$HOME/.npm/.cache/cnpm \
  --disturl= \
  --userconfig=$HOME/.cnpmrc"
EOF  

3、创建编译路径

 mkdir -p /data/cmdb/src
cd /data/cmdb/src
git clone   configcenter   

4、编译CMDB

 cd /data/cmdb/src/configcenter/src
make    #同时编译前端UI和后端服务  

编译完成后根目录如下:


四、初始化CMDB

1、初始化配置

 mv  /data/cmdb/src/configcenter/src/bin/build/* /data/cmdb/
cd /data/cmdb/

python init.py   \
        --discovery 172.16.xx:2181  \
        --database cmdb \
        --redis_ip 172.16.xxx \
        --redis_port 16379 \
        --redis_pass fxxx \
        --mongo_ip 172.16.xxx \
        --mongo_port 27017 \
        --mongo_user cc  \
        --mongo_pass cc  \
        --blueking_cmdb_url   \
        --listen_port 8083 \
        --auth_scheme internal  \
        --auth_enabled false \
        --full_text_search off \
        --log_level 3  


五、启动cmdb并测试

1、启动服务

 cd /data/cmdb
./start.sh  

2、服务启动之后初始化数据库

 cd /data/cmdb
./init_db.sh  

3、系统运行页面

打开浏览器: 数据cmdb_webserver 监听的地址:


这里存在3个问题:

1、主机的导入功能(按字段类型对应导入excel表),因为密码比较复杂,而蓝鲸CMDB选了短字符和长字符都无法导入,部分特殊符号是不支持的,后面再看怎么处理

2、单单看CMDB的话多用户管理及自定义流程是不支持的

3、暂时没发现对外的API接口,不好跟其他系统做交互。

相关文章