Jenkins 拷贝文件到远程服务器

Jenkins将构建生成的程序包部署到服务器(一) 使用步骤,通过saltstack来匹配jobname,然后调用脚本,来推送,和执行一下命令,当然也可以通过推送到程序包之后直接调用服务器脚本来更新,jenkins把程序包推送到服务器的几种方法。rsync+jenkins在同一台部署。 阅读详情

这里主要是记录下怎么将文件拷贝到远程服务器上, 主要是遇到的一些坑

Jenkins 安装

这个网上有很多了, 这里就不赘述了, 可以参考如下文章:
Linux 上安装 Jenkins: https://www.jianshu.com/p/c517f09df025

安装完后还要配置必要的插件:

  • Pushlish over SSH: 用来连接远程服务器
  • maven intergration: maven 打包用的, 如果你只是为了拷贝文件不需要打包项目可以不用装
  • git: 版本控制工具, 不管是代码还是文件如果是用 git 管理的, 那这个是必不可少的插件

1. 先配置远程服务器连接

点击 Jenkins -> Manage Jenkins -> Configure System :
在这里插入图片描述
找到 Pushlish over SSH 选项, 点击新增:
在这里插入图片描述
然后填写相关信息:
在这里插入图片描述

  • Name:服务器名字,随便取
  • Hostname:服务器 IP 地址
  • Username:服务器登录用户名
  • Remote Directory:远程服务器的路径,比方说配 /root,这样 Jenkins 在拷贝文件的时候只会存在这个路径下,相当于前缀

点击上图中的 Advanced(高级)按钮,勾选 Use password authentication... 选项,在 Path to key 中填上密码:
在这里插入图片描述
然后可以点击下面的 Test Configuration 按钮测试下能不能正常连接,如果不能连接要看是不是网络问题了,可以在部署 Jenkins 的服务器上 ping 一下远程服务器的IP,或者端口没开放的话可以开放端口

2. 配置拷贝任务

首先说一下, 在 Jenkins 中, 每创建一个新的任务, 就会在 Jenkins 的工作目录中创建一个以 任务名称 命名的文件夹, 比如新建一个 demo 任务, 则在 /var/lib/jenkins/workspace目录下会多一个 demo 文件夹, 保存任务运行期间产生的文件, 如 Maven 打包的文件等, 所以我们要查找文件什么基本在这个目录, 这个很关键

创建一个新的 Jenkins 任务:
在这里插入图片描述
填上名称,这里我们选择 构建一个 maven 项目, 可以根据自己需要进行选择, 然后点击确定:
在这里插入图片描述
进来以后可以看到有很多项配置:
在这里插入图片描述
这里不一定每个都要设置, 先是 General:
在这里插入图片描述
这里主要配置任务描述和 Discard old builds(丢弃旧的构建), 数量自定义.

然后是源码管理(Source Code Management), 设置项目的 git 地址, 认证信息以及分支, 默认分支是 master:
在这里插入图片描述
然后配置 Build(构建):
在这里插入图片描述
在 Post Steps(后置动作)进行配置, 即在 Build 步骤后执行, 这里设置将文件拷贝到远程服务器:
在这里插入图片描述
在这里插入图片描述
要注意很重要的一点, 这里的 Source files, Remote directory空格里填的路径都是相对路径, 不能填绝对路径:

  • Source files:从当前任务的文件夹开始,在当前的 demo 任务中,所以它默认的前缀是 /var/lib/jenkins/workspace/demo/,所以Jenkins在查找要拷贝文件的时候是从这个路径下去找,如果最后执行这个 demo 任务的时候发现没有拷贝文件就有可能是路径配错了
  • Remote directory:这个路径是相对于我们第一步配置 SSH Server 里的 Remote directory 路径,刚刚我们配置的是远程服务器的根目录 / ,所以拼接上我们配置的 root/demo 就是 /root/demo, 文件将被放在这里。

关于 Exec command , 拷贝文件后执行的指令, 这个可以自己定义, 我这里是执行了我提前写好的一个 shell 脚本, 用来专门重启 tomcat 服务的

其他没有要设置的, 点击保存完成配置。

3. 执行任务

一保存完会跳转到下面的页面:
在这里插入图片描述
点击执行任务后在地下的 Build History 里可以看到构建记录和进度:
在这里插入图片描述
点击进度条上面的日期和时间, 进入构建记录详情:
在这里插入图片描述
任务执行完以后可以看到有传输了一个文件到远程服务器, 这样就说明文件已经拷贝到远程服务器上了:
在这里插入图片描述

