linux - 通过 Jenkins 远程执行脚本的最佳方法是什么

标签 linux ubuntu jenkins

我正在寻找通过 Jenkins 作业远程执行脚本的最佳方法。 什么更好:

  • 直接在“通过 SSH 发送文件或执行命令”选项卡上的 Jenkins“执行命令”标签上编写命令。
  • 只需复制一个 bash 文件到远程并通过 Jenkins 的“Exec Com..”标签命令执行即可。

我问这个问题的原因是因为我正在努力使用第二种方法(即执行位于远程的本地文件......)并且认为这可能不是最佳实践。

此外,我是否应该使用 sudo 执行脚本(因为以 sudo 运行会导致我在尝试克隆时出现 gitlab 问题......)。 当我执行脚本时,他要求输入密码。 到目前为止,对/etc/sudoers 添加的权限没有完成这项工作,但我想这可能是制表符/行问题...可能吗?

有什么建议吗?

最佳答案

我个人会选择 SSH 协议(protocol)方法(简单、安全和可靠)。此外,已经为您提到的那些用例制作了一些插件。

1. SSH plugin

You can use the SSH Plugin to run shell commands on a remote machine via ssh.

所以这个插件适合您通过 SSH 远程执行脚本或命令的第一个选项。

2. Publish Over SSH Plugin

The goal of the Publish Over plugins is to provide a consistent set of features and behaviors when sending build artifacts ... somewhere.

Publish over SSH 插件允许您将文件复制到远程服务器并在远程服务器上执行任意命令。所以这适合您想要先复制脚本然后执行的第二种方法。

实际上,您可以使用任何这些插件(两者都使用 SSH,因此更安全)。问题是什么最适合你。明智地选择:)

关于linux - 通过 Jenkins 远程执行脚本的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53296193/

相关文章:

linux - linux x86平台学习ARM所需工具

linux - 如何使在目录中创建的新文件权限与现有文件相同 - linux

ruby-on-rails - Ruby: "gem install bundler"未安装 bundler

linux - ffmpeg livestream by ip camera 有 DTS 问题

git - 如何仅在特定文件集发生更改时触发构建

hadoop - 通过 Jenkins 部署 Oozie 作业

php - 如何仅对分支中已更改的文件进行 lint 或静态分析?

python -/usr/bin/env : python2: No such file or directory

linux - Linux 上空间不足,将 12GB 文件复制到 15GB 文件系统

linux - 无法将文件传输到 cgi-bin 文件夹