部署介绍

本文简要介绍单机离线部署部分功能和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模块
    ..........
    

蓝鲸运维平台5.1.28社区版离线部署相关推荐

  1. CentOS 6.8 部署腾讯蓝鲸运维平台

    2019独角兽企业重金招聘Python工程师标准>>> 一.蓝鲸介绍 蓝鲸官网:http://bk.tencent.com/ 蓝鲸智云社区:http://bbs.bk.tencent ...

  2. 让你久等了《开源安全运维平台OSSIM疑难解析--入门篇》正式出版

    2019年暑期,众所期待的新书<开源安全运维平台OSSIM疑难解析--入门篇>由人民邮电出版社正式出版发行.此书从立意到付梓,历时超过两年,经过数十次大修,历经曲折与艰辛,希望为大家代奉献 ...

  3. 让你久等了!《开源安全运维平台OSSIM疑难解析--入门篇》9月上市

    2019年暑期,众所期待的新书<开源安全运维平台OSSIM疑难解析--入门篇>开始印刷,9月份即可预售.此书从立意到付梓,历时超过两年,经过数十次大修,历经曲折与艰辛,希望为大家代奉献一本 ...

  4. 云时代的智能运维平台,助力企业创新迭代

    简介:智能的运维平台,帮助企业业务平稳.智能.高效地运行. 每一起严重事故背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患.-- 海恩法则(Heinrich's Law) 随着云计算 ...

  5. 阿里巴巴云原生大数据运维平台 SREWorks 正式开源

    简介:阿里巴巴云原生大数据运维平台 SREWorks,沉淀了团队近10年经过内部业务锤炼的 SRE 工程实践,今天正式对外开源,秉承"数据化.智能化"运维思想,帮助运维行业更多的从 ...

  6. 多功能自动化智能运维平台,提升集群的全自动运维效率

    一.开源项目简介 致力于打造一个集主机管理.配置部署.监控报警.异常诊断.安全审计等一系列功能的自动化运维平台. 探索创新的sysAK.ossre诊断工具及高效的LCC(Libbpf Compiler ...

  7. 三分钟构建自动化运维平台-nightingale(夜莺)

    最终搭建完成成品监控效果如图所示 夜莺是一套分布式高可用的运维监控系统,最大的特点是混合云支持,既可以支持传统物理机虚拟机的场景,也可以支持K8S容器的场景.同时,夜莺也不只是监控,还有一部分CMDB ...

  8. 数据驱动的智能运维平台

    导语:伴随着各类高新技术的出现,"人工智能"一词越来越多地出现在人们的日常生活中,而运维朋友常听到与自身工作息息相关的便是智能运维了. 但在当前,国内大部分的智能运维并没有完全落地 ...

  9. 开源运维平台Spug V3.1 版本发布

    开源运维平台Spug 面向中小型企业设计的无 Agent的自动化运维平台,整合了主机管理.主机批量执行.主机在线终端.文件在线上传下载.应用发布.任务计划.配置中心.监控.报警等一系列功能. Spug ...

最新文章

  1. base64 数据处理
  2. ROC曲线是通过样本点分类概率画出的 例如某一个sample预测为1概率为0.6 预测为0概率0.4这样画出来,此外如果曲线不是特别平滑的话,那么很可能存在过拟合的情况...
  3. linux nginx svn 安装
  4. dhcp是哪一层的协议_OSI各个分层分别负责哪些功能?有哪些主要协议?涉及到哪些设备?...
  5. 详解梯度爆炸和梯度消失
  6. Python面试题-交换两个数字的三种方法
  7. ruby 数组元素替换_从Ruby中的集合中删除并替换元素
  8. 深度学习(六十五)移动端网络MobileNets
  9. 容器赋能AI-人工智能在360私有云容器服务上的实践
  10. VC6编译64位程序
  11. python如何实现网页爬取,并翻译成中文
  12. 使用序列号激活优动漫PAINT(附激活码)
  13. 2023秋招--游卡--游戏客户端--二面面经
  14. Python从Word/PPT/PDF中抽取图片
  15. java early eof_jfinal上传文件报异常RuntimeException:Early EOF
  16. java实现简单扫雷
  17. 信息化监理发展困难之愚见
  18. 如何正确的从UI图中取色
  19. 三年白干!程序员违反腾讯敬业协议赔97万,返还15.8万;Linux之父家断电六天:内核更新延期;CakePHP 4.2.4发布...
  20. Thinkpad MORFFHL鼠标滑鼠接收器配对 thinkpad laser wireless mouse

热门文章

  1. 华为通过ADB取消系统更新
  2. 电骡eMule 0.46a VeryCD Build 0607 简体中文版
  3. cf进不去显示服务器,cf进不去服务器
  4. java 鱼刺图_使用java实现鱼刺图
  5. 狗年出生的宝宝取名应该注意的4个问题
  6. 写带有代码博客的小技巧
  7. IE-LAB网络实验室:思科PVLAN配置详解
  8. QueryList爬取数据
  9. Java中 操作Servlet域中的值以及会话技术 cookie
  10. Python 对列表进行排序