如果出现 SSH: Transferred 0 file(s) 说明没有传输任何文件, 那很可能是在 Post Steps 步骤中参数 Source files 没有配置对, 记得一定是相对路径, 可以先去Jenkins的那个目录下看下文件是不是真的有在, 路径有没有错

最后,如果有遇到什么问题可以在下方评论,一起讨论交流哈

Publish Over SSH插件的使用(jenkins远程服务器发送文件) Publish Over SSH(ssh插件) jenkins远程服务器发送文件,执行脚本 阅读详情

相关推荐

jenkins-构建命令行

scp:/opt/html/ids-admin:No such files err directory错误 之前的jenkins构建: #npm update caniuse-lite browserslist chmod 777 /root/.jenkins/workspace/PRE-ids-admin/node_modules/.bin/* npm rebuild node-sass #np...

qq_35125764的博客 1752

jenkins之传送文件到远程主机

jenkins传送远程文件

xiaoying81022的专栏 4185

Jenkins 执行远程shell :Send files or execute commands over SSH

Jenkins构建(8):Jenkins 执行远程shell :Send files or execute commands over SSH

fen_fen的专栏 1万+

jenkins发布文件到远程服务器

jenkins:安装,配置,部署全都有,支持远程部署

钢铁之家 2286

结合 Conda 手动安装 RepeatMasker

RepeatMasker 是一个广泛使用的生物信息学工具,用于识别和屏蔽(mask)基因组序列中的 重复序列(repeats) 。在使用过程中需要调用重复序列数据库(Repbase 和 Dfam),如果使用Conda安装的话会出现许多问题,因此推荐手动安装。在此记录我手动安装RepeatMasker的流程,希望对各位同学有所帮助。

m0_65437087的博客 2527

STM32学习笔记 二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发

系列文章目录 一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁 文章目录系列文章目录前言一、配置CubeMX二、逻辑代码部分 前言 这次我用的板子是一个用STM32F103C8T6作为主控芯片的一个数据采集卡,两个LED灯连接的引脚是PB3与PB4,TX与RX引脚分别是PA9和PA10。 一、配置CubeMX 1、新建工程; 2、配置时钟源,在RCC里面的HSE配置的是晶振时钟; 3、配置程序烧录引脚SYS为SWD模式; 4、配置GPIO口,配置一个LE

遗忘丶的博客 1万+

Jenkins拉取代码推送至远程服务器执行测试

Jenkins拉取Git代码推送至远程服务器执行测试

寅月星回的博客 3246

解决pd.read_json报错ValueError: Trailing data问题

首先,我们使用open函数打开JSON文件,然后使用json.load函数将JSON文件数据解码为Python对象。在使用Python进行数据处理中,我们经常需要将JSON格式的数据读入到DataFrame中进行处理。而使用pandas库的read_json函数,就可以方便地将JSON数据读入到DataFrame中。但是有时候在读取JSON数据时,会遇到一个非常常见的错误:ValueError: Trailing data。这个错误的解决方案并不难,只需要在read_json中添加一个参数即可。

学习使你进步。 2228

jenkins scp拷贝免密

jenkins scp 免密

Dead_Cicle 1237

【Mode Management】AUTOSAR架构下RH850-F1KM芯片深度休眠配置实践

AUTOSAR架构下RH850-F1KM芯片深度休眠配置实践

qq_36056498的博客 1073

YOLOv11来了,使用YOLOv11训练自己的数据集和推理(附YOLOv11网络结构图)

YOLOv11 由 Ultralytics 在 2024 年 9 月 30 日发布, 最新的 YOLOv11 模型在之前的 YOLO 版本引入了新功能和改进,以进一步提高性能和灵活性。YOLO11 在快速、准确且易于使用,使其成为各种对象检测和跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 28万+

jenkins配置

选择Manager Jenkins选择Configure System,进入页面一直拉到底Remote Directory:是你需要从jenkins服务拷贝到远程应用服务指定的目录高级:可以配置ssh密码。

以爱护甲,爱满枫林。 2397

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4587

Jenkins之安装使用

每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。还可以从打印日志的最后看到这次打包用时 2 min 33 秒,任务的执行状态为 Finished Success。上面的配置完成后,我们就可以测试下是否可以将代码仓库中的某个分支的代码拉取下来进行打包。时,我们必须创建一个任务才行,然后这个任务里面可以配置要执行的各种操作。执行远程服务器上的脚本,则需要先在远程服务器上创建一个可执行的脚本。仓库拉取指定分支的代码,然后运行。

上善若泪 1937

Autosar EcuM配置-初始化及下电执行函数-基于ETAS软件

