安装脚本功能概述

bkcec 脚本原理

bkcec脚本原理

bkcec 说明

bkcec 是蓝鲸社区版的安装维护主脚本;bk_install 是封装了bkcec的集成安装脚本。

bkcec的调用语法为:bkcec <command> <module> [project] [1]

其中可用的command有:

  • sync从中控机的src/同步安装<module>依赖的文件和目录到对应机器的src/下
  • install安装<module>到$INSTALL_PATH(默认/data/bkce)下
  • install <module> 1等同于先执行 sync <module>,再执行install <module>,合二为一
  • initdata安装后初始化,常用于模块的用户创建,sql导入,权限设置等操作
  • render渲染模块的模板文件,install过程中会调用它,做模板变量替换。
  • status检查模块的进程是否运行
  • start启动模块的进程
  • stop停止模块的进程
  • upgrade升级更新模块
    其中模块名,对应install.config里的名称,当前社区版包含以下模块,按模块特点分为两类,一是开源外部组件,二是蓝鲸自研产品

  • 开源组件

    • nginx web服务器和反向代理
    • rabbitmq 消息队列服务
    • kafka 分布式数据流处理服务
    • zk zookeeper 分布式配置服务
    • es elasticsearch 分布式搜索和数据分析引擎
    • consul 分布式服务发现和域名服务
    • mongodb 面向文档的数据库管理系统
    • mysql 关系数据库管理系统
    • beanstalk 消息队列服务
    • redis 键值对存储数据库
  • 蓝鲸组件
    • paas 蓝鲸PaaS
    • cmdb 蓝鲸配置平台
    • job 蓝鲸作业平台
    • gse 管控平台后台
    • license 证书服务
    • appo SaaS部署的正式环境
    • appt SaaS部署的测试环境
    • bkdata 数据平台基础服务
      • dataapi 数据平台api接口服务
      • databus 数据平台总线服务
      • monitor 监控后台
    • fta 故障自愈后台

文件用途

脚本包的文件

  • RELEASE.md版本日志
  • VERSION版本号
  • agent_setup/存放安装agent相关的脚本以及脚本模版
  • appmgr/存放构建SaaS和运行SaaS所需的脚本,社区版采用virtualenv方式
  • bk_install封装bkcec用来做集成安装部署
  • bkcec安装和维护的主脚本
  • bkco.env bkco.fc bkco_install网络管理模块所用的安装部署相关环境变量和函数定义
  • clean.fc卸载清理相关函数
  • configure_ssh_without_pass一键配置免密ssh登陆用的脚本
  • control.rc定义进程启停的函数库
  • crontab.rccrontab新增和删除相关的函数定义
  • deck/saas.py命令行部署SaaS应用的工具
  • deliver.rc定义从中控机同步文件目录到对应模块机器的函数
  • dependences.env各模块依赖的命令和rpm包定义
  • errors.env错误码定义
  • functions通用的bash函数
  • globals.env定义蓝鲸组件用到的全局变量配置
  • health_check/check_proc_existsconsul使用的健康检查脚本
  • install.config定义模块在主机的分布部署方式
  • install_minibk最小化单机部署的封装脚本
  • migrate/蓝鲸套件迁移升级的脚本,目前没有用
  • parse_config解析install.config并生成consul主配置和服务定义的配置,config.env等文件
  • pip/存放安装脚本所需的pip依赖包
  • ports.env定义所有组件需要设定的端口信息
  • process_watch + watch.rc进程监控脚本
  • register.rc自动注册主机到CMDB的函数
  • scripts/gse gseagent和gse proxy所需要启停脚本,在安装gse时会自动打包进去
  • status.rc检查进程状态相关的函数
  • summary.rc打印相关模块和所有模块的版本信息
  • templates/安装脚本初始依赖的配置模版,目前只是consul的supervisor配置
  • templates_render.rc渲染配置模版,根据读取配置文件和动态生成的变量去替换模版里的占位符。
  • update.rc一些更新配置或者证书的操作定义
  • upgrade.rc各模块的升级操作封装
  • utils.fc安装、初始化主要函数都在这里先找。

完成安装或日常升级后会生成的文件

  • .agreed同意安装协议后的标记文件

  • .app.token后台程序和SaaS,访问ESB接口时需要使用的app_code和app_token的键值对。

  • .bk_install.step集成安装的步骤进度标记文件

  • .controller_ip中控机的IP地址

  • .migrate/成功导入的sql文件的标记文件。使用了chattr +i,具有不可删除属性。

  • .path蓝鲸的安装路径。

  • .rcmdrc使用rcmd()函数远程执行命令时,会加载的rc文件

  • /tmp/bkc.logbkeec等脚本输出的日志