Jenkins 自动化看这一篇就够了

本篇文章将向您介绍Jenkins的基本功能以及如何安装和使用Jenkins 文章很细节,建议看到最后

1. 先对Jenkins 做一个简单的了解

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

1.1 CI/CD解释

  • CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
  • CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。

1.2 为啥要用Jenkins 它解决了哪些痛点?

优点:

  1. 开源免费:Jenkins是开源的,这意味着用户可以自由地使用、修改和分发它,而不需要支付任何许可费用。
  2. 高度可配置:Jenkins非常灵活,可以通过安装各种插件来扩展其功能,以满足特定项目的需求。有超过一千种插件可用,涵盖从构建到部署的各个方面。
  3. 跨平台支持:Jenkins可以在多种操作系统上运行,包括Windows、Linux和macOS等。
  4. 社区支持强大:由于Jenkins拥有庞大的用户群,因此有大量的文档、教程以及活跃的社区支持,这对于新用户来说是一个巨大的优势。
  5. 易于集成:Jenkins很容易与现有的系统和服务进行集成,比如版本控制系统(Git, SVN)、代码质量工具(SonarQube)、通知服务(Slack, Email)等。
  6. 自动化能力:通过设置构建触发器,Jenkins可以根据需要自动执行构建任务,例如当代码库发生变化时。
  7. 分布式构建支持:对于大型项目,Jenkins允许将工作负载分散到多台机器上,从而加速构建过程。
  8. 用户界面友好:虽然主要是基于Web的管理界面,但Jenkins提供了一个直观易用的UI,让非技术背景的人员也能轻松上手。

解决了哪些痛点:

  • 手动错误减少:通过自动化测试和部署流程,减少了人为因素导致的错误。
  • 提高效率:自动化构建、测试及部署加快了产品迭代速度,使得团队能够更快地发布更新。
  • 增强协作:集成的特性促进了开发者之间的沟通与合作,确保每个人都了解项目的最新状态。
  • 持续反馈:快速得到关于代码变更影响的信息,有助于及时发现并解决问题。
  • 资源优化:利用分布式的架构有效利用计算资源,避免单一服务器成为瓶颈。
  • 标准化流程:定义明确的工作流帮助组织实现一致性和标准化,降低了不同团队或成员之间操作方式不统一的风险。

2. 如何使用 Jenkins

2.1 安装要求

按照官方的说法,您需要:

  • 机器要求:
    • 256 MB 内存,建议大于 512 MB
    • 10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像)

 

  • 需要安装以下软件:
    • Java 8或者 Java11 ( 建议最好装一个 java11 因为高版本的 jenkins 必须得 java11)
    • Docker (本次演示没有使用docker,仅用到了maven和jdk)

 

2.2 下载并运行 Jenkins

get.jenkins.io/war-stab

由于我本地安装的是 java11 所以Jenkins选择2.414.3这个版本

如果你也是 java11 直接点击这里

 

 

我们可以看到Jenkins的包是一个 war 包,它有两种启动方式:一种是将 war 包方到 tomcat 中启动,一种是直接启动,下面我演示直接启动的方式

启动:

java -jar jenkins.war --httpPort=8080.

看到如下日志代表启动成功

访问:http://localhost:8080

看上图让我们输入密码,它说密码已经保存到服务器上 地址已经给你标到了下面,我们去这个地址下的initialAdminPassword文件复制密码(或者在日志输出也会打印)

输入密码后: (这里选哪个都可以 我选择安装推荐的插件)

注意:如果按照插件过程中出现这个错误:jenkins安装报错:No such plugin: cloudbees-folder 请看这个文章(作者写的很详细):blog.csdn.net/weixin_46

然后创建用户并且完成

 

3. 如何使用jenkins部署java项目

3.1 安装插件

部署项目的三个必要的插件

Maven Integration:Maven 构建工具

Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。

Gitee:协助使用 Gitee 仓库

从这里搜索安装

 

3.2 配置 jdk 和 maven

在系统管理中找到全局工具配置

 

maven:

 

jdk:

 

3.3 Publish Over SSH凭证配置和Gitee配置

进入系统管理 —> 系统配置

SSH:

往下拉找到 Publish Over SSH,然后点击新增,开始配置,Hostname 位置填写你服务器的域名或者 IP

这里有个注意点:我使用的是本地电脑(mac),通过 ssh 连接的话需要打开一下电脑的远程登录

点击下方的测试,success 代码可以成功连接

 

Gitee:

我们这里以 gitee 的远程仓库为示例,配置 gitee 的凭证

准备工作:从 gitee.com/profile/perso 获取私人令牌(没有则创建)

第一步填写地址:

 

第二步添加令牌:

类型选 Gitee Api 令牌

填写从 gitee 上获取到的令牌

 

