详解单机部署蓝鲸5.1.29版本

概述

由于蓝鲸cmdb没有用户模块,估计在蓝鲸其他平台了,所以顺便测试了整个蓝鲸,这里用的是最新稳定版5.1.29,部分测试的bug客服回复需在6.0版本才解决..

一、概述

腾讯蓝鲸智云,简称蓝鲸,是腾讯互动娱乐事业群(Interactive Entertainment Group,简称 IEG)自研自用的一套用于构建企业研发运营一体化体系的 PaaS 开发框架,提供了 aPaaS(DevOps 流水线、运行环境托管、前后台框架)和 iPaaS(持续集成、CMDB、作业平台、容器管理、数据平台、AI 等原子平台)等模块,帮助企业技术人员快速构建基础运营 PaaS。

bk-ci是一个免费并开源的CI服务,可助你自动化构建-测试-发布工作流,持续、快速、高质量地交付你的产品。

使用bk-ci屏蔽掉所有研发流程中的繁琐环节,让你聚焦于编码。它通常被用于:

工程编译静态代码检查运行测试用例,及时发现BUG部署与发布

bk-ci提供了流水线、代码库、凭证管理、环境管理、研发商店5大核心服务,多重组合,满足企业不同场景的需求:

流水线:将团队现有的研发流程以可视化方式呈现出来,编译、测试、部署,一条流水线搞定代码库:将企业内已有的代码托管服务关联至bk-ci凭证管理:为代码库、流水线等服务提供不同类型的凭据、证书管理功能环境管理:可以将企业内部的开发编译机托管至bk-ci研发商店:由流水线插件和流水线模板组成,插件用于对接企业内部的各种第三方服务,模板助力企业内部的研发流程规范化

单机部署方案是针对新老用户快速低成本的搭建一套精简版的蓝鲸社区版推出的。

从社区版 4.1.11 版本开始,支持完整版本蓝鲸的单机部署体验,前提要求是,单机 CPU 不低于 2 核,可用内存不低于 16GB。 若机器性能没满足要求,只能部署精简版的蓝鲸平台。

精简版蓝鲸平台满足简单的运维场景需求,包含:PaaS 平台,配置平台,作业平台,以及安装 Agent 用的 节点管理 SaaS。

二、基础环境准备

这里拿了一台测试服务器先做测试,配置为8核16G,如果低于这个配置会有各种各样的问题,建议最低按这个配置来进行。

1、禁用selinux、防火墙、networkmanager

setenforce 0 sed -i s/^SELINUX=enforcing/SELINUX=disabled/g /etc/sysconfig/selinux systemctl stop firewalld systemctl disable firewalld systemctl stop NetworkManager systemctl disable NetworkManager

2、调整最大文件打开数

#在centos7中limits.conf配置只适用于通过PAM认证登录用户的资源限制 cat >> /etc/security/limits.conf << EOF * softnofile65535 * hardnofile65535 * softnproc 65535 * hardnproc 65535 EOF #在centos7中system.conf适用于对systemd的service的资源限制 cat >> /etc/systemd/system.conf << EOF DefaultLimitCORE=infinity DefaultLimitNOFILE=65535 DefaultLimitNPROC=65535 EOF systemctl daemon-reexec #这里不把ulimit写到/etc/profile,因为蓝鲸后面有个组件会自动加这个参数,然后会导致冲突无法启动ES ulimit -HSn 65535

3、配置yum源

在所有蓝鲸服务器上配置好 yum 源,要求该 yum 源包含 EPEL。

