我有下面我试图由 Jenkins 执行的 ssh 脚本,当我从 shell 调用它时它运行良好。
#ssh to remote machine
sshpass ssh 10.40.94.36 -l root -o StrictHostKeyChecking=no
#Remove old slave.jar
rm -f slave.jar
#download slave.jar to that machine
wget http://10.40.95.14:8080/jnlpJars/slave.jar
pwd
#make new dir to that machine
mkdir //var//Jenkins
# make slave online
java -jar slave.jar -jnlpUrl http://10.40.95.14:8080/computer/nodeV/slave-agent.jnlp
当我通过 shell 执行此脚本时,它会将 jar 文件下载到远程机器并创建一个新目录。但是当我通过 jenkins 的 shell 插件调用它时,每个命令都是单独运行的。所以jar在master上下载,并且在master上创建目录。
此外,我正在使用 sshpass 进行无密码自动登录,但有时会失败。有没有其他方法可以做到这一点。