添加成功后 点击测试连接

 

3.4 新建任务,配置任务

点击左侧菜单-->新建任务

我们先创建一个简单的 maven 项目

 

然后选择源码管理 --> 然后选择 git

填写仓库 url 和用户名密码

 

配置构建命令:

注意⚠️:这里我将maven的构建命令改为了 :clean package -Dmaven.test.skip=true 避免执行测试类

 

 

配置Post Steps: 选择第一个 仅在成功时运行

 

配置ssh去执行拷贝和启动命令

 

配置要构建的文件路径和启动命令等:

 

这里容易出错,解释一下上面的字段:

  • Name:选择要上传的服务器,也就是我们在 3.3 Publish Over SSH中的配置
  • Source files:要上传的文件,也就是我们jar包在项目中的位置,一般都是target/ 下
  • Remove prefix:要排除的前缀
  • Remote directory:要拷贝的目录位置,是基于我们在3.3 Publish Over SSH中配置的路径下
  • Exec command:执行的启动jar包的命令

开启操作日志:

 

至此,整个配置工作就完成啦 ~

记得点击保存哦~

大功告成,看成效

3.5 构建项目

回到桌面,找到我们创建的任务点进去

 

点击立即构建 点击查看日志

可以看到构建成功

 

下面是ssh去启动项目的日志 也可以看到springboot的启动日志

 

然后查看我们的目录,可以看见jar包也被拷贝到了对应的目录下

 

One more thing

如果你穿漂亮的衣服,人们会认为你在炫耀。

如果你穿简单的衣服,人们会认为你很穷。

如果你直言不讳,你会很粗鲁。

如果你保持沉默,那么你就是懦夫。

如果你成功了,那么你就是傲慢的。

如果你在挣扎,那么你就是懒惰的。

无论你在生活中做什么,人们总是有话要说。

所以,忽略人们和他们的意见。

因为只要上帝对你满意,谁在乎别人怎么想。

发布于 2024-12-12 17:45・北京

这里选择了在docker容器内安装,主要图个省事,有些人可能觉得在这里面安装后续坑很多,其实也还好,只要把目录挂载好,然后到时候在jenkins里面操作docker的时候需要ssh连接罢了,需要配公钥免密登录,但我觉得这个是不可避免的,实际操作中,你不可能保证你的jenkins和docker在同一台服务器的,而且jenkins到时候可能还需要远程连接其它的服务器操作。

安装Jenkins

  1. 下载Jenkins,lts代表最新版
docker pull jenkins/jenkins:lts
powershell
  • 1
  1. 查看Jenkins镜像
docker images
docker inspect jenkins镜像ID
powershell
  • 1
  • 2
  1. 创建一个Jenkins目录,用于容器内目录挂载宿主机
mkdir /data/jenkins_home
powershell
  • 1
  1. 安装启动Jenkins容器
docker run -d --name jenkins -p 8081:8080 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts;
备注:
-d //启动在后台
--name //容器名字
-p //端口映射(8081:宿主机端口,8080:容器内部端口)
-v //数据卷挂载映射(/data/jenkins_home:宿主机目录,/var/jenkins_home:容器目录)
jenkins/jenkins:lts //镜像
powershell
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 查看Jenkins启动情况
docker ps | grep jenkins
powershell
  • 1

在这里插入图片描述

  1. 安装过程遇到的小问题
    Jenkins容器docker run之后状态总是Exited
    查看docker日志 :
    docker logs jenkins
    发现是目前权限问题
    因为/data/jenkins_home 目录是root权限

  2. 解决方法:用户组改变

chown -R 1000:1000 /data/jenkins_home
powershell
  • 1
  1. 云服务器8081端口要开启
    因为本操作是在阿里云ECS上进行安装的,需要在安全组里开放8081此端口,咱自己用,最好还是指定下IP吧
  2. 访问Jenkins
http://阿里云公网IP:8081
powershell
  • 1

配置Jenkins

  1. 解锁
    在这里插入图片描述
    在安装完成后,默认生成了一个登录密码,首次登录需要这个密码。
    密码容器内路径:var/jenkins_home/secrets/initialAdminPassword
    但是我们不是之前在宿主机挂载过目录吗,直接在宿主机就可以查看密码了
    查看密码:然后复制粘贴即可
cat /data/jenkins_home/secrets/initialAdminPassword
shell
  • 1
  1. 安装插件
    推荐直接点左边的推荐插件,看网速吧,慢的话半小时,但是至少是全的,省事
    在这里插入图片描述
  2. 管理用户创建
    创建一个管理员账户,相当于admin
    在这里插入图片描述

配置完成

在这里插入图片描述

posted @ 2025-08-05 15:17  charyGao  阅读(191)  评论(0)    收藏  举报