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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 这次将使用阿里云容器服务搭建GitLab作为代码管理仓库,最后使用Jenkins插件aliyun-container-service-deploy实现部署应用,并支持蓝绿发布和标准发布两种发布策略。

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

1.部署Jenkins和Slave

1.1使用编排模板一键部署

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

1.2配置Slave节点

Jenkins应用和Slave节点创建完成之后,我们需要在Jenkins应用中添加刚刚创建的Slave节点,从而Slave节点可以被Jenkins用来执行项目。
打开Jenkins应用,进入系统设置界面,选择管理节点,新建节点。节点需要配置标签、Slave的地址、以及访问的密钥。
添加Credentials的时候,需要填写Jenkins Slave节点的SSH用户名密码,默认情况下用户名密码为jenkins/jenkins。
2

2.部署GitLab

2.1使用编排模板一键部署

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

2.2配置host

在应用创建成功之后,将路由地址配置成GitLab应用的host。在应用列表中找到刚刚创建的GitLab应用,选择变更配置,将GITLAB_HOST环境变量改成路由地址。需要注意的是,要更新应用版本才能变更配置。
3
4
这时候用户可以将github中的代码导入,也可以自己新建一个代码仓库。本文依然使用containerops代码来演示。
code

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

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

3.1指定项目运行节点

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

3.2配置源码管理

Repository URL中填入你的代码仓库地址。
Credentials 中添加可以拉取代码的账户和密码。
6

3.3配置构建触发器

选择“Build when a change is pushed to GitLab”,在“高级”配置中,可以根据名字或者正则表达式来控制相应代码分支的触发。
7
在gitlab代码仓库的设置中选择Webhooks,URL中填写Jenkins项目的地址。上图中勾选的“Build when a change is pushed to GitLab”触发器中也有提示。选择Event类型,点击Add Webhook。在生成的触发器中,右侧有Test按钮,可以用来测试。
7_2
7_3

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

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

3.5添加部署应用步骤

阿里云容器服务的Jenkins示例模板内置了支持选择发布策略的部署应用插件Aliyun Container Service Deploy,用户可以添加“Aliyun Container Service Deploy”类型的构建步骤来实现部署应用。
下载部署应用集群的证书zip包(解压缩得到key.pem,cert.pem和ca.pem三个文件),获取集群接入地址。
9
将集群接入地址转换成https://格式填入MasterURL对话框中。
ApplicationName对话框中输入应用名称。
ComposeTemplate对话框输入编排模板位置(代码中的相对路径)。
Publish Strategy对话框中选择需要的发布模式,支持标准发布和蓝绿发布
10
添加“Docker Host Certificate Authentication”类型的证书。
11
点击确认之后,我们的持续集成流程就已经创建完成,这时候在GitLab中修改jenkins-test分支的代码,就可以在容器服务控制台看到应用的变更。

Note:如果所有流程都正确,却发现代码变更不能自动触发项目构建的时候,请把上面示例中的gitlab host换乘 ip(宿主机):port。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
5月前
|
jenkins Java 持续交付
【项目集成工具】Jenkins
【项目集成工具】Jenkins
|
3天前
|
缓存 关系型数据库 数据库
【Docker 专栏】Docker 与容器化数据库的集成与优化
【5月更文挑战第9天】本文探讨了Docker与容器化数据库集成的优势,如快速部署、环境一致性、资源隔离和可扩展性,并列举了常见容器化数据库(如MySQL、PostgreSQL和MongoDB)。讨论了集成方法、注意事项、优化策略,包括资源调整、缓存优化和监控告警。此外,强调了数据备份、恢复测试及性能评估的重要性。未来,随着技术发展,二者的集成将更紧密,为数据管理带来更多可能性。掌握此技术将应对数字化时代的机遇与挑战。
【Docker 专栏】Docker 与容器化数据库的集成与优化
|
12天前
|
敏捷开发 运维 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。自动化运维作为提升效率、确保稳定性的关键手段,其重要性不言而喻。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现从代码提交到产品上线的持续集成(CI)与持续部署(CD)。通过分析现代容器技术与传统虚拟化的差异,阐述容器化带来的轻量化、快速部署及易于管理的优势,并结合实例讲解如何在实际环境中搭建起一套完善的CI/CD流程。
|
12天前
|
运维 Kubernetes 持续交付
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】 在快速发展的云计算时代,传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文将介绍如何利用容器技术搭建一套高效自动化运维系统,实现软件的持续集成(CI)与持续部署(CD)。文章首先探讨了现代运维面临的挑战,接着详细阐述了容器技术的核心组件和工作原理,最后通过实际案例展示了如何整合这些组件来构建一个可靠、可扩展的自动化运维平台。
|
13天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署(CI/CD)实践
【4月更文挑战第29天】 随着云计算和微服务架构的兴起,自动化运维已成为提升企业IT效率、确保系统稳定性的关键因素。本文旨在探讨如何利用容器技术构建一套高效的自动化运维体系,实现软件开发过程中的持续集成(CI)与持续部署(CD)。文章首先分析了传统运维模式面临的挑战,然后详细介绍了基于Docker和Kubernetes等容器技术的CI/CD流程设计与实施策略,并通过一个实际案例来展示该方案在提高部署频率、降低人力成本及提升系统可靠性方面的显著优势。
|
1月前
|
存储 持续交付 API
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
35 0
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
|
1月前
|
运维 Kubernetes 监控
构建高效自动化运维系统:基于容器技术的持续集成与部署策略
【4月更文挑战第4天】在数字化转型的浪潮中,企业对于软件交付的速度和质量要求越来越高。传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文旨在探讨如何利用容器技术构建一个高效的自动化运维系统,实现软件开发生命周期中的持续集成(CI)与持续部署(CD)。通过分析容器技术的核心优势,结合DevOps文化和微服务架构,我们提出了一套系统的构建策略和实践步骤。文章将详细阐述从环境搭建到流程优化的全过程,以及在此过程中可能遇到的挑战和解决方案,为运维专业人员提供参考和指导。
|
1月前
|
运维 Kubernetes 测试技术
构建高效自动化运维系统:基于容器技术的持续集成与持续部署(CI/CD)实践
【4月更文挑战第2天】 在快速发展的信息技术时代,自动化运维已成为提升企业IT效率、保障系统稳定性的关键手段。本文以容器技术为核心,探讨了如何构建一个高效的自动化运维系统,实现软件的持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)。通过深入分析Docker容器及Kubernetes集群管理工具的运用,提出了一套切实可行的CI/CD流程方案,旨在帮助读者理解并实践自动化运维的最佳实践,进而推动企业运维管理的现代化进程。
|
2月前
|
运维 监控 Devops
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业的IT基础设施和软件交付模式正经历着深刻的变革。传统的运维方式已难以满足快速迭代、灵活扩展的现代业务需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点分析持续集成(CI)与持续部署(CD)的实践方法及其对企业运维效率的影响。通过引入微服务架构、容器编排、DevOps文化等概念,我们旨在为读者提供一套全面的自动化运维解决方案,以支持业务的敏捷性和可扩展性。

相关产品

  • 容器计算服务