蓝鲸运维平台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台机器都要安装


  1. 关闭SELinux [实验环境查看时已禁用]

    # 检查 SELinux 的状态,如果它已经禁用,可以跳过后面的命令
    $ sestatus
    # 通过命令临时禁用 SELinux
    $ setenforce 0
    # 可以使用以下命令或者修改配置文件禁用
    $ sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    
  2. 关闭默认防火墙 [实验环境查看时未运行]

    # 检查默认防火墙状态,如果返回 not running,可以跳过后面的命令
    $ firewall-cmd --state
    # 停止并禁用 firewalld
    $ systemctl stop firewalld    # 停止 firewalld
    $ systemctl disable firewalld # 禁用 firewall 开机启动
    
  3. 停止并禁用 NetWorkManager

    $ systemctl stop NetworkManager
    $ systemctl disable NetworkManager
    

    注意: 该操作前提需确保主机为静态 IP,若为 DHCP 获取的 IP,则无法直接 disable NetworkManager,否则会出现主机重启后,或者主机运行一段时间 IP 租约地址到期后,网卡无法从网络重新正常获取 IP 地址的情况

  4. 调整最大文件打开数

     # 检查当前 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(这个模块好像在多机部署才用到)…

  5. 离线部署本地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`查看我们的配置是否成功
    
  6. 安装rsync命令

    # 检查是否有 rsync 命令,如果有返回 rsync 路径,可以跳过后面的命令
    $ which rsync
    
    # 如果没有, 安装 rsync
    $ yum -y install rsync
    
  7. 检查gcc是否安装

    # 查看是否显示正常的版本信息
    $ gcc -v
    # 如果没有, 安装gcc
    $ yum -y install gcc
    
  8. 解压之前已经上传到服务器/data目录下蓝鲸安装包

    $ tar -zxvf bkce_src-5.1.28.tar.gz
    

    解压之后,得到两个目录:src,install
    src:存放蓝鲸产品软件,以及依赖的开源组件
    install:存放安装部署脚本、安装时的参数配置、日常运维脚本

  9. 检查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.config
install.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模块
    ..........
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nonevx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值