SSH経由でリモートマシンにソースローディング、ビルド、およびデプロイメントのステージを含むJenkinsパイプラインがあります。問題は最後の問題です。私は、リモートサーバー上で次のテンプレートのスクリプトを保存します。リモートサーバーに接続された端末で実行された場合Jenkinsパイプラインを介してリモートsshサーバにデプロイメントスクリプトを実行
#!/bin/bash
bash /<pathTo>/jboss-cli.sh --command="deploy /<anotherPath>/service.war --force"
それは正常に動作します。
私はジェンキンスを介して受信した最高の成果は、ジェンキンスコンソール出力で
/<pathTo>/jboss-cli.sh: line 87: usr/bin/java/bin/java: No such file or directory
です。
は、任意の提案が理解される等のパイプライン・スクリプトのJavaへのパスをエクスポートは、bashおよびSH切り替える
を試してみました。 ありがとう!
P.S.それはUSRないは/ usrからのパスを検討しているエラー行を1として
sh """
ssh -o StrictHostKeyChecking=no $connectionName 'bash /<pathToTheScript>/<scriptName>.sh'
"""
その理由は不明ですが、私はあなたの助けを借りて問題を解決しました。最初に、87行目は、(さらにjboss-cli.shの中で)JAVA = "$ JAVA_HOME/bin/java"のように初期化された変数を使用していました 結果、$ JAVA_HOMEの値はJenkinsからサーバー上の端末。 端末の値をエコーし、jboss-cli.sh(/usr/java/jdk1.8.0_121/bin/java)に次のようにハードコードしました。 JAVA = "/ usr/java/jdk1 .8.0_121/bin/java " 再デプロイは、ビルド後に正しく動作します。ありがとうございました。理由についての任意の考えをまだ感謝します:) – Panz0r