自动化运维平台部署
官方网站

前言

腾讯蓝鲸智云,简称蓝鲸,是一套基于 PaaS 的技术解决方案,提供了完善的前后台开发框架、调度引擎、公共组件等模块,帮助业务的产品和技术人员快速构建低成本、免运维的支撑工具和运营系统。

目前,腾讯蓝鲸智云团队秉承着开放共赢的态度,正逐渐开放其自主研发的一套具有多项探索式创新的体系—蓝鲸智云软件体系。该套体系不仅提供了基础运维(发布变更、监控处理、数值调整、数据提取等)的无人值守服务,而且还给运维人员提供了解决方案(工具),并随时调整,避免重复性的操作服务。而运维人员则可以做些“用户体验优化”和“运营决策辅助”等运维增值工作,并且可以通过蓝鲸智云提供的集成平台,低成本的学习 DevOps技能,进一步提升自己的能力,加速转型。此外,这套体系还可以运行轻应用、管理类、及职能类应用,是个全方位的运维、管理平台。

腾讯蓝鲸智云,运维领域的一张新名片,正在多个层次、多个领域崭露着头角,逐渐释放着自身特有的价值,引领着行业新标杆,开创了运维体系 2.0 的新局面。

体系介绍

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

物理准备

开始安装蓝鲸社区版前,需按以下文档指南,做好准备工作。本次部署使用:社区版 6.1.2 ,部署基础套餐
基础套餐包含:PaaS 平台、配置平台、作业平台、权限中心、用户管理、节点管理、标准运维、流程服务

获取资源包

下载对应的资源包,并上传至中控机 /data 目录下。
下载地址

机器准备

操作系统:CentOS7.6 mini
生产环境:建议 8 核 32 G,硬盘 100G 以上(可根据实际情况适当调整配置)
机器数量:3 台(假设 ip 分别为:10.11.8.69(lj1),10.11.8.70(lj2),10.11.8.71(lj3))
选择一台为中控机(假设为 10.11.8.69)进行安装部署操作,使用 root 账号登录。

获取证书

通过 ifconfig 或者 ip addr 命令分别获取 3 台机器第一个内网网卡 MAC 地址
前往蓝鲸官网证书生成页面,根据提示在输入框中填入英文分号分隔的三个 MAC 地址,生成并下载证书
上传证书包至中控机 /data;证书包包名:ssl_certificates.tar.gz

环境准备

部署参考

初始化

关闭SELinux及默认防火墙(firewalld)
安装和运行蓝鲸时,模块之间互相访问的端口策略较多,建议对蓝鲸后台服务器之间关闭防火墙。以下命令每台机器均需执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 官方建议,腾讯云yum源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo

