Ubuntu使用war包部署Jenkins并通过systemcl管理

目录

一、当前系统环境

二、安装Java

二、安装Jenkins

三、使用systemctl管理


一、当前系统环境

操作系统:ubuntu 24.04

Jenkins版本:2.506 格式:war

JDK版本:OpenJDK_17

二、安装Java

1.下载jdk安装包

# wget下载
wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/17/jdk/x64/linux/OpenJDK17U-jdk_x64_linux_hotspot_17.0.14_7.tar.gz

2.创建java目录并解压压缩包

# 解压JDK到指定目录
sudo mkdir -p /usr/local/java
sudo tar -zxf OpenJDK17U-jdk_x64_linux_hotspot_17.0.14_7.tar.gz -C /usr/local/java --strip-components 1

3.设置java环境变量

vim /etc/profile

在最末尾添加下面的内容  

# Java environment
export JAVA_HOME=/usr/local/java
export PATH=$PATH:${JAVA_HOME}/bin

4.使环境变量生效 

source /etc/profile

5.验证安装是否生效

java -version

root@ubuntu01:/# java -version
openjdk version "17.0.14" 2025-01-21
OpenJDK Runtime Environment Temurin-17.0.14+7 (build 17.0.14+7)
OpenJDK 64-Bit Server VM Temurin-17.0.14+7 (build 17.0.14+7, mixed mode, sharing)
root@ubuntu01:/# 
二、安装Jenkins

1.创建运行jenkins的用户和组

useradd -m jenkins

2.创建jenkins的home目录

mkdir -p /usr/local/jenkins/

3.下载Jenkins最新war包

cd  /usr/local/jenkins
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.506/jenkins.war

4.设置文件夹权限

chown -R jenkins:jenkins /usr/local/jenkins
chmod +x -R /usr/local/jenkins

5.启动测试


# 导入JENKINS_HOME环境变量
export JENKINS_HOME=/usr/local/jenkins# 启动Jenkins
java -jar jenkins.war   --httpPort=8888 
三、使用systemctl管理

1.创建服务文件

vim /usr/lib/systemd/system/jenkins.service

要在Environment指明JENKINS_HOME实际目录,默认是用户home目录下的.jenkins文件夹ExecStart里面所有目录都使用绝对路径,包括java和war包所在的路径。

[Unit]
Description=Jenkins Continuous Integration Server
After=network.target[Service]
Type=simple
User=jenkins
Environment="JENKINS_HOME=/var/lib/jenkins"
ExecStart=/usr/local/java/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -jar /usr/local/jenkins/jenkins.war --httpPort=8888
Restart=on-failure[Install]
WantedBy=multi-user.target

2.添加文件执行权限

chmod +x /usr/lib/systemd/system/jenkins.service

3.重新加载systemctl 并启动服务

systemctl daemon-reload && systemctl start jenkins

4.查看jenkins运行状态

