jenkins自动化部署详解

news2024/11/17 13:50:54

一、准备相关软件

整个自动化部署的过程就是从git仓库拉取最新代码,然后使用maven进行构建代码,构建包构建好了之后,通过ssh发送到发布服务的linux服务器的目录,最后在此服务器上执行相关的linux命令进行发布。

此篇文章jenkins的版本是2.440.3, git是1.8.3.1,maven是3.6.3,jdk版本用的是17和8。jenkins.war运行需要用到高版本jdk17,maven用的是jdk8。

1.1 git

centos系统可以yum安装 

1.2 maven

开发、测试、生产所有的环境版本要保持一致,到国内镜像或官网下载zip版本,使用时直接解压,配环境变量

1.3 jenkins

war包方式运行,不同版本的jenkins对应的java版本是不同的,参考官网说明。比如2.440.3版本,java17以上版本可以运行,java8不可以运行。命令参考如下:

 nohup /home/app/jdk-17/bin/java -jar /home/app/jenkins.war --httpPort=8100 > /home/app/logs/jenkins.log 2>&1 &

二、Manage Jenkins/全局配置

2.1 用户名密码

开始就会让你创建admin用户,修改密码的话可以通过右上角“账户->设置->Password”,输两遍密码即可

2.2 系统配置

Jenkins主目录,服务地址,Gitee配置(Gitee Api令牌)。ssh服务器(ip,账户密码,默认的基准目录,建议配置为根路径/,否则任务地方配置的远程目录就有问题了)

Jenkins主目录

jenkins服务地址

Gitee配置(Gitee Api令牌)

SSH服务器配置

2.3 工具配置

jdk(解压目录),maven(settings目录,解压目录),git(可执行的命令终端的目录)
插件配置:git、maven、ssh发布相关的插件

maven的settings配置

jdk配置,可以配置多个

git可执行终端的位置

maven安装目录

2.4 插件下载

核心插件:

  • Git Plugin: 用于从Git仓库拉取代码。这个插件允许Jenkins与Git版本控制系统交互,执行代码检出等操作。
  • Git Parameter : 如果你的构建需要根据不同的Git分支或其他Git参数动态变化,这个插件可以让你在构建触发时选择Git参数。
  • Maven Integration plugin: 这个插件允许Jenkins识别和执行Maven构建任务。它使得Jenkins能够基于Maven的POM.xml文件自动构建Java项目。
  • Publish Over SSH: 如果你的自动化部署流程包括通过SSH将文件传输到远程服务器或在远程服务器上执行命令,这个插件就非常关键。它支持通过SSH安全地上传文件和执行命令。

其他插件:

  • Gitee Plugin: 专门用于与Gitee(码云)平台集成,支持WebHook触发、代码自动检出及构建状态反馈等功能。
  • GitLab Plugin: 允许Jenkins与GitLab进行集成,支持WebHook触发构建、代码同步等功能。
  • GitHub Plugin: 基础插件,用于与GitHub进行基本的集成,如WebHook触发、认证管理等。

三、新建item/任务配置

3.1 git

设置git代码库地址,账号,分支

3.2 Send build artifacts over SSH

即ssh发送构建包到服务器

3.2.1 Source files

构建软件包的源目录Source files(对应"<jenkins_home>/workspace/<job>/"后面的目录)

3.2.2 Remove prefix

Source files中除了构建包包名以外的前缀部分

3.2.3 Remote directory

目标目录(远程服务器存放构建包目录),

3.2.4 Exec command

上传构建包以后要执行的命令,命令多的话,建议放在shell脚本中执行shell就行,如:sh /home/app/scripts/start.sh
Exec command注意点如下:
1)打开执行命令的日志:即Verbose output in console选项打勾,否则你无法知道命令的执行情况,无法更好地排查问题。
2)shell脚本最好在linux上修改,如果是windows的脚本到linux上执行需要额外处理,在非insert模式下输入:set fileformat=unix。因为windows换行是\r\n,而linux的换行是\n。
3)Exec in pty选项有可能影响命令执行,可考虑勾选
4)shell脚本中涉及到的程序构建包和目录,必须要有执行权限。可通过chmod +x命令来
5)shell脚本开头加上这两行,否则有可能找不到shell执行终端和环境变量
#!/bin/bash
source /etc/profile
6)shell脚本结尾加上这行,执行睡眠,否则nohup无法执行成功
sleep 10s

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

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