for i in /etc/yum.repos.d/*.repo;do cp $i ${i%.repo}.bak;done rm -rf /etc/yum.repos.d/*.repo #centos7 wget -O /etc/yum.repos.d/CentOS-Base.repo # epel(RHEL7系列) wget -O /etc/yum.repos.d/epel.repo yum clean all && yum makecache

4、确认服务器时间同步

yum install -y ntpdate # 检查每台机器当前时间和时区是否一致,若相互之间差别大于3s(考虑批量执行时的时差),建议校时。 date -R # 查看和ntp server的时间差异(需要外网访问,如果内网有ntpd服务器,自行替换域名为该服务的地址) ntpdate -d cn.pool.ntp.org 如果输出的最后一行offset大于1s建议校时 # 和ntp服务器同步时间 ntpdate cn.pool.ntp.org

5、检查是否存在全局HTTP代理

蓝鲸服务器之间会有的http请求,如果存在http代理,且未能正确代理这些请求,会发生不可预见的错误。

# 检查http_proxy https_proxy变量是否设置,若为空可以跳过后面的操作 echo "$http_proxy" "$https_proxy"

6、安装rsync

yum install -y rsync

7、检查resolv.conf是否有修改权限

检查 /etc/resolv.conf 是否被加密无法修改(即便是 root),执行如下命令,检查是否有“i”加密字样

lsattr /etc/resolv.conf --如果有则临时解密处理: chattr -i /etc/resolv.conf

8、配置主机名解析

cat > /etc/hostname << EOF bk-ci EOF cat >> /etc/hosts << EOF xxxxbk-ci 127.0.0.1bk-ci EOF

二、安装前准备

1、下载安装包并解压

下载地址为:https://bkopen-1252002024.file.myqcloud.com/ce/38f7796/bkce_src-5.1.29.tar.gz

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

目录说明:

bkdata:数据平台基础模块存放路径,包含 dataapi,databus,monitor 三个子工程dataapi/:数据平台 API 接口服务databus/:数据平台总线服务monitor/:蓝鲸监控后台服务bknetwork:网络管理 SaaS 的后台模块blueking.env:证书环境变量cert/:放置证书文件的目录cmdb/:配置平台后台ENTERPRISE:代号文件,社区版默认都是 bluekingfta:故障自愈后台gse/:管控平台后台job/:作业平台后台license/:鉴权服务器MD5:MD5 校验文件miniweb/:空目录,安装时会动态生成一些脚本和配置文件到这里official_saas/:官方 SaaS 包,可以在后台一键部署蓝鲸官方 SaaSopen_paas/:PaaS 后台paas_agent/:SaaS 部署后台service/:开源组件存放目录VERSION:社区版版本号文件

2、配置ssl证书

2.1、通过 ifconfig 或者 ip addr 命令获取 install.config 文件中,license 和 gse 模块所在服务器的第一个内网网卡的 MAC 地址。如果分别属于两台服务器,那么两个的 MAC 地址以英文;分隔。

2.2、在官网证书生成页面根据输入框提示填入 MAC 地址,生成并下载证书。

下载证书文件: https://bk.tencent.com/download_ssl/

2.3、上传证书到中控机,并解压到 src/cert 目录下。

tar -xvf ssl_certificates.tar.gz -C /data/src/cert

3、修改配置文件(只需修改globals.evn文件)

在 install 目录下, 共有三个配置

install.configglobals.envports.env

3.1、install.config(这个文件单机部署时安装脚本会自动生成,无需自行配置)

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

由于appo和appt不能部署到同一台机器,所以单机部署的时候要二选一

说明:

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

3.2、globals.env(重点关注域名和 GSE 外网 IP 相关的配置)

该文件定义了各类组件的账号密码信息. 功能开关控制选项等. 可根据实际情况进行修改.配置项含义, 请查看文件中的注释

该文件含密码信息,请保证除了root用户外,其他用户不可读。各类账号密码建议修改, 注意设置的各类密码不能有 / $ ` < > &等特殊字符配置HTTP代理: 若公司不能访问外网, 但有自己的 proxy, 在该配置文件的 BK_PROXY 选项中指定代理地址.若需要跨云管理功能(服务器在不同的 IDC, 内网不互通的情况):需要将 gse 所在机器的外网IP填到该文件中 GSE_WAN_IP 配置项中的括号里 如: export GSE_WAN_IP=(1.2.3.4), 若没有外网IP 则留空HAS_DNS_SERVER 配置默认为0,表示配置的蓝鲸域名需要通过/etc/hosts来解析,此时部署脚本会自动修改每台机器的/etc/hosts添加相关域名。如果想走自己的dns配置,改为非0即可。HTTP_SCHEMA=http 默认HTTP_SCHEMA设置为http即蓝鲸软件全站为http,若设置为https则蓝鲸软件全站为https,可支持http和https的切换。该配置文件中提供了访问蓝鲸三大平台的域名配置, 需要提前准备好.export BK_DOMAIN="bk.com" # 蓝鲸根域名(不含主机名) export PAAS_FQDN="paas.$BK_DOMAIN" # PAAS 完整域名 export CMDB_FQDN="cmdb.$BK_DOMAIN" # CMDB 完整域名 export JOB_FQDN="job.$BK_DOMAIN" # JOB 完整域名

说明:

1)BK_DOMAIN的值不能为"com" "net" 这种顶级域名, 至少二级域名开始。

2)FQDN的选择需要遵循DNS的命名规范,可选的字符集是[A-Za-z0-9.]以及"-", 特别要注意,下划线(_)是不允许的。

3)PAAS_FQDN CMDB_FQDN JOB_FQDN的值都必须在BK_DOMAIN定义的根域名之下,保证登陆鉴权的cookie文件有效。

3.3、ports.env

端口定义,默认情况下, 不用修改。

三、安装蓝鲸持续集成平台

1、开始安装

以下步骤若有报错/失败,需要根据提示修复错误后,重新执行相同的命令(断点续装)。

--按需部署 cd /data/install ./install_minibk # 该步骤后,可以打开 paas 平台 ./bk_install paas# 安装paas 平台及其依赖服务 # 该步骤完成后, 可以打开 cmdb, 看到蓝鲸业务及示例业务 ./bk_install cmdb# 安装 cmdb 及其依赖服务 # 该步骤完成后, 可以打开作业平台, 并执行作业 # 同时在配置平台中可以看到蓝鲸的模块下加入了主机 ./bk_install job # 安装作业平台及其依赖组件,并在安装蓝鲸的服务器上装好 gse_agent 供验证 # 该步骤完成后可以在开发者中心的 服务器信息 和 第三方服务信息 中看到已经成功激活的服务器 # 同时也可以进行 saas 应用(除蓝鲸监控和日志检索)的上传部署 ./bk_install app_mgr # 部署正式环境及测试环境 #安装该模块后,可以开始安装saas 应用: 蓝鲸监控及日志检索 ./bk_install bkdata # 安装蓝鲸数据平台基础模块及其依赖服务 # 安装 fta 后台 ./bk_install fta# 安装故障自愈的后台服务 # 重装一下 gse_agent 并注册正确的集群模块到配置平台 ./bkcec install gse_agent # 部署官方SaaS到正式环境(通过命令行从/data/src/official_saas/目录自动部署SaaS) ./bkcec install saas-o #故障自愈./bk_install saas-o bk_fta_solutions #日志检索 ./bk_install saas-o bk_log_search #节点管理./bk_install saas-o bk_nodeman #标准运维 ./bk_install saas-o bk_sops #蓝鲸监控 ./bk_install saas-o bk_monitor

2、安装成功部分截图

2.1、paas平台

2.2、cmdb平台

2.3、job平台

2.4、app_mgr平台

2.5、bk_nodeman平台

2.6、bkdata平台(这里的坑还真的不少)

2.7、fta平台

2.8、重新安装gse_agent

2.9、saas-o平台

3、测试访问

配置主机解析后测试访问:

 1xxxx paas.bk.comcmdb.bk.com job.bk.com

密码见/data/install/install.config设置

总结

界面体验还不错,但是部署好像bug有点多?我这都改了几次源码才全部模块部署完了..后面放一下常见的报错及解决办法,仅供参考。