蓝鲸CMDB资产管理系统部署笔记

释放双眼,带上耳机,听听看~!

体系介绍

腾讯蓝鲸智云体系由平台级产品和通用 SaaS 服务组成,平台包括管控平台、配置平台、作业平台、数据平台、容器管理平台、挖掘平台、PaaS 平台、移动平台等,通用 SaaS 包括节点管理、标准运维、日志检索、蓝鲸监控、故障自愈等,为各种云(公有云、私有云、混合云)的用户提供不同场景、不同需求的一站式技术运营解决方案。

腾讯蓝鲸智云体系依托企业级 SOA、 集成等理念,运用 Docker 等最先进的云技术构建起了全新的运维模式, 致力于以“原子服务集成”和“低成本工具构建”的方式落地 DevOps,帮助运维快速实现“基础服务无人值守”及“增值服务”,并进一步通过 DevOps 的落地实现企业更全面和可持续的效率提升。

架构图

环境准备

系统环境

系统版本要求 CentOS7 以上

IP地址 主机名 配置 描述 系统版本
192.168.31.221 cmdb_node1 8c/16G 中控机 CentOS 7.6.1810
192.168.31.223 cmdb_node2 4c/8G CentOS 7.6.1810
192.168.31.224 cmdb_node3 4c/8G CentOS 7.6.1810

环境准备所有节点都要操作

关闭SELinux

setenforce 0
echo "/usr/sbin/setenforce 0" >> /etc/rc.local
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

关闭NetworkManager

systemctl stop NetworkManager
systemctl disable NetworkManager

设置DNS

cat > /etc/resolv.conf << EOF
nameserver 127.0.0.1
nameserver 114.114.114.114
nameserver 8.8.8.8
EOF

设置hosts文件

cat >> /etc/hosts << EOF
192.168.31.221 cmdb_node1
192.168.31.223 cmdb_node2
192.168.31.224 cmdb_node3
EOF

关闭防火墙

systemctl stop iptables
systemctl disable iptables
systemctl stop firewalld
systemctl disable firewalld

时钟校对

/sbin/ntpdate ntp2.aliyun.com;/sbin/hwclock -w

echo "#Clock synchronization" >> /var/spool/cron/root 
echo "01 00 * * * /sbin/ntpdate ntp2.aliyun.com;/sbin/hwclock -w" >> /var/spool/cron/root

调整文件打开数

cat <<EOF > /etc/security/limits.d/99-nofile.conf
root soft nofile 102400
root hard nofile 102400
EOF

重启机器

reboot

#重启后使用sestatus命令看到disable命令后selinux才算被关闭
sestatus

#查看文件打开数是否被修改
ulimit -n

安装rsync

yum -y install rsync

更换yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum makecache

下载蓝鲸社区版本

下载地址:https://bk.tencent.com/download/
选择完整版下载,下载完后上传到中控机192.168.31.221

下载证书

下载证书前需要先获取机器的 MAC 地址

获取三台机器的mac地址

cat /sys/class/net/eth0/address

把mac地址填进入,英文分号分隔后下载,下载完后上传到中控机

中控机操作

解压下载的蓝鲸源文件到/data目录下

mkdir /data
tar xf bkce_src-4.1.16.tgz -C /data/

解压之后, 得到两个目录: src, install
src: 存放蓝鲸产品软件, 以及依赖的开源组件
install: 存放安装部署脚本、安装时的参数配置、日常运维脚本等

install.config
install.config 是模块和服务器对应关系的配置文件,描述在哪些机器上安装哪些模块。
每行两列,第一列是IP地址;第二列是以英文逗号分隔的模块名称。
详情参考install.config.3IP.sample文件(可将install.config.3IP.sample 复制为install.config)。

cp -rf /data/install/install.config.3IP.sample /data/install/install.config

#修改此文件前的IP地址
cat /data/install/install.config
192.168.31.221 nginx,appt,rabbitmq,kafka,zk,es,bkdata,consul,fta
192.168.31.223 mongodb,appo,kafka,zk,es,mysql,beanstalk,consul
192.168.31.224 paas,cmdb,job,gse,license,kafka,zk,es,redis,consul,influxdb

说明:
该配置文件,ip 后面使用空格与服务名称隔开,含有多个内网 ip 的机器,默认使用 /sbin/ifconfig 输出中的第一个内网ip, 在 ip 后面写上该机器要安装的服务列表即可, 部署过程中默认使用标准私有地址, 若企业环境使用非标准私有地址, 请参考非标准内网ip处理的处理方法。
zk 表示 zookeeper, es 表示 elasticsearch
gse 与 redis 需要部署在同一台机器上
gse 若需要跨云支持, gse 所在机器必须有外网 IP
增加机器数量时, 可以将以上配置中的服务挪到新的机器上,分担负载。 要保证: kafka, es, zk 的每个组件的总数量为3

