如何从 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
- 有时通过ssh隧道连接时,改变目录可以
导致权限访问问题,所以首先连接到服务器比
更改目录。
- StrictHostKeyChecking=no:选项 StrictHostKeyChecking 指定 ssh 是否自动将新的主机密钥添加到 $HOME/.ssh/known_hosts 文件,或者从不自动添加主机文件的新主机密钥。此选项设置为“是”时,可提供针对特洛伊木马攻击的最大保护。
- <
- 行尾,用于多行 shell 命令。
- cd 后端 - 连接到服务器后将目录更改为后端。
- echo: 打印一个字符串以了解此过程何时完成。
- exit: 退出服务器 shell
我有一个带有 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
- 有时通过ssh隧道连接时,改变目录可以 导致权限访问问题,所以首先连接到服务器比 更改目录。
- StrictHostKeyChecking=no:选项 StrictHostKeyChecking 指定 ssh 是否自动将新的主机密钥添加到 $HOME/.ssh/known_hosts 文件,或者从不自动添加主机文件的新主机密钥。此选项设置为“是”时,可提供针对特洛伊木马攻击的最大保护。
- <
- 行尾,用于多行 shell 命令。 - cd 后端 - 连接到服务器后将目录更改为后端。
- echo: 打印一个字符串以了解此过程何时完成。
- exit: 退出服务器 shell