このコマンドを使用して、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
。