jenkins自动化部署详解

一、准备相关软件

整个自动化部署的过程就是从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.mzph.cn/news/839137.shtml

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

相关文章

【iOS安全】BurpSuite iOS https抓包 | DNS Spoofing

BurpSuite 完整版安装 参考&#xff1a;Admin Team 小数智 的博客 下载 Burp Suite 2021.6 官网下载地址 https://portswigger.net/burp/releases &#xff08;下载并安装好&#xff09; jdk 使用的是11.0.10 https://www.oracle.com/java/technologies/javase-jdk11-downl…

实用css整理

网页一键变灰 body{filter: grayscale(1); } 一般用于特殊时期&#xff0c;网页变灰&#xff0c;只需要给body标签添加这行样式代码。 一键换主题色 body {filter: hue-rotate(45deg);} 给body标签设置这个属性样式&#xff0c;改变角度看看效果吧。 设置字母大小写 p {t…

麦克纳母轮(全向)移动机器人集群控制的Simulink/Simscape虚拟仿真平台搭建

麦克纳姆轮是一种常见的全向移动机构&#xff0c;可以使机器人在平面内任意方向平移&#xff0c;同时可以利用差速轮车的属性实现自转&#xff0c;能够在狭窄且复杂多变的环境中自由运行&#xff0c;因而被广泛应用于竞赛机器人和特殊工业机器人场景。 Ps:最新的BYD仰望U8也有一…

项目启动失败,【consul】

如题&#xff0c;启动时项目未能正常启动&#xff0c;但上次都一切正常&#xff0c;日志提示&#xff1a; Consul service ids must not be empty, must start with a letter 经过排查是因为consul的consulconfigservice服务假死&#xff0c;导致无法正常获取到配置文件&am…

【全开源】Java无人共享棋牌室茶室台球室系统JAVA版本支持微信小程序+微信公众号

开启智能共享新时代 一、系统源码概述&#xff1a;引领自助服务潮流 随着科技的不断发展和人们生活节奏的加快&#xff0c;自助服务已逐渐成为人们生活中的一部分。为了满足市场对无人共享棋牌室、茶室、台球室的需求&#xff0c;我们推出了全新的无人共享系统源码。这套源码…

使用决策树对金融贷款数据进行分析

使用决策树对金融贷款数据进行分析 在本篇博客中&#xff0c;我们将通过使用 Python、Pandas 和多种机器学习技术&#xff0c;对一组贷款数据进行全面分析。通过详细的步骤展示&#xff0c;你将学会如何进行数据预处理、可视化分析以及构建预测模型。 第一步&#xff1a;导入…

Windows10安装Docker Desktop - WSL update failed

按照提示更新wsl后&#xff0c;仍然会报错&#xff0c;github上没有找到解决方法。版本28、29、30都会报这个错。 经过尝试&#xff0c;将docker内的设置中&#xff0c;采用wsl禁掉即可。如下图&#xff1a;

55. UE5 RPG 处理当前功能在多人模式中的问题

在UE里面&#xff0c;我们运行项目可以设置多种网络模式&#xff0c;主要是分为三种&#xff1a; 运行Standalone 就是单人模式&#xff0c;没有网络交互以监听服务器运行&#xff0c;在界面里运行的游戏会作为服务器使用以客户端运行&#xff0c;UE会单独运行一个线程作为服务…

【Linux】套接字的理解 基于TCP协议的套接字编程(单/多进程 / 线程池|英汉互译 / C++)

文章目录 1. 前言1.1 网络方面的预备知识&#x1f447;1.2 了解TCP协议 2. 关于套接字编程2.1 什么是套接字 Socket2.2 socket 的接口函数2.3 Udp套接字编程的步骤2.4 sockaddr 结构 3. 代码实现3.1 makefile3.2 log.hpp3.3 tcp_server.hpp① 框架② service() 通信服务③ init…

记录docker ps查找指定容器的几个命令