相关文章

优思学院|六西格玛在人力资源管理(HR)的应用指南

有效的HR流程管理对于组织的成功至关重要。然而&#xff0c;许多组织在HR效率方面存在困难&#xff0c;导致员工流动率高、工作放弃率高、生产力低下、缺勤率高以及盈利能力下降。 六西格玛方法论可以用来识别改进领域并实施变革&#xff0c;从而使HR功能更加高效和有效。 这…

监控上网的软件有哪些?含泪推荐的电脑监控软件

监控上网的软件有很多&#xff0c;企业选择的时候应该遵循什么样的原则呢&#xff1f;鄙人愚见&#xff0c;认为以下四项原则是选择监控软件时首要考虑的。 1、功能需求&#xff1a; 监控软件不应该只是起到控制上网的作用&#xff0c;因为一些泄密行为可能是通过USB接口、打印…

TI C2000 FLASH 模拟 EEPROM

简述 FLASH和EEPROM同为非易失存储器,互有优势。 FLASH Flash是非易失性存储器(NVM)的一种形式。相对于EEPROM,Flash具有更高的存储密度和更快的写入速度。Flash内部被分为多个扇区,每个扇区都可以单独擦除和写入。但是寿命相比EEPROM较短,以TI芯片为例,flash擦写次数在…

Linux下的权限

目录 1.shell命令以及运行原理 1.1原理上初步理解shell外壳 1.1.1为什么要有shell外壳 1.1.2shell外壳是什么 1.1.3怎么办&#xff08;shell外壳的基本运行原理&#xff09; 2.Linux下的用户 3.Linux权限管理 3.1.文件访问者的分类&#xff08;人&#xff09; 3.2…

社交媒体数据恢复:LinkdIn

在我们的日常工作中&#xff0c;数据丢失是一个非常棘手的问题。但是&#xff0c;如果你懂得如何进行数据恢复&#xff0c;那么这个问题就不再那么可怕了。本文将为您提供一份详细的LinkedIn数据恢复教程&#xff0c;帮助您找回丢失的数据。 首先&#xff0c;我们需要了解为什…

谷粒商城环境准备~下 docker版

10. 配置中心 1&#xff09;修改“gulimall-coupon”模块 添加pom依赖&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>创建bootstr…

C++设计模式---面向对象原则

面向对象设计原则 原则的目的&#xff1a;高内聚&#xff0c;低耦合 1. 单一职责原则 类的职责单一&#xff0c;对外只提供一种功能&#xff0c;而引起类变化的原因都应该只有一个。 2. 开闭原则 对扩展开放&#xff0c;对修改关闭&#xff1b;增加功能是通过增加代码来实现的&…

10G SFP双口万兆以太网控制器,高速光口网络接口卡

2-Port 10G SFP NIC 是一款高速网 络接口卡&#xff0c;采用了 PCI Express 3.0 x8 接口&#xff0c;支持双 端口万兆以太网&#xff0c;具有高性能、高可靠性、低功耗等 优点&#xff0c;是数据中心、云计算、虚拟化等领域的理想选 择。 支持多种网络协议&#xff0c;如 …

不懂平面设计,这篇文章教你制作商业画册

​商业画册不仅是企业展示形象、推广产品的重要工具&#xff0c;也是设计师展现创意的平台。因此&#xff0c;制作一本高质量的画册对于企业来说至关重要。 那要怎么着手制作呢&#xff1f;以下是关于制作商业画册的步骤。 1.要制作电子杂志,首先需要选择一款适合自己的软件。…

从失败开始浅谈如何交易现货白银

