SSH経由で別のサーバーでPowerShellスクリプトを実行するJenkinsジョブを作成する必要があります。 「ファイルを送信するか、SSH経由でコマンドを実行する」オプションを使用して、必要な処理を実行しています。 「Execコマンド」フィールドの値は「cmd/cXCopy.bat」で、XCopy.bat(SSHがインストールされている他のサーバー(Windows Server 2008 R2)に存在するバッチファイル)がPowerShellを実行します。仕事は単にフォルダとその内容を別の場所にコピーすることです。
ジョブをビルドすると、必要に応じてコピーが実行されます。ただし、ジョブは不安定なビルドで終了します。ログは次のとおりです。
SSH: Connecting from Host [USVAUJNKW001]
SSH: Connecting with configuration [54.254.146.206-SGSGDAPPW001] ...
SSH: EXEC: STDOUT/STDERR from command [cmd /c XCopy.bat] ...
**copy job done**
SSH: Disconnecting configuration [54.254.146.206-SGSGDAPPW001] ...
ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 120,012 ms]
Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
Finished: UNSTABLE
異なる「Exectimeout(ms)」値を試し、「Exec in pty」を(チェック解除)チェックしましたが、成功しませんでした。
クエリ:
私はさまざまなフォーラムで答えを見つけようとしましたが、正確に役立つものはありませんでした。
Jenkins設定の管理で構成されたSSHサーバーのタイムアウトを増やします。また、ジョブ構成のexecタイムアウト。
この問題は、ジョブ構成を変更することで解決できます。 SSH経由でファイルを送信またはコマンドを実行する場合
[詳細設定]タブをクリックします。
セット実行タイムアウト(ms):0
これは、タイムアウト例外を回避するのに役立ちます。それは私のために働いたので、うまくいけばあなたにもうまくいくでしょう。
出力をリダイレクトするというrojoの提案は私のために働いた。これをスクリプトに追加しました:
>> /var/log/[project-name].log 2>&1