java.lang.NoSuchMethodError:在[archive,bat,build,catchError,checkout,deleteDir,dir,dockerFingerprintFrom,dockerFingerprintRun,echo,emailext,emailextrecipients)中没有这样的DSL方法'publishOverSsh'找到 ,envVarsForTool,error,fileExists,getContext,git,input,isUnix,libraryResource,load,mail,milestone,node,parallel,properties,pwd,readFile,readTrusted,resolveScm,retry,script,sh,sleep,stage,stash,step ,svn,timeout,timestamps,tool,unarchive,unstash,waitUntil,withContext,withCredentials,withDockerContainer,withDockerRegistry,withDockerServer,
答案 0 :(得分:2)
我使用Jen:groovy DSL在远程机器上使用了SCP和SSH,使用Sh:shell脚本。
在此之前使用ssh-keygen
在主机和Jenkins之间创建连接以进行无密码验证。
对于没有密码的SSH登录:
1)使用ssh-keygen使用以下命令创建ssh公钥和私钥:
$ssh-keygen
2)将公钥复制到。ssh/authorized_keys
文件中的远程主机。
3)现在使用密码登录远程机器。
现在将包发布到远程服务器使用以下命令在Jenkinsfile脚本框中:
sh 'scp -r ./tests ubuntu@HOST_IP/URL:/home/ubuntu/'
//to execute commands over ssh on remote host which is written in test-script.sh file
sh 'ssh ubuntu@HOST_IP/URL < test-script.sh'
// For echo environmental variables BUILD_ID
echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"