이 명령을 사용하여 jenkins 스크립트 파이프라인의 원격 서버에서 쉘 스크립트를 실행하려고 합니다 sshScript remote: remote, script:
. 이 코드 줄은 현재 다음과 같습니다.
sshScript remote: remote, script: './bash.sh' "$env.gitTag" "$env.Version"
그러나 계속해서 매개변수가 비어 있다고 말하고 오류가 발생합니다. 모든 것을 시도했지만 답을 찾을 수 없습니다. 매개변수를 던지기 전에 매개변수를 에코하며 여기에는 내가 기대하는 문자열이 포함되어 있습니다.
15:56:35 WARNING: Unknown parameter(s) found for class type 'org.jenkinsci.plugins.sshsteps.steps.CommandStep': script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // timestamps
[Pipeline] End of Pipeline
java.lang.IllegalArgumentException: command is null or empty
at org.jenkinsci.plugins.sshsteps.steps.CommandStep$Execution.run(CommandStep.java:69)
at org.jenkinsci.plugins.sshsteps.util.SSHStepExecution.lambda$start$0(SSHStepExecution.java:84)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Finished: FAILURE
마지막으로 게시된 버그입니다.
답변1
인용에 문제가 있는 것 같아요.
sshScript remote: remote, script: "./bash.sh $env.gitTag $env.Version"
답변2
질문을 올바르게 이해했는지 잘 모르겠습니다. 이것이 내 생각이다:
sshd_config
환경 변수가 원격 서버에 명시적으로 구성된 경우에만 SSH를 통해 원격 서버로 전송됩니다. AcceptEnv
의 매개변수를 참조하십시오 man sshd_config
.
기본적으로 일반적으로 다음과 같이 설정됩니다.
AcceptEnv LANG LC_*
이는 "로캘" 환경을 원격 호스트에만 설정한다는 의미입니다.
귀하의 경우에는 구성해야합니다원격 서버변수를 받아들 입니다 /etc/ssh/sshd_config
.