蓝鲸行动平台 5.1.28 社区版离线部署
部署介绍
本文简要介绍单机离线部署部分功能和3ip完整部署全部功能, 单机部署了蓝鲸的PaaS模块, CMDB模块, JOB模块, SaaS模块, 安装了SaaS应用节点管理(bk_nodeman)和标准运维(bk_sops), 实现了主机管理、文件和命令下发、任务管理和标准运维等功能, 3ip部署了蓝鲸社区版的全部功能, 部署前请先阅读官方文档
部署环境
CentOS7.3.1611 (8C8G, 内网环境, 无法连接互联网) x 3
工具和参考链接
蓝鲸官方部署文档
远程工具Xshell+Xftp
CentOS清华镜像站
CentOS所有版本镜像
蓝鲸社区版安装包
蓝鲸证书下载
蓝鲸离线YUM源镜像下载
RPM离线包下载
RPM离线包下载
RPM离线包下载
踩坑
本人非专业运维, 部署过程和配置文件和官方文档略有出入, 但是最后系统能正常运行, 中间遇到问题比较多的就是依赖的问题, 通过手动下载依赖安装解决, 其他问题在蓝鲸官网的问答社区和官网提供的交流群通过蓝鲸助手帮助解决
部署
准备
- 确保远程工具能正常使用, 服务器直接使用root用户登录, 所有操作默认在root权限下操作
- 下载蓝鲸的安装包
- 查看服务器发行版本, 下载对应的离线YUM源ISO镜像
# 查看CentOS发行版本 $ cat /etc/redhat-release
- 查看服务器MAC地址, 下载证书, 3ip部署只需要下载中控机证书, 因为gse,license模块安装在中控机(详见安装配置文件)
# 查看MAC地址 $ ip addr OR $ ifconfig
- 服务器根目录创建/data文件夹, 用Xftp上传所有用到的文件到此目录下(目录可自行选择)
系统设置
3ip部署时3台机器都要进行系统设置和离线YUM源配置, 安装过程中出现依赖问题也是一样, 缺少的依赖在3台机器都要安装
-
关闭SELinux [实验环境查看时已禁用]
# 检查 SELinux 的状态,如果它已经禁用,可以跳过后面的命令 $ sestatus # 通过命令临时禁用 SELinux $ setenforce 0 # 可以使用以下命令或者修改配置文件禁用 $ sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
-
关闭默认防火墙 [实验环境查看时未运行]
# 检查默认防火墙状态,如果返回 not running,可以跳过后面的命令 $ firewall-cmd --state # 停止并禁用 firewalld $ systemctl stop firewalld # 停止 firewalld $ systemctl disable firewalld # 禁用 firewall 开机启动
-
停止并禁用 NetWorkManager
$ systemctl stop NetworkManager $ systemctl disable NetworkManager
注意: 该操作前提需确保主机为静态 IP,若为 DHCP 获取的 IP,则无法直接 disable NetworkManager,否则会出现主机重启后,或者主机运行一段时间 IP 租约地址到期后,网卡无法从网络重新正常获取 IP 地址的情况
-
调整最大文件打开数
# 检查当前 root 账号下的 max open files 值 $ ulimit -n
默认的 1024,建议通过修改配置文件调整为 102400 或更大
注意: limits.conf 初始文件的备份
$ cat << EOF >> /etc/security/limits.conf root soft nofile 102400 root hard nofile 102400 EOF
# 重启服务器, 查看之前的修改是否生效 $ reboot
注意: 到这里重启, 按照官网的方式先配置安装rsync, 安装过程需要提前配置离线yum源, 但是挂载的yum源在重启后挂载会失效(之前不知道, 结果到需要yum安装东西的时候找不到yum源文件), 所以先进行需要重启的系统的配置,配置完重启, 重启后配置离线yum源, 然后安装rsync(这个模块好像在多机部署才用到)…
-
离线部署本地YUM源(多台机器需要每台都进行配置)
# 将下载的镜像挂载到机器上(机器重启挂载会失效) $ mkdir -p /mnt/centos7 /mnt/centos7-epel $ mount -t iso9660 /data/bk_offline_repo-7.3.1611.iso /mnt/centos7 $ mount -t iso9660 /data/bk_offline_repo-7.3.1611.iso /mnt/centos7-epel/ # 配置离线repo # 创建配置文件 $ vi /etc/yum.repos.d/offline-centos7.repo # 编辑并保存以下内容(gpgcheck官方文档是开启检查, 这里关闭, 开启时不知道是不是离线安装的原因, 这个检查通不过) [offline-centos7] name=CentOS-$releasever - blueking baseurl=file:///mnt/centos7 enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 # 创建配置文件 $ vi /etc/yum.repos.d/offline-centos7-epel.repo # 编辑并保存以下内容 [offline-centos7-epel] name=CentOS-$releasever - blueking baseurl=file:///mnt/centos7-epel enabled=1 exclude=epel-release gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 # 清理和创建缓存 $ yum clean all $ yum makecache # 注意问题 建议把/etc/yum.repos.d/下除了我们刚才添加的两个文件以外的文件全部删除或者备份到其他文件夹下, 运行`yum list`查看我们的配置是否成功
-
安装rsync命令
# 检查是否有 rsync 命令,如果有返回 rsync 路径,可以跳过后面的命令 $ which rsync # 如果没有, 安装 rsync $ yum -y install rsync
-
检查gcc是否安装
# 查看是否显示正常的版本信息 $ gcc -v # 如果没有, 安装gcc $ yum -y install gcc
-
解压之前已经上传到服务器/data目录下蓝鲸安装包
$ tar -zxvf bkce_src-5.1.28.tar.gz
解压之后,得到两个目录:src,install
src:存放蓝鲸产品软件,以及依赖的开源组件
install:存放安装部署脚本、安装时的参数配置、日常运维脚本 -
检查resolv.conf是否有修改权限
检查 /etc/resolv.conf 是否被加密无法修改(即便是 root),执行如下命令,检查是否有“i”加密字样 [实验环境查看时未加密]$ lsattr /etc/resolv.conf ### ----i--------e-- /etc/resolv.conf # 如果有则执行命令,临时解密处理,执行如下命令: $ chattr -i /etc/resolv.conf
修改配置文件
在 install 目录下,共有三个配置:
- install.config
- globals.env
- ports.env
install.configinstall.config
是模块和服务器对应关系的配置文件,描述在哪些机器上安装哪些模块,每行两列,第一列是 IP 地址;第二列是以英文逗号分隔的模块名称
# 此文件默认不存在, 单机部署时不需要自己创建, 多机部署需要自己创建(注意: 创建此文件最好直接在/data/install/install.config.3IP.sample文件复制一份, 修改名称为install.config, 只需要修改文件内的IP就可以, 这里的坑是当时根据官方文档直接在windows上创建了此文件, 通过xftp上传到服务器, vi编辑器查看完全和文档相同, 可能是编码原因, 安装报错 )
# 执行 bash precheck.sh 可能会出现:
# start <<check_install_config>> ... [FAILED]
# CONSUL 模块(当前值0)在install.config中数量应该为奇数,而不是偶数。
# KAFKA 模块(当前值0)在install.config中数量应该为奇数,而不是偶数。
# ZK 模块(当前值0)在install.config中数量应该为奇数,而不是偶数。
$ cp /data/install/install.config.3IP.sample /data/install/install.config
globals.env
该文件定义了各类组件的账号密码信息, 通常情况下只需要修改各个模块或者组件的密码就可以, 访问域名可以自己定义(内网情况下需要修改你访问蓝鲸平台的主机的hosts文件), 详细配置参考官方文档
ports.env
端口定义。默认情况下,不用修改。特殊场景下,若有端口冲突,可以自行定义。
解压证书
解压已经上传到/data目录的证书文件到指定目录
$ tar -zxvf /data/ssl_certificates.tar.gz -C /data/src/cert/
配置SSH免密登录
单机部署时不需要配置
多机部署时登录到中控机, 执行以下操作:
$ cd /data/install
$ bash configure_ssh_without_pass # 根据提示输入各主机的 root 密码完成免密登陆配置
安装前校验环境是否满足
$ cd /data/install
$ bash precheck.sh
正常输出如下:
start <<check_ssh_nopass>> ... [OK]
start <<check_password>> ... [OK]
start <<check_cert_mac>> ... [OK]
start <<check_get_lan_ip>> ... [OK]
start <<check_install_config>> ... [OK]
start <<check_selinux>> ... [OK]
start <<check_umask>> ... [OK]
start <<check_rabbitmq_version>> ... [OK]
start <<check_http_proxy>> ... [OK]
start <<check_open_files_limit>> ... [OK]
start <<check_domain>> ... [OK]
start <<check_rsync>> ... [OK]
start <<check_service_dir>> ... [OK]
start <<check_networkmanager>> ... [OK]
start <<check_firewalld>> ... [OK]
如果发现有 [FAIL] 的报错,按照错误提示和本文档修复。修复后,可继续跑 precheck.sh 脚本,直到不再出现 [FAIL]。
如果需要从头开始检查,请使用 precheck.sh -r 参数。
单机安装部署
只安装 PaaS,CMDB,JOB 平台, SaaS应用在平台内安装
$ cd /data/install
$ ./install_minibk
# 安装 PaaS 平台及其依赖服务,该步骤完成后,可以打开 PaaS 平台。
$ ./bk_install paas
# 安装配置平台及其依赖服务,该步骤完成后,可以打开配置平台,看到蓝鲸业务及示例业务。
$ ./bk_install cmdb
# 该步骤完成后,可以打开作业平台,并执行作业。同时在配置平台中可以看到蓝鲸的模块下加入了主机。
# 安装作业平台及其依赖组件,并在安装蓝鲸的服务器上装好 gse_agent 供验证。
$ ./bk_install job
# 部署正式环境及测试环境
# 该步骤完成后可以在开发者中心的服务器信息和第三方服务信息中看到已经成功激活的服务器
# 同时也可以进行 SaaS 应用(除蓝鲸监控和日志检索)的上传部署
$ ./bk_install app_mgr
3ip完整安装部署
$ cd /data/install
# 安装 PaaS 平台及其依赖服务,该步骤完成后,可以打开 PaaS 平台。
$ ./bk_install paas
# 安装配置平台及其依赖服务,该步骤完成后,可以打开配置平台,看到蓝鲸业务及示例业务。
$ ./bk_install cmdb
# 该步骤完成后,可以打开作业平台,并执行作业。同时在配置平台中可以看到蓝鲸的模块下加入了主机。
# 安装作业平台及其依赖组件,并在安装蓝鲸的服务器上装好 gse_agent 供验证。
$ ./bk_install job
# 部署正式环境及测试环境
# 该步骤完成后可以在开发者中心的服务器信息和第三方服务信息中看到已经成功激活的服务器
# 同时也可以进行 SaaS 应用(除蓝鲸监控和日志检索)的上传部署
$ ./bk_install app_mgr
# 安装蓝鲸数据平台基础模块及其依赖服务。安装该模块后,可以开始安装使用 SaaS 应用: 蓝鲸监控和日志检索
$ ./bk_install bkdata
# 安装故障自愈的后台模块及依赖其服务
# 安装该模块后,可以开始安装使用 SaaS 应用: 故障自愈
$ ./bk_install fta
# 重装 gse_agent 并注册正确的集群模块到配置平台
# 执行完该操作后,可以在配置平台中看到主机按照 install.config 中的配置分布到对应拓扑下
$ ./bk_install gse_agent
#部署官方 SaaS 到正式环境(通过命令行从 /data/src/official_saas/ 目录自动部署 SaaS )
# 执行完该操作后,可以在蓝鲸工作台看到并使用所有官方 SaaS
$ ./bkcec install saas-o
安装后访问
内网通过修改hosts文件访问
# ex:
192.168.237.112 paas.bk.com
192.168.237.112 job.bk.com
192.168.237.112 cmdb.bk.com
# 具体内容参考中控机的/etc/hosts文件
问题总结
- 安装时最好分步安装, 能准确定位是哪个模块安装出的问题
- 本文中没有写到服务器时间校准, 因为不能联网校准, 需要手动校准, 这个一定要做, 不然会出问题
- 依赖问题
# 安装某些模块会提示缺少依赖, 按照提示安装依赖即可 # 实测CentOS7.3.1611离线完整安装5.1.28社区版缺少五个依赖, CentOS7.5.1804离线完整安装5.1.28社区版缺少两个依赖 # 文章开始提供两个常用rpm离线安装包下载网站, 下载后安装依赖 $ rpm -ivh --replacefiles xxx.rpm # 具体报错具体分析... # ex: CentOS7.3.1611缺少的依赖 rpm -ivh --replacefiles libsepol-2.5-10.el7.x86_64.rpm rpm -ivh --replacefiles libselinux-2.5-14.1.el7.x86_64.rpm rpm -ivh --replacefiles libselinux-utils-2.5-14.1.el7.x86_64.rpm rpm -ivh --replacefiles libsemanage-2.5-14.el7.x86_64.rpm rpm -ivh --replacefiles policycoreutils-2.5-34.el7.x86_64.rpm # ex: CentOS7.5.1804缺少的依赖 rpm -ivh --replacefiles libsepol-2.5-10.el7.x86_64.rpm rpm -ivh --replacefiles libselinux-2.5-14.1.el7.x86_64.rpm
- 常用命令
# 命令均在中控机的/data/install目录下执行 # 查看安装后全部模块的状态 $ ./bkcec status all # 停止某个模块 $ ./bkcec stop job # 例如job模块 # 开启某个模块 $ ./bkcec start job # 例如job模块 ..........
上一篇: 【蓝盾蓝鲸持续集成平台编译和部署陷阱规避
下一篇: 腾讯蓝鲸系统架构与设计思路