图说jenkins pipeline处理前端项目--(3)将打包结果上传远程主机

上一篇

图说jenkins pipeline处理前端项目--(2)安装依赖与打包 - 掘金 (juejin.cn)

前置条件:让jenkins所在主机能免密登录远程主机

  1. jenkins所在主机生成ssh密钥对(生成时设置密码对文件加密),再将公钥上传到远程主机
  2. jenkins所在主机生成的ssh私钥,加入ssh-agent(目的是自动化处理时,不会被要求再次输入密码)

在jenkins所在主机执行如下命令

生成ssh密钥对

输入如下命令后,会要求你:

  1. 确认密钥对文件生成的目录(默认在~/.ssh/文件夹)

  2. 输入密钥对文件的保护密码(建议设置)

    ssh-keygen -t ed25519

此时会在~/.ssh/文件夹,生成: id_ed25519 和 id_ed25519.pub 两个文件

id_ed25519是私钥

id_ed25519.pub是公钥

将ssh私钥加入ssh-agent

启动ssh-agent

bash 复制代码
eval "$(ssh-agent -s)"

如果是新启动的ssh-agent服务(或者每次重启ssh-agent服务),里面都是没有ssh私钥的

将ssh私钥加入ssh-agent

javascript 复制代码
ssh-add ~/.ssh/id_ed25519

查看ssh-agent中所有私钥

csharp 复制代码
ssh-add -l

要删除已加载到ssh-agent中的特定私钥,可以使用ssh-add -d命令,并提供私钥的文件路径。

javascript 复制代码
ssh-add -d ~/.ssh/id_ed25519

如果你没有明确指定私钥文件路径,ssh-agent不会知道要移除哪个密钥。通常情况下,当你重启ssh-agent时,之前加载的所有密钥都会失效。

若想完全清除ssh-agent缓存并重新启动它,可以先杀掉现有的ssh-agent进程,然后重新启动 此时会让你输入一次密钥对创建时的那个密码

验证是否能免密登录远程主机

将打包结果上传远程主机

scp -r $WORKSPACE/dist root@myalpine2:/root/workspace/ 说明

$WORKSPACEjenkins内部的环境变量,表示当前job的工作目录

$WORKSPACE/dist是我要拷贝的目录

myalpine2是我远程服务器的ip,因为我用的是docker,并创建了network,所以用的是这个

root是我远程服务器的一个账号

/root/workspace/是我要拷贝到目标目录

查看远程主机是否有该文件夹

相关推荐
LinXunFeng1 小时前
Flutter 拖拉对比组件,换装图片前后对比必备
前端·flutter·开源
BD_Marathon1 小时前
【PySpark】安装测试
前端·javascript·ajax
stu_kk1 小时前
Ecology9明细表中添加操作按钮与弹窗功能技术分享
前端·oa
dkgee1 小时前
如何禁止Chrome的重新启动即可更新窗口弹窗提示
前端·chrome
天若有情6731 小时前
新闻通稿 | 软件产业迈入“智能重构”新纪元:自主进化、人机共生与责任挑战并存
服务器·前端·后端·重构·开发·资讯·新闻
香香爱编程2 小时前
electron对于图片/视频无法加载的问题
前端·javascript·vue.js·chrome·vscode·electron·npm
恋上钢琴的虫2 小时前
openEuler上安装高版本的docker
运维·docker·容器
程序猿_极客2 小时前
【期末网页设计作业】HTML+CSS+JavaScript 蜡笔小新 动漫主题网站设计与实现(附源码)
前端·javascript·css·html·课程设计·期末网页设计
zl_vslam2 小时前
SLAM中的非线性优-3D图优化之轴角在Opencv-PNP中的应用(一)
前端·人工智能·算法·计算机视觉·slam se2 非线性优化
CDwenhuohuo3 小时前
用spark-md5实现切片上传前端起node模拟上传文件大小,消耗时间
前端