Jenkins,一种流行的手动化工具,用于持续集成、交付和布署,本文介绍怎样快速布署及配置。
后面的CI/CD文章,我们都是使用GitlabCI来实现的:
并且和GitlabCI比上去,个人观察Jenkins在国外企业使用愈加广泛,这是由于Jenkins早已存在了很长时间,拥有庞大的社区和插件生态系统,而GitlabCI则相对较新。通常一个人或则组织假如习惯了某样东西,没有较大的推力,是很难完成这些习惯转变的。
然而,GitlabCI有其独到的优势(参考:),近年来,在国外的使用比列也在逐步降低。
Jenkins是一种流行的手动化工具,用于实现持续集成和持续交付。它容许开发人员在建立和测试代码时手动化她们的流程,并支持持续布署,使开发团队能否将应用程序手动布署到各类环境中。
首先,我们先简单了解下Jenkins。
01
—
Jenkins简介
Jenkins是一个流行的开源手动化工具,它被广泛用于持续集成和持续交付。Jenkins的主要目标是手动化建立、测试和布署软件项目,便于快速地、频繁地交付高质量的软件。
Jenkins最初是由KohsukeKawaguchi创建的,它最初是一个Hudson的分支阿里云重装centos系统,后来逐步发展成为一个独立的开源项目。Jenkins支持多种编程语言和操作系统查看linux是什么系统,而且可以轻松集成其他工具和技术,如Git、SVN、Docker等。
Jenkins的核心功能是建立和测试代码,它可以从源代码管理系统(如Git或SVN)中获取代码,执行手动化建立和测试,并将结果反馈给团队。Jenkins还支持许多插件,可以轻松地扩充其功能。
Jenkins的工作原理基于“作业”(Job)和“节点”(Node)。作业定义了须要执行的任务,如建立、测试、部署等。节点是用于执行作业的计算机或服务器。Jenkins的作业可以在一个节点上执行,也可以在多个节点上并行执行。
Jenkins还支持多种插件和工具,如代码检测、静态剖析、代码覆盖率等。这种插件可以帮助团队更好地理解其代码库的质量和性能,并发觉潜在的问题。
Jenkins的另一个强悍功能是它可以与许多第三方工具和技术集成,如Docker、Kubernetes、AWS等。这种集成可以帮助团队更快地建立和布署应用程序,同时提升可靠性和安全性。
02
—
Jenkins快速配置与布署
和之前一样,我们继续使用docker-compose快速在Linux上布署Jenkins。
这是docker-compose.yml
version: '3.8'
services:
jenkins:
image: jenkins/jenkins:2.375.3-lts-centos7
restart: always
privileged: true
user: root
ports:
- 8081:8080
- 50000:50000
container_name: jenkins
environment:
- TZ=Asia/Shanghai
volumes:
- ./jenkins_configuration:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- ./jdk1.8.0_351:/opt/jdk
- ./jdk-11.0.17:/opt/jdk11
- ./settings.xml:/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven3.6.2/conf/settings.xml
对于前面的YAML文件,有两点须要说明:
这儿通过-./jdk1.8.0_351:/opt/jdk和-./jdk-11.0.17:/opt/jdk11来映射JDK文件,由于许多新的插件都依赖JDK11,这样形式重启后JDK须要重装。
-./jenkins_configuration:/var/jenkins_home映射了Jenkins里的配置信息,便捷持久化及后续的Jenkins迁移。
假如使用Maven插件,国外最好配置加速镜像(例如阿里云镜像)阿里云重装centos系统,可以通过映射settings.xml来配置。
执行docker-composeup-d启动,访问:8081就可以看见Jenkins界面了
03
—
备份与恢复
可以通过Git项目来备份Jenkins配置。
首先中标麒麟linux,我们须要将docker-compose.yml所在目录初始化为git项目,并和远端的代码库房绑定。
cd
git init
git remote add origin .git
git branch -M main
git pull origin main
git push origin main
之后,可以通过一个脚本来手动操作git递交。
# 设置用户名和邮箱
git config --global user.name "Shell-bot"
git config --global user.email "jaswan@foxmail.com"
# 进入要提交的目录
cd /opt/jenkins
# 添加所有变更的文件
git add -A
# 提交变更
git commit -m "backup: Daily update"
# 推送到远程仓库
git push origin main
最后,配置一下crontab实现每日备份。
接出来,我们可以验证下备份文件的恢复,步骤如下:
在新的文件夹拉取git项目
映射JDK8和JDK11
docker-composeup-d,这时会发觉许多任务都没有显示,这是由于插件没有安装的缘由。(插件容积太大,我在gitignore中过滤了,详情参考阅读全文)
安装之前用到的插件(否则原有任务将不显示)
docker-composedown,注释掉settings.xml映射,之后docker-composeup-d,这时可以发觉任务都已恢复。
执行一个job以installMaven(我用的3.6.1版本)。
docker-composedown,恢复settings.xml映射,之后docker-composeup-d
到这儿,Jenkins服务打算完毕,但是包含备份与还原方案。
本次分享到此结束,上次将继续分享Jenkins里怎么创建一些常见的建立任务。