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.rhkb.cn/news/329320.html

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

相关文章

Default Folder X for Mac v6.0.7激活版:高效、智能的文件管理新选择

在快节奏的工作与生活中&#xff0c;高效管理文件已成为每个Mac用户的迫切需求。Default Folder X for Mac正是为了满足这一需求而生&#xff0c;它以其卓越的性能和丰富的功能&#xff0c;为Mac用户带来了前所未有的文件管理体验。 Default Folder X for Mac拥有直观易用的界面…

数据链路层简单介绍

mac地址&#xff08;物理地址&#xff09; mac地址和ip地址&#xff0c;目的都是为了区分网络上的不同设备的&#xff0c;在最开始的时候&#xff0c;mac地址和ip地址是两伙人&#xff0c;独立各自提出的&#xff0c;ip地址是4个字节&#xff08;早都不够用了&#xff09;&…

BOM..

区别&#xff1a;

【vue-3】动态属性绑定v-bind

1、文本动态绑定&#xff1a; <input type"text" v-bind:value"web.url"> 简写&#xff1a; <input type"text" :value"web.url"> 2、文字样式动态绑定 <b :class"{textColor:web.fontStatus}">vue学…

ICRA 2024: NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院等研究人员开发了精细操作的手术机器人

英伟达&#xff08;NVIDIA&#xff09;正与学术研究人员合作&#xff0c;研究手术机器人。 NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院和佐治亚理工学院的研究人员开发了 ORBIT-Surgical&#xff0c;一个训练机器人的模拟框架&#xff0c;可以提高手术团…

《QT实用小工具·六十五》基于QPropertyAnimation实现的移动动画和控件覆盖

1、概述 源码放在文章末尾 该项目基于QPropertyAnimation实现了控件平移动画和控件之间的相互覆盖效果&#xff0c;项目demo演示如下所示&#xff1a; 项目解析&#xff1a; new QPropertyAnimation(ui.SingleOcclusion, “pos”); //创建动画对象&#xff0c;第一个参数传…

使用Xterm实现终端构建

————html篇———— // 需要使用Xterm Xterm的官网&#xff1a; Xterm.js 新建项目 增加基本文件 下载 框架 npm init -y Xterm依赖 npm install xterm/xterm 参考文档写的代码 贴入代码 <html><head><link rel"stylesheet" href"nod…

2024 Google I/O - 提前窥探 Android 15 的新功能与适配

今年年初就简单介绍过 Android 15 预览版 的相关内容&#xff0c;而昨天 Google I/O 宣布了 Android 15 Beta2&#xff0c;作为第二个 Beta 版本 &#xff0c;它已经基本接近它未来的样子&#xff0c;毕竟下个版本就是 Platform Stability 了&#xff0c;所以让我们提前来一睹 …

APH-Archives of Public Health

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 Archives of Public Health是一份范围广泛的公共卫生杂志&#xff0c;致力于出版公共卫生领域所有可靠的科学。该杂志旨在更好地了解人群的健康。该杂志有助于公共卫生知识&#xff0c;加…

IP学习——ospf1

OSPF:开放式最短路径优先协议 无类别IGP协议&#xff1a;链路状态型。基于 LSA收敛&#xff0c;故更新量较大&#xff0c;为在中大型网络正常工作&#xff0c;需要进行结构化的部署---区域划分、ip地址规划 支持等开销负载均衡 组播更新 ---224.0.0.5 224.0.0.6 …

ChatGPT-4o 实战 如何快速分析混淆加密和webpack打包的源码

ChatGPT-4o 几个特点 一个对话拥有长时间的记忆&#xff0c;可以连续上传文件&#xff0c;让其分析&#xff0c;最大一个代码文件只能3M&#xff0c;超出3M的文件&#xff0c;可以通过split-file可以进行拆分 其次ChatGPT-4o可以生成文件的下载链接&#xff0c;这有利于大文件的…

基于springboot+vue的学生考勤管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Spring 框架的具体下载步骤

Spring 框架下载网址&#xff1a;JFrog 1.访问 Spring 官网 https://spring.io/ 2.在官网首页点击“Projects”进入项目页面。在项目页面找到“Spring Framework”并点击。 3.点击Spring Framework页面上的GitHub图标&#xff0c;进入GitHub仓库。 4.在GitHub仓库页面&…

简述MyBatis中#{}引用和${}引用的区别

各位大佬光临寒舍&#xff0c;希望各位能赏脸给个三连&#xff0c;谢谢各位大佬了&#xff01;&#xff01;&#xff01; 目录 1.有无预编译 优点 缺点 2.SQL执行的快慢 3.能否被SQL注入 4.参数输入方式 5.总结 1.有无预编译 #{}是有预编译的而${}是没有预编译的&…

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

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

计算机网络之传输层知识点总结

5.1 传输层 &#xff08;1&#xff09;传输层介绍 &#xff08;2&#xff09;传输层的两个协议 &#xff08;3&#xff09;传输层的寻址与端口 5.2 UDP协议 &#xff08;1&#xff09;用户数据报协议UDP介绍 &#xff08;2&#xff09;UDP首部格式 &#xff08;3)UDP校验 …

一顿五元钱的午餐

在郑州喧嚣的城市一隅&#xff0c;藏着一段鲜为人知的真实的故事。 故事的主角是一位年过半百的父亲&#xff0c;一位平凡而又伟大的劳动者。岁月在他脸上刻下了深深的痕迹&#xff0c;但他眼神中闪烁着不屈与坚韧。 他今年52岁&#xff0c;为了给远在家乡的孩子们一个更好的…

面试准备-项目【面试准备】

面试准备-项目【面试准备】 前言面试准备自我介绍&#xff1a;项目介绍&#xff1a; 论坛项目功能总结简介数据库表设计注册功能登录功能显示登录信息功能发布帖子评论私信点赞功能关注功能通知搜索网站数据统计热帖排行缓存 论坛项目技术总结Http的无状态cookie和session的区别…

汇编小习题

彩笔好笨啊&#xff0c;知道原理还能写错。 1. 注释下面代码 Title Simple Add .386 ;使用80386指令集 .model flat, stdcall;内存模型为平坦模型&#xff0c;子程序采用stdcall约定 .stack 4096;为运行时堆栈分配4096空间 ExitProcess proto , dwExitCode:DWORD;为过程创建过…

从零开始搭建SpringCloud Alibaba微服务架构

Spring Cloud Alibaba是Spring Cloud的一个拓展项目&#xff0c;它用于构建基于阿里巴巴的微服务应用。它提供了多个阿里巴巴的开源组件&#xff0c;如Nacos、Sentinel、Dubbo等&#xff0c;用于解决微服务架构中的服务注册、配置管理、流量控制等问题。 Spring Cloud Alibaba…