Autosar EcuM学习笔记-上电初始化执行函数及下电前执行函数,本文介绍在EcuM中的配置及使用。

赞的博客 843

PyTorch实战(7)——循环神经网络

本节介绍了循环神经网络 (RNN) 及其在序列数据处理中的应用。首先对比了卷积神经网络 (CNN) 与 RNN 的差异,指出 RNN 通过循环连接建模时序依赖关系。随后详细梳理了 RNN 的发展历程,包括基础 RNN、双向 RNN、LSTM、GRU 等变体的结构特点及改进动机,其中 LSTM 通过门控机制解决长程依赖问题,GRU 则进一步简化结构。接着通过 IMDb 情感分析实战,演示了如何使用 PyTorch 实现文本预处理、RNN 模型构建及训练评估流程,最后探讨了注意力机制如何提升 RNN 性能。

盼小辉丶的博客 1万+

ansible+jenkins部署新服务器

方案 1、上传安装需要的配置文件和docker-compose到git 2、jenkins以应用为维度创建job 3、构建开始时git pull,jenkins调用shell脚本为每个新的服务器创建ansible inventory,将该服务器的ip和passwd写进去; 4、根据不同的应用,jenkins将不同的配置文件拷贝到远端服务器 ...

qq_28686911的博客 9万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

每日一学(云部署 Jenkins、Linux)

云部署 Jenkins、Linux

荣山的博客 771

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jenkins推送脚本 优化版

#!/bin/bash # Source function library. . /etc/init.d/functions # 定义分割线 separator(){ for ((i=1;i<=100;i++)) do echo -n "=" done echo -e } separator # 定义后端服务器列表 group_l...

alliswell95的博客 289

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Docker自定义Tomcat,实现远程部署项目和管理

Dockfile自定义Tomcat镜像 1. 拷贝官方镜像中的配置文件出来 # 运行官方镜像,为了得到官方配置文件tomcat_user.xml和server.xml docker run -itd --restart=always --name=tomcat8 \ -v tomcat_webapps:/usr/local/tomcat/web...

weixin_34082854的博客 169

jekins的安装使用

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行(持续集成)

m0_69521840的博客 803

Jenkins 通过ssh 拷贝文件到远程机器上。

想实现的目的是: 在构建之前,从jenkins master上拷贝脚本到需要运行的机器上(linux ssh)。 本来是通过publish over ssh 的transfer set可以直接设置,但是种种原因,莫名原因都不能如愿。现直接通过执行scp命令手动拷贝。 Source file= /var/lib/jenkins/jobs/InstallBDM_ES/workspac...

aiduohao2755的博客 1509

Ubunt远程登录 【SSH】与 远程拷贝文件【SCP】

远程登录和复制文件 序号 命令 对应英文 作用 01 ssh 用户名@ip secure shell 关机/重新启动 02 scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 secure copy 远程复制文件 3.1 ssh 基础(重点) 在 Linux 中 SSH 是 非常常用 的工具,通过 SSH 客户端 我们可以连接到运行了 SSH 服务器 的远程机器...

帅boy的博客 2006

jenkins执行远程服务器部署

1、安装插件 publish over ssh(自行安装)   2、到系统配置添加远程服务器信息: 例,在233(jenkins)上添加10.167.41.201服务器的免密登录 如201上已经有jenkins用户,同时密码或者密钥正确,则添加成功;   如果没有添加jenkins用户,这里设置的密码是其他账户,则会看到以下错误:     3、去201上设置jenki...

paradise003的专栏 3868

远程服务器上jenkins更新,Jenkins上传文件至远程服务器

整体思路:step 1.安装好jenkins服务,然后安装文件传输必备的插件,之后在jenkins的“Configure System”中配置服务节点。step?2.目标服务器(文件要传输到的那个服务器)上搭建好sftp或ftp服务器。step?3.jenkins创建项目。所需工具:(1)jenkins(2)jenkins插件:Publish Over SSH(3)freeSSHd(安装在目标服务...

weixin_39842682的博客 1462

Jenkins部署到远程服务器并备份包文件

前言     Jenkins自动构建后发送到远程服务器,执行shell文件,和shell脚本。shell中实现程序自动部署和安装包版本备份。 前提条件 一台远程服务器比如10.10.10.100,已经设置好SSH免密访问。一台装有Jenkins项目服务器。 配置操作 sh文件内容: echo 'start.........................' project_pa...

xuqiang918的专栏 2706
上一篇: Linux常用指令学习笔记
下一篇: 可道云只能上传不能下载文件, 提示upload_err_no_tmp_dir
ItKnow
博客等级 码龄10年 46粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值