Publish Over SSH插件的使用(jenkins远程服务器发送文件)

2023-11-20

Publish Over SSH(ssh插件)

用于连接ssh服务器,然后在该服务器上做一些操作。例如连接服务器,部署服务到该服务器上

1、在插件库中查找安装

28e49aa2dbd14d298b218dd1ef0e539c

2、 Manager Jenkins->系统配置->Publish over SSH

在这里插入图片描述

3、全局配置

添加服务器列表
在这里插入图片描述
注意

添加完点击Test Configuration确保服务器配置能连接成功

4、项目中如何使用

安装好插件后,上传文件到其他服务器上要选择Send files or execute commands over SSH

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahIz9MVy-1660984166715)(pluginImg/postSendFile.png)]
在这里插入图片描述
注意

  • 1、SSH Server Name

表示要连接那台服务器上传文件(在全局配置中选择已经添加的服务器列表,此处可以配置多个服务器,集群中常见较多)

  • 2、Source files

1、本机要上传的文件(选择要上传的文件,可以通配符,上传符合通配符的所有文件)
2、可以填写多个,默认用,分隔
3、路径一定要写对,是相对于你配置的项目路径下,是相对路径(如何确定?看下图)

在这里插入图片描述

  • 3、Remove prefix

去除前缀,会删除掉无用的目录,此目录指的是上传到目标服务器的路径

  • 4、Remote directory

远程目录(就是连接到该服务器、上传jar包以及其他文件到该目录下)

  • 5、Exec command上传完成之后做的操作

此处本人做了上传后,生成docker镜像、在docker中启动容器

echo "=============================="
echo "====传输完成、在新服务器中启动服务======"
echo "=============================="
#!/bin/bash
source ~/.bash_profile
source /etc/profile

containerName="jenkins-demo"
PROJECT_NAME="jenkins-demo-dockerfile"

echo "=====*****=====停止$containerName容器"
docker stop `docker ps -a| grep $containerName | awk '{print $1}' `
echo "=====*****=====删除$containerName容器"
docker rm   `docker ps -a| grep $containerName | awk '{print $1}' `

echo "=====*****=====删除$containerName镜像"
docker image rm `docker images -q --filter reference=$containerName*:*`

echo "=====*****=====删除<none>的镜像---start"
noneImages="<none>"
noneImagesId=$(docker images | grep $noneImages | awk '{print $3}')

if [ -n "$noneImagesId" ]
then
    echo "=====*****=====prepare to remove old image"
    docker rmi $noneImagesId
    echo "=====*****=====remove $noneImagesId success"
else
    echo "=====*****=====no such image"
fi
echo "=====*****=====删除<none>的镜像---end"

echo "=====*****=====进入jar包和Dockerfile目录"
cd /root/usr/local/software/javaJar/jenkins-cloud-project

# echo "=====*****=====新建dockerImg文件"
# mv target/jenkins-demo-1.1.0.jar ../jenkins-cloud-project/
# mv jenkins-demo-1.1.0.jar $containerName.jar
# rm -rf target

