linux 安装 Jenkins 教程

前言

Jenkins 是一个开源的自动化服务器,广泛用于持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)领域。它帮助开发者自动化软件构建、测试、部署等过程,从而提高开发效率、减少人为错误,并且保证代码质量。

1. Jenkins 的主要功能
持续集成:自动化地将代码合并到主分支,并执行自动化构建和测试。
自动化构建:从代码提交到生成构建产物(如可执行文件、Docker 镜像等),可以配置 Jenkins 自动化构建过程。
自动化测试:集成自动化单元测试、集成测试等,确保代码质量。
持续交付和部署:支持将构建产物自动部署到测试环境、生产环境或其他服务器。
插件扩展性:Jenkins 提供了大量的插件支持,可以与其他工具(如 Git、Maven、Docker、Kubernetes 等)无缝集成,满足不同需求。
2. Jenkins 的核心组件
Jenkins 主机(Master):负责调度任务、分发任务并管理工作流。
Jenkins 从机(Agent):也称为“构建节点”,执行由主机调度的构建任务。可以分布在不同的机器上进行并行构建。
3. Jenkins 构建流程
创建和配置 Job:在 Jenkins 中,一个 Job 表示一个构建过程,可以通过图形界面或配置文件定义。
触发构建:可以手动触发,也可以根据 Git 提交、定时任务、或者其他触发条件自动启动构建。
执行构建和测试:Jenkins 会在构建节点上执行任务,通常会包含代码编译、单元测试、集成测试等步骤。
报告与反馈:构建完成后,Jenkins 会提供构建报告,包括构建是否成功、测试结果、日志等信息。
4. Jenkins 常见的插件
Git Plugin:支持与 Git 仓库的集成,自动拉取最新代码并执行构建。
Maven Plugin:集成 Apache Maven 构建工具,自动化执行构建任务。
Docker Plugin:与 Docker 集成,支持构建 Docker 镜像、运行容器等操作。
Pipeline Plugin:支持通过声明式或脚本化的方式定义复杂的 CI/CD 流水线。
5. Jenkins Pipeline
Jenkins Pipeline 是一种基于代码的自动化工具,用于定义持续集成和持续交付流程。Jenkins Pipeline 允许用户通过 Jenkinsfile 来定义一系列构建步骤,这些步骤可以是自动化构建、测试、部署等。

Pipeline 分为两种类型:

Declarative Pipeline:声明式流水线,简洁易懂,适用于大多数场景。
Scripted Pipeline:脚本式流水线,提供更灵活和可定制的功能,但需要更高的脚本编写能力。
6. Jenkins 优势
易于安装和配置:Jenkins 提供了简单的图形化界面和大量插件,支持快速配置和安装。
强大的插件支持:通过插件可以将 Jenkins 与各种工具和服务集成,适应不同的开发环境。
社区活跃:Jenkins 拥有一个庞大的开源社区,提供了大量的文档、教程、插件和支持。
分布式构建:可以将 Jenkins 安装在不同的机器上进行分布式构建,提升性能和可扩展性。
7. Jenkins 的挑战
配置复杂性:随着项目规模的增大,Jenkins 配置和维护可能变得复杂。
性能瓶颈:在大型项目中,Jenkins 可能面临性能瓶颈,尤其是构建并行性和资源管理。
安全性问题:由于 Jenkins 是一个面向开发的工具,存在一定的安全隐患,需要注意访问控制和权限管理。
总结
Jenkins 是一款功能强大的自动化服务器,广泛应用于软件开发中的持续集成和持续交付。通过 Jenkins,开发团队可以更快、更可靠地交付软件,并且能够自动化地执行构建、测试和部署任务。虽然它存在一些配置和性能上的挑战,但凭借强大的插件生态和灵活的定制能力,Jenkins 仍然是 DevOps 流程中不可或缺的工具之一。

开始安装

官网:詹金斯   
Jenkins War 软件包:War Jenkins 软件包  
运行 Jenkins 系统Java 支持策略:Java 支持策略  
Jenkins入门指南:开始使用 Jenkins

一  、第一步需要安装 jdk   查看Java 支持策略 选择与Jenkins所匹配的 jdk版本。

参考我以前的文档安装jdk:linux CentOS系统安装jdk教程_centos下载jdk-CSDN博客

二、下载Jenkins War 软件包  注意要与jdk版本匹配。

 我的jdk版本是21  所以下载了jenkins.war   2.426  的版本。

 wget https://sg.mirror.servanamanaged.com/jenkins/war/2.426/jenkins.war

安装成功之后就可以直接用 java -jar 命令启动起来,可以通过 httpPort 来指定端口号

java -jar jenkins.war --httpPort=8080

