当前位置: 首页 > news >正文

Jenkins保姆笔记(1)——基于Java8的Jenkins安装部署

前言

记录分享下Jenkins的相关干货知识。分2-3篇来介绍Jenkins的安装部署以及使用。还是和以前一样,文章不介绍较多概念和细节,多介绍实践过程,以战代练,来供大家学习和理解Jenkins

概念

Jenkins是一个开源的自动化服务器,主要用于自动化软件开发过程中的构建、测试和部署任务。它使用Java编写,并提供了一个可扩展的插件生态系统,支持各种编程语言和工具。Jenkins支持持续集成(CI)和持续部署(CD)的概念,帮助开发团队更快地发布高质量的软件。

安装

下载

首先可以查看下Jenkins官网

如果条件允许,建议还是安装高版本甚至新版本的Jenkins,这会使得你在后面的插件安装中更方便点。但是不同版本的Jenkins和Java是有版本约束的。

Supported Java versions for the LTS release line are:

2.361.1 (September 2022) and newer

Java 11 or Java 17

2.346.1 (June 2022) and newer

Java 8, Java 11, or Java 17

2.164.1 (March 2019) and newer

Java 8 or Java 11

2.60.1 (June 2017) and newer

Java 8

1.625.1 (October 2015) and newer

Java 7

我的Java8,也就意味着只能用Jenkins版本在2.346及以下的。建议是2.346.x

我们这里下载Jenkins2.346.1(https://get.jenkins.io/war-stable/2.346.1/jenkins.war)来进行实验和学习。

安装

下载好war包,传到服务器后,记好war包的路径,晚点用的着。我们直接丢在root根目录下。

执行安装命令:

java -jar jenkins.war

安装结束会有个警告,告诉你该升级了,咱们只当它是个安装成功的标志。

Warning: You are running Jenkins on Java 1.8, support for which will end on or after September 1,Please refer to the documentation for details on upgrading to Java 11: https://www.jenkins.io
ect/upgrading-jenkins-java-version-8-to-11
Running from: /root/jenkins.war

安装就结束了,下面重点讲下启动。

启动

启动可以2种方法,命令行启动和服务启动。

通过命令行启停Jenkins(非service方式)

启动Jenkins
使用java -jar jenkins.war命令启动Jenkins时,该命令会在前台运行,并且会占用当前命令行窗口。如果希望Jenkins在后台运行,可以使用nohup命令或将其放入脚本中,并使用&将命令置于后台执行。例如:

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

 这条命令会让Jenkins在后台运行,并将输出重定向到nohup.out文件中。

停止Jenkins
如果Jenkins是通过上述方式启动的,您可以通过查找Java进程的PID,并使用kill命令来停止它。例如:

ps -ef | grep jenkins.war  
# 找到Jenkins进程的PID,然后执行  
kill -9 [PID]

通过systemctl启停Jenkins(需要配置为service)

如果您希望使用systemctl来管理Jenkins服务,您需要先将Jenkins配置为一个systemd服务。以下是一个基本的步骤说明:

验证路径及参数

如果参数正确,才有下文的服务文件。验证方法是用以下带路径的命令行尝试启动试试?

/usr/java/jdk-1.8-oracle-x64/bin/java -jar /root/jenkins.war --httpPort=8080 > jenkins_output.log 2>&1

然后查看jenkins_output.log文件以获取详细的错误信息 

创建Jenkins systemd服务文件

/etc/systemd/system/目录下创建一个名为jenkins.service的文件,并编辑它以包含类似以下内容:

[Unit]  
Description=Jenkins Server  
After=network.target
[Service]  
#如果要自定义用户记得要先去赋权,我们用root就不需要
#User=jenkins  
#Group=jenkins
Type=simple  
ExecStart=/usr/java/jdk-1.8-oracle-x64/bin/java -jar /root/jenkins.war --httpPort=8080   
Restart=on-failure 
[Install]  
WantedBy=multi-user.target

注意替换ExecStart中2个路径,分别是java的可执行性文件路径(也就是"$JAVA_HOME/bin/java"),后面一个路径就是之前下载的Jenkins WAR文件的实际路径。

完事重新加载systemd的配置,使其识别新创建的jenkins.service文件:

sudo systemctl daemon-reload

然后就是我们熟悉的 systemctl命令了:

sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl stop jenkins

启动若是不顺利,除了查询

sudo systemctl status jenkins -l

也还可以

journalctl -u jenkins.service

 登录

Jenkins安装成与不成,最直接的当然是登录,我们访问http://ip:8080后,如下图能打开了,就恭喜你,安装成功了。

后续界面会问你输入管理员的密码,密码在/var/lib/jenkins/secrets/initialAdminPassword文件里

vi /var/lib/jenkins/secrets/initialAdminPassword

输入密码进去,就到了插件选择页面,这里注意不要安装插件

之所以“选择插件来安装”,是为了“不选择”,也就是下个插件选择页面中,啥也不选。因为选啥都会失败的。咱们不选,然后进入下一步,创建个用户到了管理控制台。

至此,我们的安装工作已经全部结束,下次我们开始

Jenkins保姆笔记(2)——基于Java8的Jenkins插件安装

介绍进入控制台后,如何安装插件。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用Cisco进行模拟RIP路由协议配置
  • 文献解读-肿瘤测序-第二十七期|《敲减通过控制TOP2A下调的NUSAP1可以抑制人胶质母细胞瘤的细胞增殖和侵袭》
  • Prometheus 笔记
  • Stable Diffusion之最全详解图解
  • 采用Spring Cloud +UniApp +MySql技术开发,SaaS模式的一套智慧工地云平台源码,支持多端展示:PC端、大屏端、手机端、平板端
  • 科普文:微服务之Spring Cloud Alibaba组件Nacos一致性协议Distro+Raft概叙
  • 下载qwen2-72b报错
  • uniapp 使用renderjs通信
  • vue设置每次加载页面时展示一个双开门效果
  • 芯感智最新流量传感器GF*000系列应用于医疗方向
  • IoTDB 入门教程 基础篇⑪——Data导入导出工具
  • Vue3+TS+element plus实现一个简单列表页面
  • 《Milvus Cloud向量数据库指南》——Milvus Cloud——Ivy.ai业务创新的坚实基石
  • 两个月后,我又开发了一款图片制作工具
  • 【Golang 面试 - 进阶题】每日 3 题(十三)
  • Android单元测试 - 几个重要问题
  • CentOS6 编译安装 redis-3.2.3
  • CSS相对定位
  • ES6之路之模块详解
  • iOS编译提示和导航提示
  • Java比较器对数组,集合排序
  • MySQL的数据类型
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vue的全局变量和全局拦截请求器
  • 闭包--闭包之tab栏切换(四)
  • 程序员最讨厌的9句话,你可有补充?
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 警报:线上事故之CountDownLatch的威力
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 回归生活:清理微信公众号
  • ​Java并发新构件之Exchanger
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #QT 笔记一
  • #QT(一种朴素的计算器实现方法)
  • #控制台大学课堂点名问题_课堂随机点名
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (zt)最盛行的警世狂言(爆笑)
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (力扣)循环队列的实现与详解(C语言)
  • (六)vue-router+UI组件库
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (译)2019年前端性能优化清单 — 下篇
  • (源码分析)springsecurity认证授权
  • (转)shell中括号的特殊用法 linux if多条件判断
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .chm格式文件如何阅读
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法