Skip to content

keepwork docker how to build

DreamAndDead edited this page Aug 18, 2017 · 4 revisions

keepwork docker 部署流程

概要

docker分布图

每个方块中的服务都运行在docker中(除了标红的一个)

docker map

部署流程

准备

涉及的机器包括 251, 252 两台服务器,这两台机器都需要提前安装

  • docker(greater or equal 17.06)
  • docker-compose(latest)
  • 部署脚本KeepMonitor, 下面都默认脚本代码clone到用户目录

部署脚本中的./prequisite.sh可以帮忙安装docker,docker-compose,目前仅适用于ubuntu

1 启用jenkins master

  • 机器:251

建立目录,作为jenkins master的数据卷

mkdir -p /var/jenkins_home

(可选)如果是从其它jenkins迁移过来,先将其jenkins_home数据copy到/var/jenkins_home

启动jenkins服务

cd ~/KeepMonitor/master-ci
docker-compose up -d

初次运行,涉及到docker image的下载,可能有些慢

执行结束,访问 jenkins master, 判断服务是否成功

jenkins master的配置目录/var/jenkins_home非常重要,之中存储了所有jenkins的配置,做好备份,以后迁移到另外的机器非常方便

2 启用docker registry

  • 机器:251

调用部署脚本,生成registry密钥

cd ~/KeepMonitor/registry
./prequisite.sh

生成密钥有3个步骤

第一步,需要修改openssl.cnf文件,脚本会中断,询问是否已经修改过相应地方。yes会继续生成过程,no会中断过程。 修改openssl.cnf之后再来执行脚本

第二步,生成密钥,脚本自动完成。密钥会在当前目录的certs目录下,有domain.crt和domain.key,作为registry服务的准备

第三步,分发密钥,手动完成,任何想要和registry push/pull的主机都需要domain.crt(在这里是251,252两台主机都需要)

mkdir -p /etc/docker/certs.d/<host_ip>:5000/
cp -a ./certs/domain.crt /etc/docker/certs.d/<host_ip>:5000/ca.crt

密钥生成没问题之后,启动registry服务

cd ~/KeepMonitor/registry
docker-compose up -d

3 启用dev server, test server

  • 机器:251

因为nginx和两个server有link的关系,需要两个server服务先开启,nginx才可以开启

又因为目前两个server服务是由jenkins来启用的,如果没有代码提交的自动触发,先自先登陆 jenkins master,手动触发keepwork-dev-builder, keepwork-test-builder两个构建,启用两个server服务

4 nginx 反向代理

  • 机器:251

    cd ~/KeepMonitor/reverse-proxy ./run.dev.test.sh

测试服务是否正常运行

添加如下两行到/etc/hosts文件

121.14.117.251 stage.keepwork.com
121.14.117.251 test.keepwork.com

用浏览器访问stage.keepwork.comtest.keepwork.com,网站是否正常运行

5 jenkins slave

  • 机器:252

启动slave

cd ~/KeepMonitor/slave-ci
docker-compose up -d

访问jenkins master,看keepwork-online结点状态,是否已经连接上

6 rls server

  • 机器:252

线上服务器也由jenkins来触发启动,访问jenkins触发keepwork-online-builder,通过部署在252上的slave,完成线上服务器的更新

Clone this wiki locally