当前位置: 首页 > 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保姆笔记(1)——基于Java8的Jenkins安装部署

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

学习c语言第18天(字符串和内存函数)

1.函数介绍 1.1 strlen size_t(就是无符号整形) strlen(const char * str); 字符串已经\0作为结束标志,strlen函数返回的是在字符串中\0前面出现的字符个数(不包 含\0) 参数指向的字符串必须要以\0结束。 注意函数的返回值为size_t,…...

无心剑七绝《潘展乐神》

七绝潘展乐神 潘江陆海忘情游 展志凌云筑玉楼 乐创全球新纪录 神姿英发舞金钩 2024年8月1日 平水韵十一尤平韵 潘展乐神,这四个字,如同四座矗立的丰碑,分别代表了潘展乐在游泳领域的卓越成就、豪情壮志、快乐创新和非凡风采。无心剑的这首…...

Linux C++ 开发1 - 搭建C++开发环境

1. 安装GCC/GDB 1.1. 安装1.2. 校验 2. 安装CMake 2.1. 安装2.2. 校验 3. 安装IDE 3.1. VSCode3.2. CLion 1. 安装GCC/GDB 1.1. 安装 # 更新软件源 sudo apt update # 通过以下命令安装编译器和调试器 sudo apt install build-essential gdb Ubuntu 默认情况下没有提供C/C…...

吴恩达老师机器学习-ex4

梯度检测没有实现。有借鉴网上的部分 导入相关库,读取数据 因为这次的数据是mat文件,需要使用scipy库中的loadmat进行读取数据。 通过对数据类型的分析,发现是字典类型,查看该字典的键,可以发现又X,y等关…...

C语言-函数例题

函数经典例题 1、编写一个函数实现该功能&#xff1a;从键盘输入一个字串符&#xff0c; 再输入两个正整数 m 和 n, 输出字符串中从 m 开始&#xff0c; 连续 n 个字符。例如&#xff0c; 输入 abcdefg,2,3,输出 bcd. #include <stdio.h> /*作者: zcy日期:功能描述:编写…...

鸿蒙应用框架开发【多HAP】程序框架

多HAP 介绍 本示例展示多HAP开发&#xff0c;简单介绍了多HAP的使用场景&#xff0c;应用包含了一个entry HAP和两个feature HAP&#xff0c;两个feature HAP分别提供了音频和视频播放组件&#xff0c;entry中使用了音频和视频播放组件。 三个模块需要安装三个hap包&#xff…...

PG如何实现跨大版本升级

数据库进行升级&#xff0c;是一个再正常不过的功能&#xff0c;比如功能的需要&#xff0c;遇到BUG&#xff0c;安全漏洞等等&#xff0c;具体升级包含子版本升级&#xff0c;主版本升级。如果用过ORACLE的朋友&#xff0c;一定知道&#xff0c;在ORACLE中&#xff0c;如果要实…...

JDK 8 升级 17 及 springboot 2.x 升级 3.x 指南

JDK 8 升级 17 简介 从 JDK 8 升级到 JDK 17 的过程中&#xff0c;有几个主要的变化&#xff0c;特别是 Java Platform Module System (JPMS) 的引入&#xff0c;以及一些包路径的调整。以下是与 JDK 17 相关的一些重要变化&#xff1a; Java Platform Module System (JPMS) …...