systemctl status jenkins
root@ubuntu01:/# systemctl status jenkins
● jenkins.service - JenkinsLoaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; preset: enabled)Active: active (running) since Wed 2025-04-23 10:27:37 CST; 7min agoMain PID: 90424 (java)Tasks: 44 (limit: 4552)Memory: 375.1M (peak: 386.7M)CPU: 16.396sCGroup: /system.slice/jenkins.service└─90424 /usr/local/java/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -jar /usr/local/jenkins/jenkins.war --httpPort=8888Apr 23 10:27:43 ubuntu01 java[90424]: 2025-04-23 02:27:43.144+0000 [id=31]        INFO        jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
Apr 23 10:27:43 ubuntu01 java[90424]: 2025-04-23 02:27:43.178+0000 [id=30]        INFO        jenkins.InitReactorRunner$1#onAttained: Started all plugins
Apr 23 10:27:43 ubuntu01 java[90424]: 2025-04-23 02:27:43.194+0000 [id=30]        INFO        jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
Apr 23 10:27:43 ubuntu01 java[90424]: 2025-04-23 02:27:43.519+0000 [id=29]        INFO        h.p.b.g.GlobalTimeOutConfiguration#load: global timeout not set
Apr 23 10:27:44 ubuntu01 java[90424]: 2025-04-23 02:27:44.767+0000 [id=31]        INFO        jenkins.InitReactorRunner$1#onAttained: System config loaded
Apr 23 10:27:44 ubuntu01 java[90424]: 2025-04-23 02:27:44.768+0000 [id=31]        INFO        jenkins.InitReactorRunner$1#onAttained: System config adapted
Apr 23 10:27:44 ubuntu01 java[90424]: 2025-04-23 02:27:44.794+0000 [id=29]        INFO        jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
Apr 23 10:27:44 ubuntu01 java[90424]: 2025-04-23 02:27:44.805+0000 [id=30]        INFO        jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
Apr 23 10:27:44 ubuntu01 java[90424]: 2025-04-23 02:27:44.849+0000 [id=29]        INFO        jenkins.InitReactorRunner$1#onAttained: Completed initialization
Apr 23 10:27:44 ubuntu01 java[90424]: 2025-04-23 02:27:44.888+0000 [id=23]        INFO        hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
root@ubuntu01:/# 

5.查看服务日志

journalctl -u jenkins.service --reverse

6.设置开机自启

systemctl enable jenkins

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客 verilog入门 VIP

1、输出1 答案: timescale 1ns/1nsmodule top_module(output wire one );assign one 1b1; endmodule 2、wire连线 答案: timescale 1ns/1nsmodule wire0(input wire in0,output wire out1 );assign out1 in0; endmodule 3、多wire连线 timescale 1…

简易版2D我的世界C++程序(有点BUG,但是可以玩!!!)

1、按空格键来切换模式(挖掘模式和放置模式),一律用鼠标右键来操作!!! 2、按数字1和2键来切换放置的方块(1是草,2是木),树叶不能放置!&#xff01…

ubuntu使用dify源码安装部署教程+避坑指南

很多人,包括我在最初使用dify的时候都习惯使用docker来部署安装环境,但在二次开发使用过程中,我们可能希望使用源码来安装,那么这篇文章我将给大家分享如何在ubuntu系统下使用源码安装,并提供大家遇到的疑难杂症如下: dify安装使用过程中报错:/console/api/workspaces/…

java知识体系结构导航

很全:java知识体系结构 个人笔记链接 开发工具IDEA IDEA 插件推荐清单 IDEA快捷键大全 Java基础难点 基础知识_java动态代理 基础知识_java反射机制 基础知识-java流steam 基础知识-java集合collection Spring 01.Spring 框架的演化:从 XML 配置到…

RabbitMQ 的专业术语

术语定义示例/说明生产者(Producer)发送消息到 RabbitMQ 的客户端应用程序。日志系统将错误信息发送到 RabbitMQ。消费者(Consumer)从 RabbitMQ 队列中接收并处理消息的客户端应用程序。一个订单处理服务从队列中读取消息并更新数…

mac安装vm虚拟机安装包

因为mac安装虚拟机时,发现下载过程变得不太一样,会比较麻烦。所以决定发一下我已经下载的安装包,个人用户使用免费,商业版请自行去官网下载! 百度网盘下载链接 百度网盘 请输入提取码 提取码:d4rc

LLama Factory从入门到放弃

目录 简介 安装 LLama Factory界面介绍 数据格式要求 微调训练 今天在这里介绍一种常用的大模型微调框架——LLama Factory。 简介 LLama Factory 是一个高效的界面化大语言模型微调工具库,支持多种参数高效微调技术,提供简洁接口和丰富示例&#…

如何借助全球动态IP实现多平台账号的批量注册?

无论是社交网络、在线购物平台还是专业应用软件,账号的创建和使用都是必不可少的。然而,在面对不同平台各自的注册限制和策略时,如何高效、安全且合法地进行账号批量注册成为了亟待解决的问题。本文将探讨全球动态IP在这一过程中的作用及其如…

