如何从 Jenkins 服务在另一台服务器上执行 运行 shell 命令?

How can I run shell commands on another server from Jenkins service?

我有一个带有 pm2 的节点项目我想在 Jenkins 上创建一个 shell 脚本来触发构建 我看了很多教程,但我似乎找不到解决问题的好方法。

这是我试过的方法

ssh   -tt -i privKey username@ip/backend 
npm install
node server.js

这是我需要做的

1.Connect to the server
2.Run npm install
3.Reload pm2.json

但是 shell 脚本无法连接到服务器和 运行 脚本

 ssh -o StrictHostKeyChecking=no -tt -i privKey username@ip  <<EOF       
     cd backend
     npm install
     node server.js
     pm2 reload pm2.json
     echo 'Process completed successfully.'
     exit      
    EOF
  1. 有时通过ssh隧道连接时,改变目录可以 导致权限访问问题,所以首先连接到服务器比 更改目录。
  2. StrictHostKeyChecking=no:选项 StrictHostKeyChecking 指定 ssh 是否自动将新的主机密钥添加到 $HOME/.ssh/known_hosts 文件,或者从不自动添加主机文件的新主机密钥。此选项设置为“是”时,可提供针对特洛伊木马攻击的最大保护。
  3. < - 行尾,用于多行 shell 命令。
  4. cd 后端 - 连接到服务器后将目录更改为后端。
  5. echo: 打印一个字符串以了解此过程何时完成。
  6. exit: 退出服务器 shell