[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

# 关闭防火墙以及selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl disable NetworkManager


[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config

[root@localhost ~]# cat >> /etc/security/limits.conf <<EOF
* soft nproc 65530
* hard nproc 65530
* soft nofile 65530
* hard nofile 65530
EOF
[root@localhost ~]# ulimit -n 65535
[root@localhost ~]# ulimit -u 20480

# 必要环境包
[root@localhost ~]# yum install -y rsync pssh jq deltarpm ntpdate epel-release rsync

# 同步时间
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
[root@localhost ~]# ntpdate -b ntp1.aliyun.com

# 修改主机名 各自分配
[root@localhost ~]# hostnamectl set-hostname lj1

解压资源包

1
2
3
4
5
6
7
8
9
10
11
[root@lj1 ~]# cd /data
[root@lj1 ~]# tar xf bkce_basic_suite-6.1.1-beta1.tgz
# 解压各个产品软件包
[root@lj1 ~]# cd /data/src/; for f in *gz;do tar xf $f; done
# 解压证书包
[root@lj1 ~]# install -d -m 755 /data/src/cert
[root@lj1 ~]# tar xf /data/ssl_certificates.tar.gz -C /data/src/cert/
[root@lj1 ~]# chmod 644 /data/src/cert/*

# 拷贝 rpm 包文件夹到 /opt/ 目录
[root@lj1 ~]# cp -a /data/src/yum /opt

配置install.config

gse 与 redis 需要部署在同一台机器上。
当含多个内网 IP 时,默认使用 /sbin/ifconfig 输出中的第一个内网 IP。

1
2
3
4
5
6
[root@lj1 ~]#  cat << EOF >/data/install/install.config
[basic]
10.11.8.69 iam,ssm,usermgr,gse,license,redis,consul,es7
10.11.8.70 paas,nginx,consul,mongodb,rabbitmq,appo,zk(config)
10.11.8.71 cmdb,job,mysql,appt,consul,nodeman(nodeman)
EOF

执行免密

1
2
[root@lj1 ~]# cd /data/install
[root@lj1 ~]# bash /data/install/configure_ssh_without_pass

部署蓝鲸

初始化并检查环境

执行初始化环境操作,并检查环境和部署的配置情况(执行很多操作,耐心等待)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@lj1 install]# cd /data/install
# 自己选择安装路径,可以选择使用默认的路径:/data/bkce
[root@lj1 install]# ./bk_install common
·········
Replaced:
mariadb-libs.x86_64 1:5.5.60-1.el7_5
Complete!
如果以上步骤没有报错, 已经完成蓝鲸部署基础依赖安装, 执行以下步骤:
1. 通过./bk_install paas, 部署蓝鲸paas平台


# 校验环境和部署的配置
[root@lj1 install]# ./health_check/check_bk_controller.sh
<<check_ssh_nopass>> has been checked successfully... SKIP
start <<check_hostname_uniq>> ... [OK]
start <<check_cert_mac>> ... [OK]
start <<check_install_config>> ... [OK]
start <<check_domain>> ... [OK]
start <<check_src_dir>> ... [OK]

部署PaaS平台

部署 PaaS 平台及其依赖服务,PaaS 平台部署完成后,可以访问蓝鲸的 PaaS 平台。(执行很多操作,耐心等待)

1
2
3
4
5
6
7
8
9
10
11
[root@lj1 install]# ./bk_install paas
·········
add bk_user_manage to esb skip_user_auth white list succeed
add bk_itsm to esb skip_user_auth white list succeed
add bk_bcs_app to esb skip_user_auth white list succeed

如果以上步骤没有报错, 你现在可以通过 http://paas.bktencent.com:80 访问 paas 平台,
登陆用户名(login user): admin
登陆密码(login password): rnFZKPhdQ587

蓝鲸智云后台管理 http://paas.bktencent.com/admin

Windows配置

C:\Windows\System32\drivers\etc\hosts
将以下内容复制到上述文件内,并将以下 IP 需更换为本机浏览器可以访问的 IP,然后保存。
10.11.8.70 paas.bktencent.com cmdb.bktencent.com job.bktencent.com jobapi.bktencent.com bkapi_check.bktencent.com
10.11.8.71 nodeman.bktencent.com
注意: 10.11.8.70 为 nginx 模块所在的机器,10.11.8.71 为 nodeman 模块所在的机器。IP 需更换为本机浏览器可以访问的 IP。
查询模块所分布在机器的方式:

1
2
3
[root@lj1 ~]# grep -E "nginx|nodeman" /data/install/install.config
10.11.8.70 paas,nginx,consul,mongodb,rabbitmq,appo,zk(config)
10.11.8.71 cmdb,job,mysql,appt,consul,nodeman(nodeman)

Linux / Mac OS 配置

将以下内容复制到 /etc/hosts 中,并将以下 IP 需更换为本机浏览器可以访问的 IP,然后保存。
10.11.8.70 paas.bktencent.com cmdb.bktencent.com job.bktencent.com jobapi.bktencent.com bkapi_check.bktencent.com
10.11.8.71 nodeman.bktencent.com

找回密码

在任意一台机器上,执行以下命令,获取管理员账号和密码。

1
2
3
[root@lj1 ~]# grep -E "BK_PAAS_ADMIN_USERNAME|BK_PAAS_ADMIN_PASSWORD" /data/install/bin/04-final/usermgr.env
BK_PAAS_ADMIN_PASSWORD=rnFZKPhdQ587
BK_PAAS_ADMIN_USERNAME=admin

部署app_mgr

部署 SaaS 运行环境

1
2
3
4
5
6
7
[root@lj1 install]# ./bk_install app_mgr
Service Status Description
rabbitmq-server.service active pid 18744 (beam.smp), uptime 47min ago

如果以上步骤没有报错, 已经完成 PaaSAgent正式环境及测试环境 的部署,接下来可以:
1. 通过./bk_install saas-o bk_nodeman 部署节点管理app
2. 通过开发者中心部署app.


部署权限中心与用户管理

部署权限中心 SaaS 和 部署用户管理 SaaS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@lj1 install]# ./bk_install saas-o bk_iam
·········
2022-12-19 19:48:01 74 INFO check deploy result. retry 64
2022-12-19 19:48:03 74 INFO check deploy result. retry 65
2022-12-19 19:48:03 80 INFO bk_iam have been deployed successfully
[10.11.8.69]20221219-194803 177 SaaS application bk_iam has been deployed successfully