然后去游览器上访问:ip地址加端口号  比如我的是 http://192.168.153.200:8080/

密码 复制到对应的地方,点击 继续。

这里建议点击 选择插件来安装,在点击 ,不安装任何插件,再点击 安装

进入到创建管理员页面,填写账户信息后,保存并完成

进入以下页面配置 jenkins 的 URL,一般使用默认的就行了,保存并完成

初始化安装完成。

开始使用 jenkins 吧。

将 Jenkins 添加 systemd 服务

1、创建 systemd 服务单元文件

sudo vim /etc/systemd/system/jenkins.service

2、在文件中输入以下内容:

[Unit]
Description=Jenkins Automation Server
After=network.target[Service]
User=root
Group=root
ExecStart=/usr/bin/java -jar /root/gao/jenkins/jenkins.war --httpPort=8080
Restart=always
Environment="JENKINS_HOME=/var/lib/jenkins"[Install]
WantedBy=multi-user.target

 

 :wq  保存退出。

3、 重新加载 systemd 配置

sudo systemctl daemon-reload

4、使用 systemd管理 systemd服务命令

#启动 Jenkins 服务
sudo systemctl start jenkins
#设置 Jenkins 在系统启动时自动启动
sudo systemctl enable jenkins
#检查 Jenkins 服务状态
sudo systemctl status jenkins
#查看 Jenkins 日志
sudo journalctl -u jenkins
#停止服务:
sudo systemctl stop jenkins
#重启服务:
sudo systemctl restart jenkins

 5、以下状态是启动成功。

6、服务需要重新加载 以下情况属于正常,耐心等待一会儿就行。

运维

如果使用systemd服务无法启动jenkins 服务。

1、查看端口是否被占用

netstat -tuln | grep 8080
#或者
ss -tuln | grep 8080

2、如果端口被占用,你可以查找占用该端口的进程 ID (PID)。执行以下命令

lsof -i :8080

3、停止占用端口的进程

kill -9 12345

4、重新启动 Jenkins

sudo systemctl start jenkins

如何更改端口号:

1、编辑启动文件

sudo vim /etc/systemd/system/jenkins.service

2、修改访问端口

3、重新加载 systemd 配置

sudo systemctl daemon-reload

4、重启systemd服务

sudo systemctl restart jenkins

5、如果服务启动成功,但是浏览器无法访问,检查防火墙状态。

sudo firewall-cmd --state

打开 8083 端口访问端口

sudo firewall-cmd --zone=public --add-port=8083/tcp --permanent
sudo firewall-cmd --reload

 就可以访问拉。

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

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

相关文章

鸿蒙高级开发者认证的主观题试题及答案

以下是一份鸿蒙高级开发者认证的主观题试题及答案示例,涵盖了鸿蒙开发中的多个关键技术和应用场景相关内容,希望对你有所帮助: 一、论述题(每题 20 分,共 60 分) 1. 阐述鸿蒙操作系统中分布式软总线的工作原理、核心优势以及在多设备协同应用开发场景下的应用方式,并举…

IdentityServer4框架、ASP.NET core Identity

OAuth2.0 IdentityServer4 官网 中文官网 ASP.NET Core Identity提供了一个用来管理和存储用户账户的框架. IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现。 IdentityServer是一个中间件,它可以添加符合OpenID…

ZZCMS2023存在跨站脚本漏洞(CNVD-2024-44822、CVE-2024-44818)

ZZCMS是一款用于搭建招商网站的CMS系统,由PHP语言开发,可快速搭建:医药招商、保健品招商、化妆品招商、农资招商、孕婴童招商、酒类副食类等招商网站。 国家信息安全漏洞共享平台于2024-11-14公布其存在跨站脚本漏洞。 漏洞编号&#xff1a…

使用Kubernetes部署MySQL+WordPress

目录 前提条件 部署MySQL和WordPress 编写yaml文件 应用yaml文件 存在问题及解决方案 创建PV(持久化卷) 创建一个PVC(持久化卷声明) 部署添加PVC 查看PV对应的主机存储 删除资源 查看资源 删除deployment和service 查看主机数据 删除PVC和PV 删除主机数据 前提条…

每日一刷——12.10——学习二叉树解题模式(二)

题目三:填充每个节点的下一个右侧节点指针1 题目描述:116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode) 我的理解: 我的感觉是同父亲还好搞一点,感觉是在遍历到每一个节点的时候,就把…

Spring Cloud Alibaba:一站式微服务解决方案

Spring Cloud Alibaba介绍 在当今的软件开发领域,微服务架构因其灵活性、可扩展性和独立性等优势而备受青睐。Spring Cloud Alibaba 作为一款强大的一站式微服务解决方案,为开发者提供了丰富的工具和组件,帮助他们轻松构建和管理复杂的微服务…