django admin 添加自定义页面

在Django中,你可以通过多种方式向Django Admin添加自定义页面。以下是一些常见的方法: 方法1:使用ModelAdmin的get_urls()方法 如果你只是想添加一个简单的页面来展示信息,你可以在你的ModelAdmin类中重写get_urls()方法。 from…

Docker容器持久化

引言 Docker 容器作为一种轻量级、可移植的虚拟化技术,广泛应用于开发、测试和生产环境中。然而,容器天生是短暂的,意味着它们在生命周期结束后会被销毁,而其中的数据也会随之丢失。为了确保容器中的数据能够持久化,我…

ShaderToy学习笔记 02.圆

1. 画圆 1.1. 圆的方程 圆的方程是:(x^2 y^2 r^2),其中(r)是圆的半径。 我们可以使用 desmos 来验证一下。 输入 x^2 y^2 -10,即可得到圆。 类似下图 1.2. 画圆的方式 画圆:使用圆的方程,判断每个像素点是否在圆…

一文详解卷积神经网络中的卷积层和池化层原理 !!

文章目录 前言 一、卷积核大小(Kernel Size) 1. 卷积核大小的作用 2. 常见的卷积核大小 3. 选择卷积核大小的原则 二、步长(Stride) 1. Stride的作用 三、填充(Padding) 1. 填充的作用 四、通道数&#xff…

云+AI双轮驱动,亚马逊云科技加速中国企业出海新浪潮

导读:全球化就是本地化 作者 | 小葳 图片来源 | 摄图 近年来,中国企业出海步伐不断加快,“不出海,就出局”成为很多企业的共识。 据沙利文统计,2024年上半年,超过2000家中国上市企业布局海外市场&#xff…

C语言HashTable基本理解

文章目录 一、哈希表概念1. 哈希表的基本概念2. 哈希表的核心组件2.1 哈希函数2.2 冲突处理(哈希碰撞) 3.哈希表的三种结构(1) 数组作为哈希表示例: 2. Set(集合)示例:查找数组中的重复元素1. Set 基础概念…

【缓存与数据库结合最终方案】伪从技术

实现伪从技术:基于Binlog的Following表变更监听与缓存更新 技术方案概述 要实现一个专门消费者服务作为Following表的伪从,订阅binlog并在数据变更时更新缓存,可以采用以下技术方案: 主要组件 MySQL Binlog监听:使…

《100天精通Python——基础篇 2025 第3天:变量与数据类型全面解析,掌握Python核心语法》

目录 一、Python变量的定义和使用二、Python整数类型(int)详解三、Python小数/浮点数(float)类型详解四、Python复数类型(complex)详解---了解五、Python字符串详解(包含长字符串和原始字符串)5.1 处理字符串中的引号5.2 字符串的…

【前后端分离项目】Vue+Springboot+MySQL

文章目录 1.安装 Node.js2.配置 Node.js 环境3.安装 Node.js 国内镜像4.创建 Vue 项目5.运行 Vue 项目6.访问 Vue 项目7.创建 Spring Boot 项目8.运行 Spring Boot 项目9.访问 Spring Boot 项目10.实现 Vue 与 Spring Boot 联动11.安装 axios12.编写请求13.调用函数请求接口14.…

线性代数(一些别的应该关注的点)

一、矩阵 矩阵运算:线性变换 缩放、平移、旋转 无所不能的矩阵 - 三维图形变换_哔哩哔哩_bilibili

01Redis快速入门(nosql、安装redis、客户端、命令及类型、java客户端、序列化)

Redis的常见命令和客户端使用 1.初识Redis Redis是一种键值型的NoSql数据库,这里有两个关键字: 键值型 NoSql 其中键值型,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串…

AI编程:[体验]从 0 到 1 开发一个项目的初体验

一、开发信息 开发时间:1.5-2天工具使用: 不熟练,开发本项目前1天,才简单使用了Cursor的功能 功能复杂度: 开发的功能相对简单。页面:2个,登录页面,个人中心页面功能:5个…