如果以上步骤没有报错, 已经完成 蓝鲸SaaS(bk_iam) 的部署

[root@lj1 install]# ./bk_install saas-o bk_user_manage
·········
2022-12-19 19:55:05 74 INFO check deploy result. retry 82
2022-12-19 19:55:08 74 INFO check deploy result. retry 83
2022-12-19 19:55:08 80 INFO bk_user_manage have been deployed successfully
[10.11.8.69]20221219-195508 177 SaaS application bk_user_manage has been deployed successfully

如果以上步骤没有报错, 已经完成 蓝鲸SaaS(bk_user_manage) 的部署

部署 CMDB

部署配置平台及其依赖服务

1
2
3
4
5
6
7
8
[root@lj1 install]# ./bk_install cmdb
·········
bk-cmdb-proc.service active pid 20557 (cmdb_procserver), uptime 7min ago
bk-cmdb-task.service active pid 20528 (cmdb_taskserver), uptime 7min ago
bk-cmdb-topo.service active pid 20545 (cmdb_toposerver), uptime 7min ago
bk-cmdb-web.service active pid 20543 (cmdb_webserver), uptime 7min ago

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

部署 JOB

部署作业平台后台模块及其依赖组件

1
2
3
4
5
6
7
[root@lj1 install]# ./bk_install job
·········
bk-job-logsvr.service active pid 23895 (java), uptime 1min 0s ago
bk-job-backup.service active pid 23837 (java), uptime 36s ago
bk-job-analysis.service active pid 23830 (java), uptime 49s ago

如果以上步骤没有报错, 你现在可以通过 http://job.bktencent.com:80 访问作业平台,

部署 bknodeman

部署节点管理后台模块、节点管理 SaaS 及其依赖组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# bknodeman会包含 saas-o bk_nodeman
[root@lj1 install]# ./bk_install bknodeman
nodeman_api RUNNING pid 28881, uptime 0:15:27
nodeman_apply_resource_watched_events RUNNING pid 28882, uptime 0:15:27
nodeman_celery_backend:~_00 RUNNING pid 28883, uptime 0:15:27
nodeman_celery_backend_additional:~_00 RUNNING pid 28884, uptime 0:15:27
nodeman_celery_beat:~_00 RUNNING pid 28886, uptime 0:15:27
nodeman_celery_default:~_00 RUNNING pid 28889, uptime 0:15:27
nodeman_pipeline_additional:~_00 RUNNING pid 28890, uptime 0:15:27
nodeman_pipeline_schedule:~_00 RUNNING pid 28891, uptime 0:15:27
nodeman_pipeline_schedule:~_01 RUNNING pid 28893, uptime 0:15:27
nodeman_pipeline_worker:~_00 RUNNING pid 28895, uptime 0:15:27
nodeman_pipeline_worker:~_01 RUNNING pid 28896, uptime 0:15:27
nodeman_sync_host_event RUNNING pid 29776, uptime 0:03:20
nodeman_sync_host_relation_event RUNNING pid 29771, uptime 0:03:21
nodeman_sync_process_event RUNNING pid 29804, uptime 0:02:28
consul-template.service active pid 19612 (consul-template), uptime 3h 56min ago
openresty.service active pid 19515 (nginx), uptime 3h 56min ago

如果以上步骤没有报错, 节点管理部署完成

#[root@lj1 install]# ./bk_install saas-o bk_nodeman ??

部署标准运维及流程服务