1.docker ps | grep registry 查询包含registry的容器 2.docker ps | grep -E "reigistry\s" 开启正则匹配模式&#xff0c;匹配registry后面为空格的容器&#xff0c;若是匹配一整行可以这样写docker ps | grep -E "^([0-9a-f]{12})\sregistry\s.*" 这…

电视机顶盒哪个牌子好?618畅销电视机顶盒排行榜

电视机顶盒是我们使用最多的&#xff0c;不管看直播、动画、追剧、上网课都少不了它的存在。大促期间很多朋友问我电视机顶盒哪个牌子好&#xff0c;小编按照各平台的销量情况整理了618畅销电视机顶盒排行榜&#xff0c;看看哪些品牌的电视机顶盒是最受欢迎的吧。 TOP 1&#x…

通过扩展指令增强基于覆盖引导的模糊测试

本文由Bruno Oliveira于2024年4月25日发表于IncludeSec的官方网站上。作为IncludeSec的安全研究人员&#xff0c;在他们日常的安全审计和渗透测试工作中&#xff0c;有时需要为客户开发一些模糊测试工具。在安全评估方法中使用模糊测试技术&#xff0c;可以有效地在复杂的现代化…

【Basic】BUU LFI COURSE

文章目录 前言一、BUU LFI COURSE二、知识点PHP的危险函数路径遍历攻击 解题感悟 前言 话不多说直接看题 一、BUU LFI COURSE emmm什么提示也没给啊&#xff0c;那只能点开看一看线索了 okok咱们先分析一下这段php代码 <?php /*** Created by PhpStorm.* User: jinzhao*…

【HCIP学习】RSTP和MSTP

一、RSTP&#xff08;Rapid Spanning Tree Protocol&#xff0c;快速生成树&#xff09; 1、背景&#xff1a;RSTP从STP发展而来&#xff0c;具备STP的所有功能&#xff0c;可以兼容stp运行 2、RSTP与STP不同点 &#xff08;1&#xff09;减少端口状态 STP:disabled\blockin…

线程的概念和控制

文章目录 线程概念线程的优点线程的缺点线程异常线程用途理解虚拟地址 线程控制线程的创建线程终止线程等待线程分离封装线程库 线程概念 什么是线程&#xff1f; 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一…

2024中青杯数学建模C题:“X 疾病”在人群中的传播代码论文思路分析

2024中青杯数学建模C题论文和代码已完成&#xff0c;代码为C题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解&#xff09;、模型的评价…

c++ queue容器

在C标准库中&#xff0c;std::queue 是一个容器适配器&#xff0c;它提供了队列&#xff08;FIFO - First In First Out&#xff09;的数据结构。队列是一种特殊的线性数据结构&#xff0c;只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端…

nssctf(Web刷题)

[SWPUCTF 2021 新生赛]gift_F12 打开题目是一个时间页面&#xff0c;不过看了一会儿发现没有什么用 直接F12打开网页源代码 CtrlF搜索flag 找到了flag NSSCTF{We1c0me_t0_WLLMCTF_Th1s_1s_th3_G1ft} [第五空间 2021]签到题 NSSCTF{welcometo5space} [SWPUCTF 2021 新生赛…

钉钉算是在线办公系统的设计标杆,尽管它依然很难用

不吹不黑&#xff0c;钉钉界面谁的的确简洁&#xff0c;无奈它面向的是场景复杂的办公领域&#xff0c;导致其越来越臃肿难用&#xff0c;反正我是该研究研究&#xff0c;但绝对不会用的。 举报 评论 1

Invoking “make cmake_check_build_system“ failed

前言&#xff1a; 在看过站内其他的方法且试过之后没奏效之后&#xff0c;偶然&#xff0c;无意间&#xff0c;随手整对了&#xff0c;然后后续在老赵的文档也找到了原因&#xff0c;对的上号&#xff0c;那在此我提出一种新的方法&#xff0c;且很简单的小tips。首先先来看看…