mkdir -vp /usr/local/software/dockerImg/$containerName/target
\cp -R ../jenkins-cloud-project/* /usr/local/software/dockerImg/jenkins-demo

cd /usr/local/software/dockerImg/$containerName

echo "=====*****=====构建镜像=====*****====="
docker build -f Dockerfile  -t $containerName .

echo "=====*****=====docker启动容器"
docker run --name $containerName -d -p 8881:8881   --network=host $containerName

数据流重定向

eg:    nohup java -jar jenkins-demo.jar >mylog.log 2>&1 &  
数据流重定向就是将某个命令执行后应该要出现在屏幕上的数据传输到其他地方

标准输入(stdin):代码为0,使用<<<;
标准输出(stdout):代码为1,使用>>>;
标准错误输出(stderr):代码为2,使用2>2>>

\> 覆盖写
\>> 追加写

5、启动日志

开启传输日志的打印
在这里插入图片描述
在这里插入图片描述

6、服务器信息

在这里插入图片描述

7、启动访问后的服务

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Publish Over SSH插件的使用(jenkins远程服务器发送文件) 的相关文章

  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • 如何禁用docker容器的root访问权限?

    我们有离岸开发人员 他们希望在本地运行我们的服务器 但出于安全原因 我们不想向他们提供服务器代码 所以一个解决方案是他们运行一个 Docker 容器 这是我们服务器的独立版本 所以他们这边没有复杂的设置 问题在于 始终可以以 root 身份
  • 将 CCtray 与 Jenkins 结合使用,同时启用安全性(使用 HTTPS)

    我将 Jenkins 服务器配置为仅使用 HTTPS 并启用安全性 我也不喜欢任何未登录的人查看仪表板 即使它是空的 在这里 我禁用了 匿名 的 读取 访问权限 到目前为止 所有这些都完全符合我的喜好 但想要通过例如向远程客户端添加一些构建
  • Apache 反向代理的基本身份验证问题

    我想为在 Ubuntu 服务器 12 04 1 上运行的 Apache 反向代理站点添加基本身份验证 网络应用程序是Jenkins http jenkins ci org运行在 Java EE 容器上 我在中添加了以下配置httpd con
  • 如何在 Jenkins 中安排构建?

    如何安排 Jenkins 构建 使其只能在每天的特定时间进行构建 例如下午 4 点开始 0 16 1 7 我理解为 每个月周一到周日下午 0 分钟 下午 4 点 但是它每分钟都会构建 如果有任何建议 我将不胜感激 谢谢 Update 请阅读
  • 使用 Jenkins API 促进构建

    给定一个具有不同升级作业的 Jenkins 构建作业 即 将构建升级到不同的环境 如何使用 Jenkins API 触发特定构建的特定升级作业 综合不同来源的答案得出 Username Username APItoken 12345 Cre
  • docker build --no-cache 是否构建不同的层?

    几个月前 我决定使用以下命令设置我的项目构建 docker 镜像的 CIno cacheflag 我认为最好不要冒险让 docker 使用旧的缓存层 我现在才意识到 我的图像各层的 sha 总是不同的 即使新构建的图像应该生成与之前构建的相
  • /var/lib/docker/中docker目录结构的作用

    当我启动一个新的 docker 守护进程时 docker 目录如下 var lib docker aufs diff layers mnt containers graph init dockerinit 0 7 3 linkgraph d
  • 我需要启用哪些权限才能使 Docker 卷正常工作?

    假设我有一个保存一些数据的 Docker 容器 我希望这些数据能够持续存在 如果容器被停止 删除 升级等 我仍然希望数据位于主机操作系统文件系统上的可访问位置 目前 我的解决方案是创建一个目录 srv service name在我的主机上
  • 在 docker 中根据更改重新启动 Flask 应用程序

    我正在使用 Flask script 来运行我的应用程序 if name main manager run 在 docker 中我有以下内容 CMD python manage py runserver h 0 0 0 0 p 5000 现
  • SSH 无法对 [email protected] 进行身份验证

    最近 我在 Github com 上注册了一个免费计划 我按照他们的说明生成 ssh 密钥以添加到我的帐户 然而 当我尝试ssh v email protected cdn cgi l email protection 我收到此错误 deb
  • docker中CREATED容器是什么意思?

    我有点困惑docker容器的状态 尤其是与状态为已创建 我知道当容器正在运行状态如下所示 root labadmin VirtualBox RAGHU DOCKER docker ps CONTAINER ID IMAGE COMMAND
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • 您可以将 Docker 映像直接拉入 IBM Cloud Kubernetes 集群吗?

    TL DR 抱歉 如果这是基础知识 我正在学习 Kubernetes 我尝试在 IBM Cloud 中创建 Kubernetes 部署 但失败了 该部署在我的本地 minikube 上运行良好 但在 IBM Cloud 中失败 我是否需要使
  • 从镜像创建 Docker 容器而不启动它

    作为我的部署策略的一部分 我使用 Upstart 管理 Docker 容器 为此 我需要从注册表中提取图像并创建一个命名容器 如建议的那样 用于运行容器的新贵脚本不会管理生命周期 https stackoverflow com questi
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • 适用于elasticsearch 7.0.1 和 kibana 7.0.1 的 docker-compose.yml

    我在 Windows 10 上将 Docker Desktop 与 Linux 容器结合使用 并希望通过 docker compose 文件启动最新版本的 elasticsearch 和 kibana 容器 使用 6 2 4 等旧版本时一切
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Docker Compose 保持容器运行

    我想使用 docker compose 启动一个服务并保持容器运行 这样我就可以通过 docker检查 获取它的IP地址 然而 容器总是在启动后立即退出 我尝试将 command sleep 60 和其他内容添加到 docker compo
  • Nginx docker容器代理传递到另一个端口

    我想在 docker 容器中运行 Nginx 它监听端口 80 并且当 url 以 word 开头时 我希望它 proxy pass 到端口 8080api 我有一些网络应用程序侦听端口 8080 这在没有 docker 的情况下对我来说一

随机推荐