globals.env
该文件定义了各类组件的账号密码信息. 功能开关控制选项等,我们现在此文件内指定,下面安装的过程中,脚本会读取此文件内容。

vim /data/install/globals.env
    26  # 域名信息
    27  export BK_DOMAIN="abcops.com"            # 蓝鲸根域名(不含主机名),此域名可不存在,后面我们使用hosts文件来暂时解析
    28  export PAAS_FQDN="paas.$BK_DOMAIN"       # PAAS 完整域名
    29  export CMDB_FQDN="cmdb.$BK_DOMAIN"       # CMDB 完整域名
    30  export JOB_FQDN="job.$BK_DOMAIN"         # JOB 完整域名
    31  export APPO_FQDN="o.$BK_DOMAIN"          # 正式环境完整域名
    32  export APPT_FQDN="t.$BK_DOMAIN"          # 测试环境完整域名
    33  
    34  # HAS_DNS_SERVER 选项, 域名解析通过 DNS server 还是通过配置 hosts
    35  # 通过 hosts 配置映射关系时, 一下默认为0, 表示没有自己的 DNS server
    36  #  此时, 会在所有机器上的 /etc/hosts 文件中添加 paas,cmdb,job 等平台的映射关系
    37  export HAS_DNS_SERVER=0
    38  
    39  # DB 信息      
    40  export MYSQL_USER="root"                # mysql 用户名
    41  export MYSQL_PASS='123456'              # 指定mysql密码
    42  export REDIS_PASS='123456'              # redis密码
    43  export MONGODB_USER="root"              # mongodb 用户名
    44  export MONGODB_PASS='123456'            # mongodb密码
    45  
    46  # 账户信息(建议修改)
    47  export MQ_USER=admin
    48  export MQ_PASS='123456'                  # MQ密码
    49  export ZK_USER=bkzk
    50  export ZK_PASS='123456'                  # zookeeper密码
    51  
    52  export PAAS_ADMIN_USER=admin
    53  export PAAS_ADMIN_PASS='123456'          #登录paas平台密码

配置免密登录

在中控机上进行配置免密登录(此时root一定能够登录系统,不能禁用root登录)

cd /data/install
bash configure_ssh_without_pass
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uCDzX7a3zHr7uugh5ylZpH69ce/Qa+JXCuEJCjgoDM8 root@cmdb_node1
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|.                |
|oo . .           |
|..E o ... . .    |
| .o ...+S. o o   |
|   + ...o   +.  .|
|    ..oo=.. o..o |
|     .+*.B+o.o+. |
|      .+B+OOo=+  |
+----[SHA256]-----+
Warning: Permanently added '192.168.31.221' (ECDSA) to the list of known hosts.
Warning: Permanently added '192.168.31.223' (ECDSA) to the list of known hosts.
root@192.168.31.223's password:         #输入192.168.31.223的密码
Warning: Permanently added '192.168.31.224' (ECDSA) to the list of known hosts.
root@192.168.31.224's password:         #输入192.168.31.224的密码

导入证书SSL

tar xf /usr/local/src/ssl_certificates.tar.gz -C /data/src/cert/
ls /data/src/cert/
gse_agent.crt       gse_api_client.key      gse_esb_api_client.key  gse_server.key          job_esb_api_client.key  license_prv.key  platform.key
gse_agent.key       gseca.crt               gse_job_api_client.p12  job_ca.crt              job_server.p12          md5.txt
gse_api_client.crt  gse_esb_api_client.crt  gse_server.crt          job_esb_api_client.crt  license_cert.cert       platform.cert

安装前校验环境是否满足

安装前校验环境是否满足,按文档要求做完环境和部署的配置后,准备开始安装前,请运行以下脚本,来校验是否满足:

cd /data/install
bash precheck.sh

#当前环境返回以下,才代表环境完全ok,如果有一项不ok,根据问题进行排查或者核对上述步骤
<<check_ssh_nopass>> has been checked successfully... SKIP
<<check_password>> has been checked successfully... SKIP
start <<check_cert_mac>> ... [OK]
start <<check_selinux>> ... [OK]
start <<check_umask>> ... [OK]
start <<check_get_lan_ip>> ... [OK]
start <<check_rabbitmq_version>> ... Repository cr is listed more than once in the configuration
Repository fasttrack is listed more than once in the configuration
[OK]
start <<check_http_proxy>> ... [OK]
start <<check_open_files_limit>> ... [OK]
start <<check_domain>> ... [OK]
start <<check_rsync>> ... [OK]
start <<check_networkmanager>> ... [OK]
start <<check_firewalld>> ... [OK]