投资者进入现货白银市场&#xff0c;可以说目的就是在这个市场中盈利&#xff0c;只有极少数朋友是想在这个市场中冒险&#xff0c;体验一下资金盈亏所带来的刺激。然而&#xff0c;投资者在交易现货白银的时候&#xff0c;由于一心想获利&#xff0c;因此他们很怕谈失败&#…

Python学习---基于进程池的文件夹copy器案例

# 思路&#xff1a; # 1、定义变量&#xff0c;保存源文件和目标文件夹的路径 # 2、在目标路径创建新的文件夹 # 3、获取源文件夹中的所有文件&#xff08;列表&#xff09; # 4、遍历列表得到所有文件名 # 5、定义函数进行文件拷贝 # 文件拷贝函数&#xff1a; # 参数&#xf…

基于manifest文件批量将coding的仓库导入gitlab中

文章目录 写在前面的话背景编写manifest文件最终效果 写在前面的话 前面有讲过通过manifest清单导入项目到gitlab中&#xff0c;但是实际的操作是不同gitlab实例之间的操作&#xff0c;然而对于在不同gitlab实例的repo迁移而言&#xff0c;显然direct transfer会更合适。 背景…

房地产画册制作成手机在线翻页效果

​随着科技的飞速发展&#xff0c;移动互联网已经深入到人们的日常生活中。在这个数字化的时代&#xff0c;房地产行业也紧跟潮流&#xff0c;将画册制作成手机在线翻页效果&#xff0c;以满足消费者的阅读习惯。 房地产画册制作成手机在线翻页效果&#xff0c;不仅能够满足消费…

Win10【无线显示器】安装失败(无法添加)解决中。。。

目录 ■失败现象 ■解决方法 【服务启动1】 【服务确认】 【服务启动2】 参考 ■查看电脑是否支持【Miracast无线投屏功能】 参考2 ■解决方法&#xff08;对我的这台电脑有效&#xff09; ■解决后的效果 ■连接时&#xff0c;出现【无法在此设备上查看受保护内容。…

时空扭曲:重温相对论的终极挑战,探寻真理的脚步

大家都知道&#xff0c;相对论是爱因斯坦提出的划时代理论&#xff0c;为人类认知时空和引力做出了革命性贡献。但这个理论真的万无一失吗&#xff1f;近日&#xff0c;一项新研究提出了测试时间扭曲的新方法&#xff0c;或许能让我们重新审视相对论在宇宙大尺度上的适用性。 时…

安卓高级控件(下拉框、列表类视图、翻页类视图、碎片Fragment)

下拉框 此小节介绍下拉框的用法以及适配器的基本概念&#xff0c;结合对下拉框Spinner的使用说明分别阐述数组适配器ArrayAdapter、简单适配器SimpleAdapter的具体用法与展示效果。 下拉框控件Spinner Spinner是下拉框控件&#xff0c;它用于从一串列表中选择某项&#xff0…

时代终结,微软宣布淘汰VBScript;Flink漏洞被广泛利用;Grandoreiro银行木马强势回归,1500多家银行成攻击目标 | 安全周报0524

揭秘SolarMarker恶意软件&#xff1a;多层次基础设施让清除工作陷入困境 Recorded Future的新发现表明&#xff0c;SolarMarker信息窃取恶意软件背后的持续威胁行为者已经建立了一个多层次的基础设施&#xff0c;以使执法部门的清除工作变得复杂。 该公司在上周发布的一份报告…

三菱机械手维修控制器故障

在工业自动化领域&#xff0c;三菱工业机器人凭借其高性能、高可靠性和易用性&#xff0c;受到了广泛应用。然而&#xff0c;随着时间的推移&#xff0c;可能会出现MITSUBISH工业机械臂控制器故障&#xff0c;需要进行三菱机械手维修。 一、MITSUBISH机械手控制器故障诊断 在进…

如何基于springboot构建cas最新版源码?

环境准备 下载JDK21 https://download.oracle.com/java/21/archive/jdk-21.0.2_windows-x64_bin.zip下载gradle 8.5并配置环境变量 https://gradle.org/next-steps/?version8.5&formatbin下载项目git clone http://gitlab.ruishan.cc/meta/anka-authentication.git 开始…