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

関連情報