部署蓝鲸

顺序执行以下操作完成蓝鲸基础平台的安装
以下步骤若有报错/失败,需要根据提示修复错误后,在重新执行相同的命令(断点续装)。
每一个步骤执行如果有报错,需要修复错误,保证安装成功后,才可以继续。因为安装蓝鲸平台的顺序是有依赖关系的。 前面的平台没有成功,如果继续往下安装,会遇到更多的报错。
修复错误所需要了解的相关命令,请参考维护文档

部署 paas 平台

中控机操作

cd /data/install/
./bk_install paas

where do you want to install blueking products.
enter a absolute path [/data/bkce]:                     #此处回车,确认paas的安装路径

此处问你是否同意蓝鲸协议等,输入"yes"

paas平台装好后,打印如下,我们可以在我们自己电脑添加hosts解析文件来去进行访问

添加hosts解析文件,我这是mac所以直接命令添加,如果win的话,打开hosts文件然后像这样加进去即可

tail -1 /etc/hosts
192.168.31.221 paas.abcops.com

登录页面,账号密码为我们刚才在globals.env配置文件中所指定的“admin/123456”

部署完成后,三台机器各自重新登录一下,重新加载当前的环境变量,因为主机名已经被更改

#cmdb_node1被改为
[root@nginx-1 ~]# hostname
nginx-1

#cmdb_node2被改为
[root@mongodb-1 ~]# hostname
mongodb-1

#cmdb_node3被改为
[root@paas-1 ~]# hostname
paas-1

部署 cmdb 平台

中控机操作

[root@nginx-1 ~]# cd /data/install/
[root@nginx-1 install]# ./bk_install cmdb


[192.168.31.224] server      cmdb_adminserver                 RUNNING   pid 32168, uptime 0:14:53
[192.168.31.224] server      cmdb_apiserver                   RUNNING   pid 32160, uptime 0:14:53
[192.168.31.224] server      cmdb_auditcontoller              RUNNING   pid 32149, uptime 0:14:53
[192.168.31.224] server      cmdb_datacollection              RUNNING   pid 32163, uptime 0:14:53
[192.168.31.224] server      cmdb_eventserver                 RUNNING   pid 32161, uptime 0:14:53
[192.168.31.224] server      cmdb_hostcontroller              RUNNING   pid 32143, uptime 0:14:53
[192.168.31.224] server      cmdb_hostserver                  RUNNING   pid 32144, uptime 0:14:53
[192.168.31.224] server      cmdb_objectcontroller            RUNNING   pid 32146, uptime 0:14:53
[192.168.31.224] server      cmdb_proccontroller              RUNNING   pid 32170, uptime 0:14:53
[192.168.31.224] server      cmdb_procserver                  RUNNING   pid 32148, uptime 0:14:53
[192.168.31.224] server      cmdb_toposerver                  RUNNING   pid 32145, uptime 0:14:53
[192.168.31.224] server      cmdb_webserver                   RUNNING   pid 32147, uptime 0:14:53

如果以上步骤没有报错, 你现在可以通过 http://cmdb.abcops.com:80 访问配置平台,

安装完成后返回如下

添加hosts解析文件,我这是mac所以直接命令添加,如果win的话,打开hosts文件然后像这样加进去即可

tail -2 /etc/hosts
192.168.31.221 paas.abcops.com
192.168.31.221 cmdb.abcops.com

登录页面——》点击配置平台

部署 job 平台

中控机操作

[root@nginx-1 install]# cd /data/install/
[root@nginx-1 install]# ./bk_install job

job安装成功截图

添加hosts解析文件

tail -3 /etc/hosts
192.168.31.221 paas.abcops.com
192.168.31.221 cmdb.abcops.com
192.168.31.221 job.abcops.com

登录页面后点击作业平台

部署 app_mgr 平台

[root@nginx-1 install]# cd /data/install/
[root@nginx-1 install]# ./bk_install app_mgr

该步骤完成后可以在开发者中心的 服务器信息 和 第三方服务信息 中看到已经成功激活的服务器
同时也可以进行 saas 应用(除蓝鲸监控和日志检索)的上传部署

安装完成截图:

如果以上步骤没有报错, 你现在可以完成正式环境及测试环境的部署,可以:
1. 通过./bk_install saas-o bk_nodeman 部署节点管理app, 或
2. 通过开发者中心部署app.
若要安装蓝鲸监控, 日志检索, 需要先通过 ./bk_install bkdata 安装 bkadta

