Jenkins 파이프라인에서 환경 매개변수를 사용하여 원격 서버 셸 스크립트를 실행하는 방법

Jenkins 파이프라인에서 환경 매개변수를 사용하여 원격 서버 셸 스크립트를 실행하는 방법

이 명령을 사용하여 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.

관련 정보