蓝鲸智云 5.1.29 搭建
由于官方的安装指导文件更新于 2020-01-20,而 5.1.29 的安装包则是 2020-09-27 释出的,所以安装过程中会有坑,这里会对整个安装过程进行记录。
获取安装包并检验MD5码
axel https://bkopen-1252002024.file.myqcloud.com/ce/bkce_src-6.0.0.tgz -n 10 --output=/root/bkce_src-6.0.0.tgz
md5sum /root/bkce_src-6.0.0.tgz
操作系统配置
1. yum 源更新
# centos7 为基准
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
yum clean all
yum makecache
# centos7 epel
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum makecache
2. 关闭 SELinux
# 检查 SELinux 的状态,如果它已经禁用,可以跳过后面的命令
sestatus
# 通过命令临时禁用 SELinux
setenforce 0
# 或者修改配置文件
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
reboot
3. 关闭默认防火墙(firewalld)
# 检查默认防火墙状态,如果返回 not running,可以跳过后面的命令
firewall-cmd --state
systemctl stop firewalld # 停止 firewalld
systemctl disable firewalld # 禁用 firewall 开机启动
4. 安装 rsync 命令
# 检查是否有 rsync 命令,如果有返回 rsync 路径,可以跳过后面的命令
which rsync
# 安装 rsync
yum -y install rsync
5. 停止并禁用 NetWorkManager
# 检查 NetworkManager 运行状态
systemctl status NetworkManager
# 关闭并禁用 NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
6. 调整最大文件打开数
# 检查当前 root 账号下的 max open files 值
ulimit -n
# 备份之前的配置文件
cp /etc/security/limits.conf /etc/security/limits.conf.bak
# 增加配置信息
cat << EOF >> /etc/security/limits.conf
root soft nofile 102400
root hard nofile 102400
EOF
7. 确认服务器时间同步
# 检查每台机器当前时间和时区是否一致,若相互之间差别大于3s(考虑批量执行时的时差),建议校时。
date -R
# 查看和ntp server的时间差异(需要外网访问,如果内网有ntpd服务器,自行替换域名为该服务的地址)
ntpdate -d cn.pool.ntp.org
如果输出的最后一行 offset 大于 1s 建议校时。
# 和 ntp 服务器同步时间
ntpdate cn.pool.ntp.org
# 使用 ntpd 进行时间同步
http://xstarcd.github.io/wiki/sysadmin/ntpd.html
8. 检查 resolv.conf 是否有修改权限
检查 /etc/resolv.conf 是否被加密无法修改(即便是 root),执行如下命令,检查是否有“i”加密字样:
lsattr /etc/resolv.conf
----i--------e-- /etc/resolv.conf
如果有则执行命令,临时解密处理,执行如下命令:
chattr -i /etc/resolv.conf
需要注意,在 resolv.conf 配置文件的首行,即第一个DNS地址需为 127.0.0.1,如下所示:
nameserver 127.0.0.1
nameserver 192.168.1.100
nameserver 192.168.2.100
备注说明:resolv 配置文件无需人工修改内容,后续安装脚本会自动为主机进行配置 127.0.0.1,因此只需检查是否允许修改即可。关于首行需要 127.0.0.1,这是由于后面蓝鲸内部组件的调用所需,域名通过 consul 解析,会探测服务运行状态,然后返回IP地址, 例如访问 es,那么内部需要解析 es.service.consul 等,若首行不是 127.0.0.1,否则这些域名就通过外网去解析,无法返回正确的响应,导致服务运行异常,或者 SaaS 无法正常打开等情况。
程序安装
1. 解压
tar xf bkce_src-6.0.0.tgz -C /data
2. 写配置文件
- install.config 模块和服务器对应关系的配置文件,描述在哪些机器上安装哪些模块
- globals.env 定义了各类组件的账号密码信息。 功能开关控制选项等。
- ports.env 端口定义。默认情况下,不用修改。
由于目前使用单机部署,所以只需要重点关注 globals.env 。
# /data/install/globals.env
shopt -s nullglob
source $f
done
fi
source $f
done
fi
shopt -u nullglob
export HTTP_SCHEMA='https'
export HAS_DNS_SERVER=0
export UPDATE_HOST_NAME=0
export MYSQL_PASS='abcdefg'
export REDIS_PASS='abcdefg'
export MQ_USER=admin
export MQ_PASS='abcdefg'
export ZK_USER=bkzk
export ZK_PASS='abcdefg'
export PAAS_ADMIN_USER=admin
export PAAS_ADMIN_PASS='abcdefg'
export GSE_AGENT_HOME=/usr/local/gse
export GSE_WIN_AGENT_HOME='C:\\\\gse'
export GSE_WIN_AGENT_DATA_DIR='C:\\\\gse\\\\data'
export GSE_WIN_AGENT_LOG_DIR='C:\\\\gse\\\\logs'
export GSE_AGENT_RUN_DIR=/var/run/gse
export GSE_AGENT_DATA_DIR=/var/lib/gse
export GSE_AGENT_LOG_DIR=/var/log/gse
export BIZ_ID=0
export AUTO_GET_WANIP=0
export NFS_UID=10086
export NFS_GID=10087
export SHARED_STORAGE_TYPE="nfs"
export GSE_WAN_IP=()
export NGINX_WAN_IP=()
export PYPI_SOURCE='pypi.douban.com'
export BK_TIMEZONE="Asia/Shanghai"
export BK_PROXY=
export IMAGE_NAME='bkbase/python:1.0'
export JAVA_IMAGE_NAME='bkbase/java:1.0'
export APPMGR_SOURCE=src
export RUN_MODE='prod'
3. 配置 pip 源
一般源码已经配置好了。
vim /data/src/.pip/pip.conf
[global]
index-url = https://mirrors.cloud.tencent.com/pypi/simple
trusted-host = mirrors.cloud.tencent.com
4. 获取证书
- 通过 ifconfig 或者 ip addr 命令获取 install.config 文件中,license 和 gse 模块所在服务器的第一个内网网卡的 MAC 地址。如果分别属于两台服务器,那么两个的 MAC 地址以英文;分隔。
- 在官网 证书生成页面 根据输入框提示填入 MAC 地址,生成并下载证书。
- 上传证书到中控机,并解压到 src/cert 目录下。
tar xf ssl_certificates.tar.gz -C /data/src/cert/
5. 执行安装
如果部署全部组件,请执行:
$ cd /data/install
$ ./install_minibk -y
如果按需部署,假设只需要 PaaS,CMDB,JOB 平台,请执行:
$ cd /data/install
$ ./install_minibk
$ ./bk_install paas && ./bk_install cmdb && ./bk_install job
安装过程遇到的问题
安装时间记录:
- 开始时间:14:00
- 结束时间:14:58
/usr/bin/ld: cannot find -lmysqlclient
ln -s /usr/lib64/mysql/libmysqlclient_r.so /usr/lib/libmysqlclient_r.so
ln -s /usr/lib64/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so
ln -s /usr/lib64/mysql/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
ln -s /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so.18.0.0
/usr/local/gse/agent/bin/gsectl: line 19: ip: command not found
sed -i 's#ip addr#/usr/sbin/ip addr#' /usr/local/gse/agent/bin/gsectl
ERROR deploy failed: timeout
重新执行 ./install_minibk -y
。