部署标准运维 SaaS 和 部署流程管理 SaaS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@lj1 install]# ./bk_install saas-o bk_sops
·········
2022-12-19 20:41:08 74 INFO check deploy result. retry 91
2022-12-19 20:41:10 74 INFO check deploy result. retry 92
2022-12-19 20:41:11 80 INFO bk_sops have been deployed successfully
[10.11.8.69]20221219-204111 177 SaaS application bk_sops has been deployed successfully

如果以上步骤没有报错, 已经完成 蓝鲸SaaS(bk_sops) 的部署
[root@lj1 install]# ./bk_install saas-o bk_itsm
·········
2022-12-19 21:01:19 74 INFO check deploy result. retry 85
2022-12-19 21:01:20 80 INFO bk_itsm have been deployed successfully
[10.11.8.69]20221219-210120 177 SaaS application bk_itsm has been deployed successfully

如果以上步骤没有报错, 已经完成 蓝鲸SaaS(bk_itsm) 的部署

加载蓝鲸相关维护命令

1
[root@lj1 install]# source ~/.bashrc

初始化蓝鲸业务拓扑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@lj1 install]# ./bkcli initdata topo
2022-12-19 21:04:52,264 358 INFO 服务模板 -> [service_template] 创建成功
2022-12-19 21:04:52,568 358 INFO 服务模板 -> [bk-iam] 创建成功
2022-12-19 21:04:52,789 358 INFO 服务模板 -> [bkiam-search-engine] 创建成功
·········
create bcs(1) 集群模板成功
bcs(1) set template is already up to date
create cmdb(2) 集群模板成功
update cmdb(2) successful
create controller(3) 集群模板成功
·········
2022-12-19 21:05:49,149 145 INFO 蓝鲸业务集群 -> [中控机] 创建成功
2022-12-19 21:05:49,502 145 INFO 蓝鲸业务集群 -> [PaaS平台] 创建成功
2022-12-19 21:05:49,699 145 INFO 蓝鲸业务集群 -> [用户认证平台] 创建成功
2022-12-19 21:05:50,002 145 INFO 蓝鲸业务集群 -> [作业平台v3] 创建成功
·········
2022-12-19 21:06:04,833 713 INFO Host -> [10.11.8.71] registered module -> [job-backup] success
2022-12-19 21:06:05,019 713 INFO Host -> [10.11.8.71] registered module -> [job-analysis] success
2022-12-19 21:06:05,196 713 INFO Host -> [10.11.8.71] registered module -> [nodeman-api] success

检测相关服务状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[root@lj1 install]# cd /data/install/
[root@lj1 install]# echo bkssm bkiam usermgr paas cmdb gse job consul | xargs -n 1 ./bkcli check
[1] 21:07:50 [SUCCESS] 10.11.8.69
bkssm(http://10.11.8.69:5000/healthz) : true
[1] 21:07:51 [SUCCESS] 10.11.8.69
bkiam(http://10.11.8.69:5001/healthz) : true
[1] 21:07:52 [SUCCESS] 10.11.8.69
usermgr(http://10.11.8.69:8009/healthz/) : true
[1] 21:07:53 [SUCCESS] 10.11.8.70
paas-apigw(http://10.11.8.70:8005/api/healthz/): true
paas-appengine(http://10.11.8.70:8000/v1/healthz/): true
·········
[1] 21:08:22 [SUCCESS] 10.11.8.69
bk-gse-alarm : running
bk-gse-api : running
bk-gse-btsvr : running
bk-gse-config : running
bk-gse-data : running
bk-gse-dba : running
bk-gse-procmgr : running
bk-gse-task : running

check job backend health
[1] 21:08:24 [SUCCESS] 10.11.8.71
job-execute : true
job-backup : true
job-logsvr : true
job-crontab : true
job-config : true
job-analysis : true
job-gateway-management: true
job-manage : true

check job frontend resource
[1] 21:08:25 [SUCCESS] 10.11.8.70
-rw-r--r-- 1 blueking blueking 2170 Dec 19 19:37 /data/bkce/job/frontend/index.html
[1] 21:08:26 [SUCCESS] 10.11.8.69
check_consul_process [OK]
check_consul_listen_udp_53 [OK]
·········
check_consul_critical_svc [OK]
check_resolv_conf_127.0.0.1 [OK]