开始部署saas-o bk_nodeman节点管理app

[root@nginx-1 install]# ./bk_install saas-o bk_nodeman

安装完成截图:

部署 bkdata

安装蓝鲸数据平台基础模块及其依赖服务

[root@nginx-1 install]# ./bk_install bkdata

如果以上步骤没有报错, 你现在可以完成bkdata 的部署,可以:
 1. 通过./bk_install saas-o bk_monitor 部署 蓝鲸监控app, 或
 2. 通过开发者中心部署 蓝鲸监控app

部署完成截图:

安装蓝鲸监控app
./bk_install saas-o bk_monitor 部署 蓝鲸监控app

[root@nginx-1 install]# ./bk_install saas-o bk_monitor

安装成功截图:

部署 fta 后台

安装故障自愈的后台服务

[root@nginx-1 install]# ./bk_install fta
如果以上步骤没有报错, 你现在可以完成 故障自愈后台 的部署,可以:
 1. 通过./bk_install saas-o bk_fta 部署故障自愈app, 或
 2. 通过开发者中心部署故障自愈app

安装完成截图:

安装故障自愈 app
注意,脚本打印出来的命令为“./bk_install saas-o bk_fta”,其实此安装包是不全的,安装包存储在/data/src/official_saas目录下

[root@nginx-1 install]# ls /data/src/official_saas/
bk_fta_solutions_V4.1.15.tar.gz  bk_log_search_V1.1.24.tar.gz  bk_monitor_V1.4.73.tar.gz  bk_nodeman_V1.0.80.tar.gz  bk_sops_V3.1.32-ce.tar.gz

应该执行以下命令

[root@nginx-1 install]# ./bk_install saas-o bk_fta_solutions

安装完成截图:

部署 gse_agent

重装一下 gse_agent 并注册正确的集群模块到配置平台

[root@nginx-1 install]# ./bkcec install gse_agent

部署 saas

部署官方SaaS到正式环境(通过命令行从/data/src/official_saas/目录自动部署SaaS)

[root@nginx-1 install]# ./bkcec install saas-o

安装完成截图:

这个时候去刷新平台就有7个模块了

第三方合作组件安装

安装网络管理平台

下载地址:https://bk.tencent.com/download_sdk/

下载完成后上传到中控机

#解压压缩
[root@nginx-1 src]# tar xf bknetwork.tgz -C /data/src/
[root@nginx-1 src]# tar xf /data/src/bknetwork/bknetwork-3.6.1.tgz -C /data/src/

#同步包内容
[root@nginx-1 src]# rsync -a /data/src/bknetwork/install/  /data/install/

此文件内保存的是蓝鲸网络管理平台的完整域名,可以根据实际情况修改,当然也可以不用修改

[root@nginx-1 src]# cat /data/install/third/globals_bknetwork.env
# vim:ft=sh

# 域名信息(蓝鲸合作伙伴应用)
export BKNETWORK_FQDN="bknetwork.$BK_DOMAIN"          # 蓝鲸网络管理平台完整域名

部署网络管理

[root@nginx-1 src]# cd /data/install/
[root@nginx-1 install]# ./bkco_install bknetwork
[192.168.31.221]20190926-144533 43   please add 'bknetwork' to 'install.config'     #报错说让 bknetwork 同步到 install.config中 

[root@nginx-1 install]# cat install.config
192.168.31.221 nginx,appt,rabbitmq,kafka,zk,es,bkdata,consul,fta
192.168.31.223 mongodb,appo,kafka,zk,es,mysql,beanstalk,consul,bknetwork            #我添加到了这里,让bknetwork部署到31.223机器上
192.168.31.224 paas,cmdb,job,gse,license,kafka,zk,es,redis,consul,influxdb

#再次进行安装
[root@nginx-1 install]# ./bkco_install bknetwork

安装成功后添加hosts解析文件,三台cmdb设备和自己的设备都添加最后一条
192.168.31.221 bknetwork.abcops.com

[root@nginx-1 nginx]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.221 cmdb_node1
192.168.31.223 cmdb_node2
192.168.31.224 cmdb_node3
192.168.31.221   nginx-1
192.168.31.221 paas.abcops.com
192.168.31.221 cmdb.abcops.com
192.168.31.221 job.abcops.com
192.168.31.221   rbtnode1
192.168.31.221 bknetwork.abcops.com

