安装环境准备
开始安装蓝鲸社区版前,需按以下文档指南,做好准备工作。
官方文档:https://bk.tencent.com/docs/document/6.0/127/7549
准备机器
- 建议操作系统: CentOS 7.6
- 建议机器配置(中控机建议内存配置
32G+
或 更高)- 体验功能:建议 4 核 16 G,硬盘 50G 以上
- 生产环境:建议 8 核 32 G,硬盘 100G 以上(可根据实际情况适当调整配置)
- 机器数量:3 台(假设 ip 分别为:10.0.0.1,10.0.0.2,10.0.0.3)
- 选择一台为中控机(假设为 10.0.0.1)进行安装部署操作,使用 root 账号登录。
注意:所有待安装蓝鲸的机器均需要按以下清单检查和操作。
一. YUM 源配置
在所有蓝鲸服务器上配置好 YUM 源,要求该 YUM 源包含 EPEL。
不能连外网 YUM 源的环境,可以配置一个内部的 YUM 源 或者本地 YUM 源。
在线配置
# 备份系统旧配置文件
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
# epel(RHEL7系列)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
# 更新缓存
yum clean all
yum makecache
二. CentOS 系统设置
提示:可以使用该文档整理的安装脚本,见 2.10.以上9步的配置脚本
准备好硬件,安装完原生 CentOS 系统后。需要在所有蓝鲸服务器上对初始系统做一些配置,保证后续安装过程的顺畅和蓝鲸平台的运行。
系统版本: 推荐 CentOS-7.6。
1.关闭 SELinux
# 检查 SELinux 的状态,如果它已经禁用,可以跳过后面的命令
sestatus
可以使用以下命令禁用 SELinux,或者修改配置文件。
# 通过命令临时禁用 SELinux
setenforce 0
# 或者修改配置文件
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
接着,重启机器:
reboot
2.关闭默认防火墙(firewalld)
安装和运行蓝鲸时,模块之间互相访问的端口策略较多,建议对蓝鲸后台服务器之间关闭防火墙。
# 检查默认防火墙状态,如果返回 not running,可以跳过后面的命令
firewall-cmd --state
停止并禁用 firewalld
systemctl stop firewalld # 停止 firewalld
systemctl disable firewalld # 禁用 firewall 开机启动
3.安装 rsync 命令
安装脚本依赖 rsync 分发同步文件。
# 检查是否有 rsync 命令,如果有返回 rsync 路径,可以跳过后面的命令
which rsync
# 安装 rsync
yum -y install rsync
4.停止并禁用 NetWorkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
说明:该操作前提需确保主机为静态 IP,若为 DHCP 获取的 IP,则无法直接 disable NetworkManager,否则会出现主机重启后,或者主机运行一段时间 IP 租约地址到期后,网卡无法从网络重新正常获取 IP 地址的情况。
5.调整最大文件打开数
# 检查当前 root 账号下的 max open files 值
ulimit -n
如果为默认的 1024,建议通过修改配置文件调整为 102400 或更大。
但是不能大于 /proc/sys/fs/nr_open
的值,该值默认为 1048576。
注意: limits.conf 初始文件的备份。
cat >> /etc/security/limits.conf << EOF
root soft nofile 102400
root hard nofile 102400
EOF
修改后,重新使用 root 登录检查是否生效。
6.确认服务器时间同步
服务器后台时间不同步会对时间敏感的服务带来不可预见的后果。务必在安装和使用蓝鲸时保证时间同步。
# 检查每台机器当前时间和时区是否一致,若相互之间差别大于3s(考虑批量执行时的时差),建议校时。
date -R
# 查看和ntp server的时间差异(需要外网访问,如果内网有ntpd服务器,自行替换域名为该服务的地址)
ntpdate -d cn.pool.ntp.org
如果输出的最后一行 offset 大于 1s 建议校时。
# 和 ntp 服务器同步时间
ntpdate cn.pool.ntp.org
更可靠的方式包括通过运行 ntpd 或者 chrony 等服务在后台保持时间同步。
具体请参考官方文档 使用 ntpd 配置 NTP 或 使用 chrony 配置 NTP。
7.检查是否存在全局 HTTP 代理
蓝鲸服务器之间会有的 HTTP 请求,如果存在 HTTP 代理,且未能正确代理这些请求,会发生不可预见的错误。
# 检查 http_proxy https_proxy 变量是否设置,若为空可以跳过后面的操作。
echo "$http_proxy" "$https_proxy"
对于本机配置 http_proxy 变量的方式,请依次查找文件 /etc/profile、/etc/bashrc、$HOME/.bashrc 等是否有设置。
或者咨询网络管理员/IT 部门协助处理。
8.检查部署机器的主机名
请检查准备用于部署蓝鲸的 3 台机器的主机名是否相同。如果存在同名请进行修改。
hostname
9.检查 DNS 配置文件
如果输出的第一行信息不是 nameserver 127.0.0.1
,请把其加入至该文件(/etc/resolv.conf)的第一行。
这是由于蓝鲸内部组件的调用所需,域名通过 consul 解析,会探测服务运行状态,然后返回 IP 地址。若首行不是 127.0.0.1,否则这些域名就通过外网去解析,无法返回正确的响应,导致服务运行异常,或者 SaaS 无法正常打开等情况。
head -n 1 /etc/resolv.conf
10. 以上9步的配置脚本
#! /bin/bash
# tomoncle set bk env bash
CENTOS_VERSION=$(cat /etc/redhat-release | awk '{print $4}' | awk -F '.' '{print $1}')
function validator(){
if [ $? -ne 0 ];then echo -e "\033[5;31mthe operation failed, exited.\033[0m"; exit