使用阿里云容器服务实现持续集成之GitLab版

使用阿里云容器服务实现持续集成之GitLab版

前面有篇文章《使用阿里云容器服务Jenkins实现持续集成和Docker镜像构建》详细地描述了如何通过阿里云容器服务平台,快速创建Jenkins应用,结合GitHub实现持续集成和镜像构建。这次将使用阿里云容器服务搭建GitLab作为代码管理仓库,最后使用Jenkins插件aliyun-container-service-deploy实现部署应用,并支持蓝绿发布和标准发布两种发布策略。

1.部署Jenkins和Slave

1.1使用编排模板一键部署

阿里云容器服务的示例模板中已经内置支持了Jenkins Master与多种语言的Slave的编排模板,用户可以直接选择编排模板进行部署。

使用阿里云容器服务实现持续集成之GitLab版

1.2配置Slave节点

Jenkins应用和Slave节点创建完成之后,我们需要在Jenkins应用中添加刚刚创建的Slave节点,从而Slave节点可以被Jenkins用来执行项目。

打开Jenkins应用,进入系统设置界面,选择管理节点,新建节点。节点需要配置标签、Slave的地址、以及访问的密钥。

添加Credentials的时候,需要填写Jenkins Slave节点的SSH用户名密码,默认情况下用户名密码为jenkins/jenkins。

使用阿里云容器服务实现持续集成之GitLab版

2.部署GitLab

2.1使用编排模板一键部署

阿里云容器服务的示例模板提供了数据库和应用分离的GitLab编排模板,用户依然可以直接选择编排模板进行部署。

2.2配置host

在应用创建成功之后,将路由地址配置成GitLab应用的host。在应用列表中找到刚刚创建的GitLab应用,选择变更配置,将GITLAB_HOST环境变量改成路由地址。需要注意的是,要更新应用版本才能变更配置。

使用阿里云容器服务实现持续集成之GitLab版

使用阿里云容器服务实现持续集成之GitLab版

这时候用户可以将github中的代码导入,也可以自己新建一个代码仓库。本文依然使用containerops代码来演示。

使用阿里云容器服务实现持续集成之GitLab版

3.创建Jenkins项目实现简单的持续集成流程

出于演示的目的,此处用一个Jenkins项目来实现整个持续集成流程,在正式的日常环境中,用户可以根据自己的需要,增加单元测试等项目作为前置条件来丰富完善自己的持续集成。在Jenkins应用页面选择新建一个自由风格项目。

3.1指定项目运行节点

Jenkins应用的项目默认是运行在Master节点,也就是应用本身安装环境。此处我们配置项目运行在上面创建的nodejs节点。

使用阿里云容器服务实现持续集成之GitLab版

3.2配置源码管理

Repository URL中填入你的代码仓库地址。

Credentials 中添加可以拉取代码的账户和密码。

使用阿里云容器服务实现持续集成之GitLab版

3.3配置构建触发器

选择“Build when a change is pushed to GitLab”,在“高级”配置中,可以根据名字或者正则表达式来控制相应代码分支的触发。

使用阿里云容器服务实现持续集成之GitLab版

3.4添加构建镜像推送镜像构建步骤

添加“Excute Shell”类型的构建步骤,通过shell脚本来实现构建镜像和推送镜像。

使用阿里云容器服务实现持续集成之GitLab版

3.5添加部署应用步骤

阿里云容器服务的Jenkins示例模板内置了支持选择发布策略的部署应用插件Aliyun Container Service Deploy,用户可以添加“Aliyun Container Service Deploy”类型的构建步骤来实现部署应用。

下载部署应用集群的证书zip包(解压缩得到key.pem,cert.pem和ca.pem三个文件),获取集群接入地址。

使用阿里云容器服务实现持续集成之GitLab版

将集群接入地址转换成https://格式填入MasterURL对话框中。

ApplicationName对话框中输入应用名称。

ComposeTemplate对话框输入编排模板位置(代码中的相对路径)。

Publish Strategy对话框中选择需要的发布模式,支持标准发布和蓝绿发布。

使用阿里云容器服务实现持续集成之GitLab版

添加“Docker Host Certificate Authentication”类型的证书。

使用阿里云容器服务实现持续集成之GitLab版

点击确认之后,我们的持续集成流程就已经创建完成,这时候在GitLab中修改jenkins-test分支的代码,就可以在容器服务控制台看到应用的变更。

相关推荐