[root@mongodb-1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.221 cmdb_node1
192.168.31.223 cmdb_node2
192.168.31.224 cmdb_node3
192.168.31.223   mongodb-1
192.168.31.221 paas.abcops.com
192.168.31.221 cmdb.abcops.com
192.168.31.221 job.abcops.com
192.168.31.221 bknetwork.abcops.com

[root@paas-1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.217    cmdb_node1
192.168.31.221 cmdb_node1
192.168.31.223 cmdb_node2
192.168.31.224 cmdb_node3
192.168.31.224   paas-1
192.168.31.221 paas.abcops.com
192.168.31.221 cmdb.abcops.com
192.168.31.221 job.abcops.com
192.168.31.221 bknetwork.abcops.com

然后使用自己的设备去访问解析,以下是解析的页面

安装CICDKit

官网下载 V1.0.0 CICDKit软件包 和 bkce_install_cicdkit-1.0脚本安装包
安装CICDKit的机器可用配置不能低于4C8G,系统版本不能低于Centos7.0,建议单独一台机器部署
下载地址:https://bk.tencent.com/download_sdk/

1)下载完成上传到中控机

[root@nginx-1 src]# tar xf bkce_cicdkit-1.0.0.tgz -C /data/
[root@nginx-1 src]# tar xf install_ce-cicdkit_fix-1.0.2.tgz -C /data/

我看了下机器的硬件资源,三台机器内存已经被吃完了,所以我准备在新增一台4c8G的设备部署cicdkit,增加的机器需要把上面的准备环境步骤全部做一遍

2)修改域名

[root@nginx-1 src]# cat /data/install/third/globals_cicdkit.env
# vim:ft=sh

# 域名信息(蓝鲸合作伙伴应用)
export CICDKIT_FQDN="cicdkit.$BK_DOMAIN"          #域名信息在这里修改,我这里不做修改

3)修改install.config配置
修改安装脚本配置,install.config 新增cicdkit及其依赖的mysql5.7的配置

vim /data/install/install.config
192.168.31.221 nginx,appt,rabbitmq,kafka,zk,es,bkdata,consul,fta
192.168.31.223 mongodb,appo,kafka,zk,es,mysql,beanstalk,consul,bknetwork
192.168.31.224 paas,cmdb,job,gse,license,kafka,zk,es,redis,consul,influxdb
192.168.31.225 mysql57,cicdkit                      #新增此节点

4)添加hosts
所有机器都要添加225的hosts解析,包括225也要添加

vim /etc/hosts
192.168.31.225 cmdb_node4_cicd

5)再次做免密

[root@nginx-1 src]# cd /data/install/
[root@nginx-1 install]# bash configure_ssh_without_pass

Generating public/private rsa key pair.
/root/.ssh/id_rsa already exists.       #覆盖原来的免密文件
Overwrite (y/n)? y
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:v2OlimLdOj/mn3sxXKZ7PmXMKQWFeGeLUw/cRNRisu4 root@rbtnode1
The key's randomart image is:
+---[RSA 2048]----+
|            ..o*=|
|           ..+=+o|
|            .+*oo|
|            .ooo.|
|        S  o +oo.|
|         .  B. .=|
|     . .  .+ +.o |
|    o o.+ +oE o  |
|   . .o*+==+ o.. |
+----[SHA256]-----+
root@192.168.31.223's password: 
root@192.168.31.224's password: 
root@192.168.31.225's password:

6)安装CICDKit后台

[root@nginx-1 install]# ./bkcec sync common
[root@nginx-1 install]# ./bkco_install cicdkit

部署成功截图

部署完成后,重新登录192.168.31.221和192.168.31.225
执行下面命令添加hosts解析文件

echo $CICDKIT_FQDN  
                   
for ip in ${ALL_IP[@]};do
  ssh $ip "echo $CICDKIT_IP $CICDKIT_FQDN >>/etc/hosts"; done

然后重新加载下进程

[root@rbtnode1 ~]# source /data/install/utils.fc
[root@rbtnode1 install]# ./bkcec stop cicdkit self
[192.168.31.221]20190926-162719 112   stopping cicdkit(self) on host: 192.168.31.225
381b75b0381b
[root@rbtnode1 install]# ./bkcec start cicdkit self
[192.168.31.221]20190926-162739 72   starting cicdkit(self) on host: 192.168.31.225
d99d23ea07ecd54ebe2568de1985a31a176ab3169ed9cb0713b198e9cec0e477

7)下载cicdkit-saas部署
下载地址:https://bk.tencent.com/s-mart/application/159/detail

[root@rbtnode1 src]# tar xf bk_cicdkit_V1.0.0.tar -C /data/

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