安装 PaaS 及依赖

PaaS是蓝鲸产品的门户入口,所以安装蓝鲸先安装PaaS

PaaS依赖的组件和服务如下:

PaaS依赖简图

安装PaaS前,我们需要将中控机解压的src/、install/ 目录根据install.config配置的ip和模块关系来分发文件。

  1. ./bkcec sync all

安装 Consul

蓝鲸整个平台的内部通信基础是 consul,所以最先安装的开源组件是consul。

  1. ./bkcec install consul
  2. ./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 也是所有蓝鲸产品的全局依赖,第二个安装

  1. ./bkcec install license
  2. ./bkcec start license

详解:

  • 拷贝license代码和cert目录
  • 渲染模块配置文件
  • 启动license。

安装 MySQL

开始安装MySQL数据库,并初始化设置

  1. ./bkcec install mysql
  2. ./bkcec start mysql
  3. ./bkcec initdata mysql

详解:

  • 安装包里自带了mysql的二进制,所以直接拷贝到安装目录。新建mysql用户。
  • 渲染my.cnf模板,然后建立/etc/my.cnf的软链。
  • 执行mysql_install_db命令,初始化
  • 启动 mysql
  • 对所有 install.config 里的IP 在mysql上授权

安装 Redis

  1. ./bkcec install redis
  2. ./bkcec start redis

详解:

  • 将 redis 命令拷贝到 /usr/bin
  • 渲染配置模板。
  • 修改系统内核参数

    • net.core.somaxconn = 512
    • vm.overcommit_memory = 1
  • 启动 redis

安装 Nginx

Nginx 通过 yum 命令从epel源里安装。

  1. ./bkcec install nginx
  2. ./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 模块

  1. ./bkcec install paas
  2. ./bkcec initdata paas
  3. ./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