1、环境准备
单机部署:官方建议硬件要求为 4C/16G 以上
1.1:获取软件包
访问:https://bk.tencent.com/download/
1.2:系统环境设置
官方建议:要求 CentOS-7.0 以上版本,推荐 CentOS-7.5
安装一些常用命令
[root@localhost ~]# yum -y install vim lrzsz net-tools ntp wget
1.2.1:关闭 seLinux
[root@localhost ~]# setenforce 0
#修改配置文件
[root@localhost ~]# sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
1.2.2:重启系统
[root@localhost ~]# reboot
1.2.3:安装 rsync
# 检查是否有rsync命令,如果有返回rsync路径,可以跳过后面的命令
[root@localhost ~]# which rsync
# 安装rsync
[root@localhost ~]# yum -y install rsync
1.2.4:关闭防火墙
# 检查默认防火墙状态, 如果返回not running,可以跳过后面的命令
[root@localhost ~]# firewall-cmd --state
#停止并禁用firewalld:
[root@localhost ~]# systemctl stop firewalld # 停止firewalld
[root@localhost ~]# systemctl disable firewalld # 禁用firewall开机启动
1.2.5:调整最大文件打开数
# 检查当前root账号下的max open files值
[root@localhost ~]# ulimit -n
#如果为默认的1024,建议通过修改配置文件调整为102400或更大。
[root@localhost ~]# vim /etc/security/limits.d/99-nofile.conf
root soft nofile 102400
root hard nofile 102400
这里使用的单独的配置文件覆盖/etc/security/limits.conf默认值的方式,请根据系统环境自行调整。
修改后,重新使用root登录检查是否生效
[root@localhost ~]# su
[root@localhost ~]# ulimit -n
1.2.6:时间同步
服务器后台时间不同步会对时间敏感的服务带来不可预见的后果。务必在安装和使用蓝鲸时保证时间同步。
# 检查每台机器当前时间和时区是否一致,若相互之间差别大于3s(考虑批量执行时的时差),建议校时。
[root@localhost ~]# yum -y install ntp
[root@localhost ~]# date -R
# 查看和ntp server的时间差异(需要外网访问,如果内网有ntpd服务器,自行替换域名为该服务的地址)
[root@localhost ~]# ntpdate -d cn.pool.ntp.org
#如果输出的最后一行offset大于1s建议校时
#和ntp服务器同步时间
[root@localhost ~]# ntpdate cn.pool.ntp.org
1.2.7:检查是否存在全局 HTTP 代理
蓝鲸服务器之间会有的 http 请求,如果存在 http 代理,且未能正确代理这些请求,会发生不可预见的错误。
#检查http_proxy https_proxy变量是否设置,若为空可以跳过后面的操作
[root@localhost ~]# echo "$http_proxy" "$https_proxy"
对于本机配置http_proxy变量的方式,请依次查找文件/etc/profile、/etc/bashrc、$HOME/.bashrc等是否有设置。
1.2.8:关闭 NetworkManager
#查看NetworkManager状态
[root@localhost ~]# systemctl status NetworkManager.service
#关闭NetworkManager
[root@localhost ~]# systemctl stop NetworkManager.service
#将NetworkManager 服务设置开机不启动
[root@localhost ~]# systemctl disable NetworkManager.service
1.3:配置 YUM 源
1.3.1:获取 BASE 源
#备份默认源
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#获取网络源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
1.3.2:获取 EPEL 源
[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
1.4:获取证书
https://bk.tencent.com/download_ssl/
通过命令得到本机的 Mac 地址,然后复制到上面网址中进行下载证书文件
2、安装前准备
2.1:解压程序包
#上传包至服务器并解压程序包到/data目录下
[root@localhost ~]# mkdir /data
[root@localhost ~]# tar -xf bkce_src-5.0.4.tar.gz -C /data/
#解压后/data目录下有2个目录install 和 src目录
#解压ssl证书文件
[root@localhost ~]# tar -xf ssl_certificates.tar.gz -C /data/src/cert/
2.2:修改配置文件
2.2.1:install.conf
install.config 是模块和服务器对应关系的配置文件,描述在哪些机器上安装哪些模块。 每行两列,第一列是 IP 地址;第二列是以英文逗号分隔的模块名称。
[root@localhost ~]# cd /data/install/
[root@localhost install]# cp install.config.3IP.sample install.config
[root@localhost install]# vim install.config
注意:此处云服务器写公网ip
[root@localhost install]# curl ip.sb
[root@localhost install]# vim globals.env
下面的域名根据实际情况进行修改为自己的
export BK_DOMAIN="bk.cloud.tencent.com" # 蓝鲸根域名(不含主机名)
export PAAS_FQDN="yppaas.$BK_DOMAIN" # PAAS 完整域名
export CMDB_FQDN="ypcmdb.$BK_DOMAIN" # CMDB 完整域名
export JOB_FQDN="ypjob.$BK_DOMAIN" # JOB 完整域名
PAAS_ADMIN_PASS为`BWvQEaYO`修改
其余默认即可
2.2.3:pip.conf
[root@localhost ~]# mkdir -p /data/src/.pip/
[root@localhost ~]# vim /data/src/.pip/pip.conf
[global]
index-url = ![img](file:///C:\Users\LFL\AppData\Local\Temp\%W@GJ$ACOF(TYDYECOKVDYB.png)https://pypi.tuna.tsinghua.edu.cn/simple
[root@localhost ~]# curl -I http://mirrors.cloud.tencent.com/pypi/simple
2.3:配置免密登入
[root@localhost ~]# cd /data/install/
[root@localhost install]# bash configure_ssh_without_pass # 根据提示输入各主机的 root 密码完成免密登陆配置
2.4:安装前检查环境
[root@localhost ~]# cd /data/install/
[root@localhost install]# bash precheck.sh
正常如图下所示
- 如果发现有[FAIL]的报错,按照提示和本文档修复。修复后,可继续跑 precheck.sh 脚本,直到不再出现[FAIL]。如果需要从头开始检查,请使用 precheck.sh -r 参数
3、开始安装
3.1:执行安装
[root@localhost ~]# mkdir /usr/local/blueking
[root@localhost ~]# cd /data/install/
[root@localhost install]# ./install_minibk -y
……
<<check_networkmanager>> has been checked successfully... SKIP
<<check_firewalld>> has been checked successfully... SKIP
where do you want to install blueking products.
enter a absolute path [/data/bkce]:直接回车确定
……
enter a absolute path [/data/bkce]: /usr/local/blueking #输入安装的位置
directory /usr/local/blueking exists, are you sure to install blueking suite to /usr/local/blueking (yes/no)? yes
- 出现错误:
parse cc response error 解析 cc 错误 解决方案:
官方给出
[root@localhost ~]# source /data/install/utils.fc
[root@localhost ~]# cd /data/install
[root@localhost install]# ./bkcec status all
[root@localhost install]# ./bkcec stop gse
[root@localhost install]# ./bkcec install gse 1
[root@localhost install]# ./bkcec initdata gse
再次执行安装
[root@localhost install]# ./install_minibk -y
4、访问页面
windows:修改 hosts 文件进行域名解析
C:\Windows\System32\drivers\etc\hosts
192.168.66.35 localhost.localdomain
192.168.66.35 yppaas.bk.com
192.168.66.35 ypcmdb.bk.com
192.168.66.35 ypjob.bk.com
192.168.66.35 rbtnode1
- 注意:登入的用户和密码是配置文件 globals.env 中设置的
一般用户为 admin,密码为自己修改的密码
5、网络管理部署
5.1:下载插件包
下载部署第三方的网络管理平台
插件包地址https://bk.tencent.com/download_sdk/
5.2:解压安装
#先执行下环境变量文件
[root@rbtnode1 ~]# source /data/install/globals.env
#上传插件包进行解压安装
[root@rbtnode1 ~]# tar xf bknetwork.tgz -C /data/src/
[root@rbtnode1 ~]# tar xf /data/src/bknetwork/bknetwork-3.6.1.tgz -C /data/src/
[root@rbtnode1 ~]# rsync -a /data/src/bknetwork/install/ /data/install/
5.3:根据实际情况修改域名
根据实际情况修改中控机/data/install/third/globals_bknetwork.env 网络管理域名等信息
5.4:部署网络管理
[root@rbtnode1 ~]# cd /data/install/
[root@rbtnode1 install]# ./bkco_install bknetwork
5.5:win 系统添加域名解析
windows:修改 hosts 文件进行域名解析
C:\Windows\System32\drivers\etc\hosts
192.168.66.35 bknetwork.bk.com
5.6:访问页面
http://bknetwork.bk.com
6、部署 CICD 插件
6.1:下载插件包和脚本
https://bk.tencent.com/download_sdk/
6.2:解压安装
[root@rbtnode1 ~]# tar -xf bkce_cicdkit-1.0.0.tgz -C /data
[root@rbtnode1 ~]# tar -xf install_ce-cicdkit_fix-1.0.2.tar -C /data
注意:安装 CICDKit 的机器可用配置不能低于 4C8G,系统版本不能低于 CentOS7.0,建议单独一台机器部署
6.3:修改配置
- 中控机 install/third/globals_cicdkit.env 域名信息(CICDKIT_FQDN)
install.config 新增 cicdkit 及其依赖的 mysql5.7 的配置
[root@rbtnode1 install]# vim install.config
192.168.66.36 mysql57,cicdkit
6.4:安装 CICDKit 后台
#先刷新一下环境变量
[root@rbtnode1 install]# source globals.env
[root@rbtnode1 install]# source /data/install/third/globals_cicdkit.env
#设置免密,拷贝秘钥:
[root@rbtnode1 install]# ssh-copy-id root@192.168.66.36
#执行数据拷贝至cicd服务器
[root@rbtnode1 install]# ./bkcec sync all
#安装CICDKit
[root@rbtnode1 install]# ./bkco_install cicdkit
[root@rbtnode1 ~]# source /data/install/utils.fc
[root@rbtnode1 install]# echo $CICDKIT_FQDN
cicdkit.bk.com
[root@rbtnode1 install]# vim /etc/hosts
10.18.198.92 cicdkit.bk.com
#重启进程
[root@rbtnode1 install]# ./bkcec stop cicdkit self
[root@rbtnode1 install]# ./bkcec start cicdkit self
6.5:部署 cicdkit-SaaS
#下载 cicdkit-SaaS 包
https://bk.tencent.com/s-mart/application/159/detail
从 PaaS 页面中进入开发者中心进行部署
6.6:访问页面
7、服务器重启后的操作
- 确认 /etc/resolv.conf 里第一个 nameserver 是 127.0.0.1,option 选项不能有 rotate
- 检查重启机器的 crontab,是否有自动拉起进程的配置 crontab -l | grep process_watch,重启后的自动拉起主要靠 crontab
- 中控机上确认所有进程状态:./bkcec status all, 正常情况下应该都是正常拉起 RUNNING 状态,如果有 EXIT 的,则尝试手动拉起。手动拉起的具体方法参考组件的启动停止https://docs.bk.tencent.com/bkce_install_guide/maintain.html#start_stop
- 如果社区版所有机器同时重启,很大概率会有很多进程启动失败,因为不同机器上组件恢复的时间没法控制,导致依赖的组件还没启动起来,导致失败,连锁反应。所以这种情况,遵循和安装时的启动原则:
- 先启动 db
- 启动依赖的其他开源组件及服务
- 启动蓝鲸产品
如果已经部署过 SaaS,那么手动拉起。
[root@rbtnode1 ~]# cd /data/install/
[root@rbtnode1 install]# ./bkcec start saas-o # 正式环境
[root@rbtnode1 install]# ./bkcec start saas-t # 测试环境
#检查所有服务启动状态,全为RUNNING为正常,如有EXIT则手动拉起
[root@rbtnode1 install]# ./bkcec status all
#手动拉起某个服务,例如
[root@rbtnode1 install]# ./bkcec start bknetwork
[root@rbtnode1 install]# ./bkcec status bknetwork
8、离线安装 Agent
8.1:离线准备
下载好 ISO 镜像文件,地址如下,此 iso 镜像已经包含了安装 agent 所需的软件
https://bk.tencent.com/s-mart/community/question/466
挂载到每台机器上:
mkdir -p /mnt/centos7
mount /dev/sr0 /mnt/centos7
8.2:配置离线 repo
Vim /etc/yum.repos.d/offline-centos7.repo
[offline-centos7]
name=Bk repo
baseurl=file:///mnt/centos7
enabled=1
gpgcheck=0
8.3:更新缓存
yum clean all
yum makecache
yum repolist
8.4:在节点配置中添加 Agent 即可
9、常见问题总结
9.1:zookpeer 启动失败
检查日志存在脏数据,日志路径
[root@rbtnode1 ~]# rm -rf /安装目录/public/zk/data/version-2/
[root@rbtnode1 ~]# rm -rf /安装目录/public/zk/datalog/version-2/
[root@rbtnode1 ~]# cd /data/install
[root@rbtnode1 install]#./bkcec start zk
[root@rbtnode1 install]#./bkcec status zk
检查日志存在脏数据,日志路径
[root@rbtnode1 ~]# rm -rf /安装目录/public/zk/data/version-2/
[root@rbtnode1 ~]# rm -rf /安装目录/public/zk/datalog/version-2/
[root@rbtnode1 ~]# cd /data/install
[root@rbtnode1 install]#./bkcec start zk
[root@rbtnode1 install]#./bkcec status zk
9.2:GSE 启动失败
重启gse
[root@rbtnode1 ~]# cd /data/install
[root@rbtnode1 install]#./bkcec stop gse 1
[root@rbtnode1 install]#./bkcec initdata gse
[root@rbtnode1 install]#./bkcec start gse
[root@rbtnode1 install]#./bkcec status gse
9.3: 服务器的gse服务时而正常时而不正常
日志显示为无法连接redis主机,但是redis服务正常,根本原因是将redis和gse放入到同一台服务器中安装
9.4:重启服务后访问 SaaS 应用都报 502
原因:重启服务后有残余进程
解决方案:在开发者中心将这些应用重新部署
9.5:redis密码修改不能有特殊字符,如果有特殊字符,会导致gse_dba服务起不来,以及cmdb服务不能全部running
参考官网网址:http://docs.bk.tencent.com/bkce_maintain_faq/component/redis.html修改回正常密码,问题解决
9.6:部署蓝鲸平台的过程中遇到报错add rabbitmq user admin failed
目录下/etc/rabbitmq下运行命令chmod 755 *
9.7:卸载蓝鲸agent 不成功,提示:组件调用异常,
服务器安装好了之后,业务分配到其他地方, 想要卸载不成功,需要重新将主机分配到蓝鲸业务中去, 并重装agent
9.8:蓝鲸服务器重启之后,访问所有app出现访问不了的情况,paas_agent未显示running状态
运行命令:
查看日志/data/bkce/logs/paas_agent/agent.log
./bkcec stop nginx
./bkcec start nginx
./bkcec stop appt
./bkcec start appt
./bkcec stop appo
./bkcec start appo
之后重新上下架uam ,在重新上下架app ,问题得到解决。
9.9:bkdata服务器detect_cron提示状态不正常
原因:crontab定时计划任务中的格式不规范,里面有很多@号,将@号删除,并执行下面命令问题解决
workon monitor
supervisorctl -c /data/bkce/etc/supervisor-bkdata-monitor.conf restart detect_cron
9.10:配置自动化app部署失败,日志显示报错找不到pip源
在appt及appo服务器上分别执行以下操作,提前在在线pip环境中安装pip包
pip download django-celery==3.1.16,然后上传到/data/bkce/paas_agent/support-files/pkgs/目录下;
确认是否对应/data/bkcd/pass_agent/apps/projects/cc-automation/code/cc-automation/requirements.txt中的依赖包版本信息;
在app的虚拟环境下安装依赖包:
cd /data/bkce/paas_agent/apps/Envs/cc-automation/bin
source activate
pip insall –r /data/bkce/pass_agent/apps/projects/cc-automation/code/cc-automation/requirements.txt --no-index --find-links=file:///data/bkce/ paas_agent/support-files/pkgs/
pip list
deactivate
10、如何给一个 SaaS 应用加白名单
官方文档:https://bk.tencent.com/s-mart/community/question/569
11、手动卸载各节点 Agent
登入到各个管控节点服务器,然后执行下面的操作
停gse_agent:
[root@node1 ~]# /usr/local/gse/agent/bin/gsectl stop
停采集器:
[root@node1 ~]# cd /usr/local/gse/plugins/bin/ && ./stop.sh basereport
删除GSE相关目录
[root@node1 ~]# rm -rf /usr/local/gse/ /var/log/gse/ /var/run/gse/ /var/lib/gse/