安装脚本功能概述
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
键值对存储数据库
- 蓝鲸组件
文件用途
脚本包的文件
- 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等脚本输出的日志