- 安装 PaaS 及依赖
- 安装 Consul
- 安装 license 服务
- 安装 MySQL
- 安装 Redis
- 安装 Nginx
- 安装 PaaS
安装 PaaS 及依赖
PaaS是蓝鲸产品的门户入口,所以安装蓝鲸先安装PaaS。
PaaS依赖的组件和服务如下:
安装PaaS前,我们需要将中控机解压的src/、install/ 目录根据install.config配置的ip和模块关系来分发文件。
./bkcec sync all
安装 Consul
蓝鲸整个平台的内部通信基础是 consul,所以最先安装的开源组件是consul。
./bkcec install consul
./bkcec start consul
过程详解:
consul 是一个分布式的服务发现和配置管理的开源组件。它只有一个二进制文件,所以安装的主要工作在于生成需要的配置文件。
安装 consul 的主要步骤在 install_consul
函数中,它主要做了以下几个事情:
- 生成consul的主配置
consul.conf
和consul用的服务定义文件consul.d/service.json
是由parse_config
这个python脚本读取install.config
在每台机器上自动生成。 - 生成consul的配置后,还需要生成启动consul的supervisor配置。
- 修改系统的
/etc/resolv.conf
加上nameserver 127.0.0.1
并保证它是第一条记录
启动 consul。consul正常启动后,可以用consul members
确认是否三台server,其余机器为client(如果机器数量大于3)。
安装 license 服务
证书服务license 也是所有蓝鲸产品的全局依赖,第二个安装
./bkcec install license
./bkcec start license
详解:
- 拷贝license代码和cert目录
- 渲染模块配置文件
- 启动license。
安装 MySQL
开始安装MySQL数据库,并初始化设置
./bkcec install mysql
./bkcec start mysql
./bkcec initdata mysql
详解:
- 安装包里自带了mysql的二进制,所以直接拷贝到安装目录。新建mysql用户。
- 渲染my.cnf模板,然后建立/etc/my.cnf的软链。
- 执行
mysql_install_db
命令,初始化 - 启动 mysql
- 对所有 install.config 里的IP 在mysql上授权
安装 Redis
./bkcec install redis
./bkcec start redis
详解:
- 将 redis 命令拷贝到 /usr/bin
- 渲染配置模板。
修改系统内核参数
net.core.somaxconn = 512
vm.overcommit_memory = 1
- 启动 redis
安装 Nginx
Nginx 通过 yum 命令从epel源里安装。
./bkcec install nginx
./bkcec start nginx
详解:
- yum安装nginx
- 渲染 nginx 模板,并将 /etc/nginx/nginx.conf 软链到 $INSTALL_PATH/etc/nginx.conf
- 创建 $INSTALL_PATH/miniweb/download目录,并将/data/src/miniweb 目录和 /data/install/functions文件同步过去。供 agent 安装时可以HTTP远程下载用。
- 启动 nginx
安装 PaaS
最后安装 PaaS 模块
./bkcec install paas
./bkcec initdata paas
./bkcec start paas
详解:
安装 paas 用的函数叫
install_open_paas
。注意 paas 在安装部署脚本里均会被转换为 open_paas 来标识。这是一个特例。- 修改/etc/hosts 配置FQDN
- 拷贝代码文件到$INSTALL_PATH/open_paas
- 安装open_paas专用的python
- 创建四个子工程(appengine,login,esb,paas)的python虚拟环境。
- 安装每个子工程依赖的pip包
- 渲染模板文件
初始化 paas
- 导入sql初始化数据库
- paas login esb分别做python migrate初始化
- esb同步API文档事项
- 添加app的鉴权白名单,没有session时也可以调用esb。
- 启动 paas