服务器数据恢复—LINUX下各文件系统删除/格式化的数据恢复可行性分析

Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs&#xff0…

vs打开unity项目 新建文件后无法自动补全

问题 第一次双击c#文件自动打开vs编辑器的时候能自动补全,再一次在unity中新建c#文件后双击打开发现vs不能自动补全了。每次都要重新打开vs编辑器才能自动补全,导致效率很低,后面发现是没有安装扩展,注意扩展和工具的区别。 解决…

网络安全-态势感知

0x00 定义: 态势感知(Situation Awareness,SA)能够检测出超过20大类的云上安全风险,包括DDoS攻击、暴力破解、Web攻击、后门木马、僵尸主机、异常行为、漏洞攻击、命令与控制等。利用大数据分析技术,态势感…

命令模式的理解和实践

在软件开发中,设计模式是开发者们经过长期实践总结出来的、可复用的解决方案,用于解决常见的设计问题。命令模式(Command Pattern)是行为型设计模式之一,它通过将一个请求封装成一个对象,从而允许用户用不同…

SpringBoot3整合SpringMVC

一、实现过程: (1).创建程序 (2).引入依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…

【优选算法篇】剥洋葱式探索:用二分查找精准定位答案(下篇)

文章目录 须知 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&#xff1…

若依集成更好用的easyexcel

背景 若依使用的是apach poi并在此基础上进行封装apach poi的原生的api是很复杂的&#xff0c;若依简化了了此操作apach poi的上传速率和下载速率都是没有优化的&#xff0c;依赖于文件大小的限制在此前提下&#xff0c;如果没法满足客户的需求&#xff08;超大型文件的上传&am…

在Ubuntu上使用docker compose安装N卡GPU的Ollama服务

在现代计算环境中,利用 GPU 进行计算加速变得越来越重要。下面将讲解如何在Ubuntu上使用docker compose安装N卡GPU的Ollama服务。 1、安装 NVIDIA 容器工具 首先,需要确保你的系统已经安装了 NVIDIA 容器工具 nvidia-container-toolkit。这是让 Docker 容器访问 GPU 的关键…

MySQL语句学习第三篇_数据库

MySQL语句学习第三篇_数据库 专栏记录MySQL的学习&#xff0c;感谢大家观看。 本章的专栏&#x1f4da;➡️MySQL语法学习 本博客前一章节指向➡️MySQL语句学习第二篇 本人的博客➡️:如烟花般绚烂却又稍纵即逝的主页 文章目录 MySQL的基础操作&#xff08;改与查&#xff0…

windows将文件推给Android真机/实机

记录一下 因为以前只试过从真机实机中将文件推给windows 但是从windows只简单复制粘贴的话会一直报错。 1.电脑安装adb 2.手机开启开发者模式 usb调试 3.usb连接选择文件传输 4.推送命令adb push 文件路径 /sdcard/download 步骤1和2和3不作赘述&#xff0c;可以搜相关配置教程…

初始化MySQL服务器时出现问题解决

这个错误信息表明在初始化MySQL服务器时出现问题。具体来说&#xff0c;错误信息提示数据目录中已经存在文件&#xff0c;导致初始化过程被中止。以下是详细的解释和解决方案&#xff1a; 错误信息解释 警告信息&#xff1a; ‘default_authentication_plugin’ is deprecate…

微信小程序uni-app+vue3实现手机号一键登录方法

微信小程序uni-appvue3实现手机号一键登录方法 网上的教程都挺乱&#xff0c;写得都不怎么全&#xff0c;我重新实现了一下&#xff0c;把具体的方法都分享出来。 uni-app/微信小程序官方API 1. uni.login uni-app提供的统一登录接口,用于获取登录凭证(code)。 语法: uni…

C语言——验证“哥德巴赫猜想”

问题描述&#xff1a; 验证"哥德巴赫猜想" 任何一个大于2的偶数都可以表示为两个质数之和。例如&#xff0c;4可以表示为22&#xff0c;6可以表示为33&#xff0c;8可以表示为35等 //验证"哥德巴赫猜想" //任何一个大于2的偶数都可以表示为两个质数之和…

利用 360 安全卫士极速版关闭电脑开机自启动软件教程

在使用电脑的过程中&#xff0c;过多的开机自启动软件会严重拖慢电脑的开机速度&#xff0c;影响我们的使用体验。本教程中简鹿办公将详细介绍如何使用 360 安全卫士极速版关闭电脑开机自启动软件&#xff0c;让您的电脑开机更加迅速流畅。 一、打开 360 安全卫士极速版 在电…