基于java的人居环境整治管理系统(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝20W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…...

深入了解Pip:Python包管理器的详细指南

目录 Pip简介Pip的安装与升级Pip的基本使用 安装包卸载包列出已安装的包查看包的信息 管理依赖 使用requirements.txt冻结当前环境的包 Pip进阶用法 安装特定版本的包使用代理安装包从本地文件安装包 创建和发布Python包 创建一个Python包编写setup.py文件发布到PyPI 常见问题…...

Corsearch 用 ClickHouse 替换 MySQL 进行内容和品牌保护

本文字数&#xff1a;3357&#xff1b;估计阅读时间&#xff1a;9 分钟 作者&#xff1a;ClickHouse Team 本文在公众号【ClickHouseInc】首发 Chase Richards 自 2011 年在初创公司 Marketly 担任工程负责人&#xff0c;直到 2020 年公司被收购。他现在是品牌保护公司 Corsear…...

常见的应急救援设备有哪些_鼎跃安全

在我们的生活中&#xff0c;应急事件的发生常常是突如其来的&#xff0c;它们对人民的生命财产安全构成重大威胁&#xff0c;同时也对社会稳定提出严峻挑战。在这样的紧急情况下&#xff0c;迅速开展有效的救援工作显得尤为重要。而在整个救援过程中&#xff0c;应急设备的使用…...

Vue 项目部署后首页白屏问题排查与解决

引言 在部署 Vue.js 项目时&#xff0c;有时会遇到首页加载后出现白屏的情况&#xff0c;这可能是由于多种原因造成的。本文将介绍一些常见的排查方法和解决方案&#xff0c;帮助开发者快速定位问题并解决。 1. 常见原因分析 首页白屏的问题可能由以下几个方面的原因导致&am…...

STM32 定时器移相任意角度和占空比,频率可调

由于使用了中断修改翻转的CCR值&#xff0c;对于频率超250K以上不太适用. void Motor1_Init(Motor MotorChValue) { GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;NVIC_InitTypeDef NVIC_Ini…...

C++ 与其他编程语言区别_C++11/14/17新特性总结

C11 decltype类型推导 decltype不依赖于初始化&#xff0c;根据表达式类推导类型 auto b &#xff1a;根据右边a的初始值来推导出变量的类型&#xff0c;然后将该初始值赋给bdecltype 则是根据a表达式来推导类型&#xff0c;变量的初始值与表达式的值无关表达式类型注意点&…...

玩转云服务:Google Cloud谷歌云永久免费云服务器「白嫖」 指南

前几天&#xff0c;和大家分享了&#xff1a; 玩转云服务&#xff1a;Oracle Cloud甲骨文永久免费云服务器注册及配置指南 相信很多同学都卡在了这一步&#xff1a; 可用性域 AD-1 中配置 VM.Standard.E2.1.Micro 的容量不足。请在其他可用性域中创建实例&#xff0c;或稍后…...

用18讲必看:宇哥亲划重点内容+核心题总结

25考研结束之后&#xff0c;张宇老师的风评可能会两极分化 其中一波把张宇老师奉为考研数学之神&#xff0c;吹捧「三向解题法」天下无敌。 另外一波对张宇老师的评价负面&#xff0c;在网上黑张宇老师&#xff01; 为什么会这么说&#xff0c;因为张宇老师的新版36讲争议太…...

什么是安全生产痕迹化管理?如何做到生产过程中全程痕迹化管理?

安全生产痕迹化管理&#xff0c;简单来说&#xff0c;就是通过记录一些“信息”来确保安全工作的进展。这些方法包括记会议内容、写安全日记、拍照片、签字盖章、指纹识别、面部识别还有手机定位等。记录下来的文字、图片、数据和视频&#xff0c;就像一个个“脚印”&#xff0…...

VIsual Studio:为同一解决方案下多个项目分别指定不同的编译器

一、引言 如上图&#xff0c;我有一个解决方案【EtchDevice】&#xff0c;他包含两个&#xff08;甚至更多个&#xff09;子项目&#xff0c;分别是【DeviceRT】和【DeviceWin】&#xff0c;见名知意&#xff0c;我需要一个项目编译运行在RTOS上&#xff0c;譬如一个名叫INTime…...

Flat Ads资讯:Meta、Google、TikTok 7月产品政策速递

Flat Ads拥有全球媒介采买(MediaBuy)业务,为方便广告主及时了解大媒体最新政策,Flat Ads将整理大媒体产品更新月报,欢迎大家关注我们及时了解最新行业动向。 一、Meta 1、Reels 应用推广现可突出显示应用评分、点评和下载量 为了不断优化 Instagram 上的广告体验和广告表现,…...

嵌入式C++、ROS 、OpenCV、SLAM 算法和路径规划算法:自主导航的移动机器人流程设计(代码示例)

在当今科技迅速发展的背景下&#xff0c;嵌入式自主移动机器人以其广泛的应用前景和技术挑战吸引了越来越多的研究者和开发者。本文将详细介绍一个嵌入式自主移动机器人项目&#xff0c;涵盖其硬件与软件系统设计、代码实现及项目总结&#xff0c;并提供相关参考文献。 项目概…...

数据安全堡垒:SQL Server数据库备份验证与测试恢复全攻略

数据安全堡垒&#xff1a;SQL Server数据库备份验证与测试恢复全攻略 在数据库管理中&#xff0c;备份是确保数据安全的关键环节&#xff0c;但仅仅拥有备份是不够的&#xff0c;验证备份的有效性并能够从备份中成功恢复数据同样重要。SQL Server提供了一系列的工具和方法来执…...

嵌入式人工智能(40-基于树莓派4B的水滴传感器和火焰传感器)

虽然这两个传感器水火不容&#xff0c;我还是把他们放到一起了。本文是有线传感器的最后一个部分了。后面如果还有文章介绍有线传感器&#xff0c;也是补充学习其他内容不得已而为之。如果不是&#xff0c;就当我没说&#xff0c;哈哈。 1、水滴传感器 水滴传感器又称雨滴传感…...

EF访问PostgreSql,如何判断jsonb类型的数组是否包含某个数值

下面代码判断OpenUserIds&#xff08;long[]类型的jsonb&#xff09;字段&#xff0c;是否包含 8 basequery basequery.Where(m > Microsoft.EntityFrameworkCore.NpgsqlJsonDbFunctionsExtensions.JsonContains(EF.Functions, m.OpenUserIds, new long[] { 8 }));...

Qt 实战(8)控件 | 8.1、QComboBox

文章目录 一、QComboBox1、简介2、功能特性2.1、添加和移除项目2.2、设置和获取当前选中项2.3、模型/视图架构2.4、信号与槽 3、总结 前言&#xff1a; QComboBox 是 Qt 框架中一个非常实用的控件&#xff0c;它允许用户从一个下拉列表中选择一个项目。这个控件广泛应用于需要用…...

模拟算法概览

前言 LeetCode上的模拟算法题目主要考察通过直接模拟问题的实际操作和过程来解决问题。这类题目通常不需要高级的数据结构或复杂的算法&#xff0c;而是通过仔细的逻辑和清晰的步骤逐步解决。 适合解决的问题 模拟算法适合用来解决那些逻辑明确、步骤清晰且可以逐步执行的问…...

uniapp手写滚动选择器

文章目录 效果展示HTML/Template部分&#xff1a;JavaScript部分&#xff1a;CSS部分&#xff1a;完整代码 没有符合项目要求的选择器 就手写了一个 效果展示 实现一个时间选择器的功能&#xff0c;可以选择小时和分钟&#xff1a; HTML/Template部分&#xff1a; <picker…...

智慧医院临床检验管理系统源码(LIS),全套LIS系统源码交付,商业源码,自主版权,支持二次开发

实验室信息系统是集申请、采样、核收、计费、检验、审核、发布、质控、查询、耗材控制等检验科工作为一体的网络管理系统。它的开发和应用将加快检验科管理的统一化、网络化、标准化的进程。一体化设计&#xff0c;与其他系统无缝连接&#xff0c;全程化条码管理。支持危机值管…...

超市是怎样高效完成客流统计与客流分析

随着科技的进步&#xff0c;越来越多的超市开始采用现代化的客流统计系统来优化日常运营和提升顾客体验。本文将探讨超市客流统计面临的难题、客流统计系统的构成及其应用场景&#xff0c;以及系统如何通过高识别率和热力图分析等功能为超市带来实际效益。 一、景区客流统计难题…...

沈阳公司网站制作/足球队世界排名榜

前言 RabbitMQ六种队列模式-简单队列 [本文]RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主题模式 在官网的教程中&#xff0c;描述了如上六类工作队列模式&#xff1a; 简单队列模式&#xff1a;最简单的工…...

深圳网站建设 网站设计/西安网站维护

文章目录前言Github pageHexo工作原理每次部署的流程模板引擎--Hexo怎样生成HTML数据填充配置文件中的数据配置文件中数据的使用总结前言 在2021年初对照着攻略趟过无数坑终于通过Hexo把博客给整出来了 Hexo官网-----快速、简洁且高效的博客框架 https://hexo.io/zh-cn/ 但是在…...

网站建设和关键词优化技巧/百度客户服务电话是多少

重装系统后不能上网怎么办电脑重装系统后不能上网&#xff0c;使用网络人远程控制软件重装系统后不能上网&#xff0c;为什么会出现这种情况&#xff1f;要怎么解决&#xff1f;着重分析关于使用网络人远程控制软件重装系统后软件无法启动问题。步骤/方法系统重装后不能上网解决…...

上海网站建设专家/巢湖网站制作

35:输出二进制补码 查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述输入一个整型(int)的整数&#xff0c;输出它的32位二进制补码。 输入一个整型整数。输出输出一行&#xff0c;即该整数的补码表示。样例输入7 样例输出00000000000000000000000000000111‘ 1 #inclu…...

网站建设的市场定位分析/什么是精准营销

SpringBoot集成的Activiti6.0代码&#xff08;绘制工具界面代码 审批代码&#xff09; 最近主管需要我搭建一个基于Activiti6.0引擎的工作流平台&#xff0c;在配置好Tomcat并成功运行Activiti6.0官网所提供的war包后&#xff0c;在平台上创建了一个二级审批流程&#xff0c;…...

刚做优化的网站什么能更新/沧州网站优化公司

1.官方仓库Docker Hub docker仓库&#xff08;Repository&#xff09;是用于存放镜像的地方。官方维护了一个公共的镜像仓库&#xff08;Docker Hub&#xff09;&#xff0c;一般大部分的镜像我们可以直接从Docker Hub中进行下载。 我们可以在linux中直接使用 docker search 镜…...