web-dev-qa-db-ja.com

ハドソンにリモートディスクへの書き込みをさせる方法は?

Hudsonを使用したリモートディスクへの書き込みに問題があります。手動で書き込むと動作します。

2台のコンピューターが暗示しています。1台はWindows XP、もう1台はMac miniサーバーです。リモートでアクセスする必要のあるディスクはMac上にあります。次のことに成功しました:

  • Macでユーザーを作成しました
  • WinXPボックスにマウントするフォルダへの読み取り/書き込みアクセス権を付与しました
  • 上で作成したユーザーの資格情報を使用して、WinXPマシンにファイルシステムをマウントしました
  • いくつかのディレクトリを作成し、ファイルを移動するなど、リモートで(WinXPコンピュータから)

しかし、Hudsonが、マウントされたフォルダーに何かを書き込むようにプログラムしたビルドスクリプトを実行すると、失敗します。

BUILD FAILED
C:\path\to\build.xml:62:
Directory Z:\mac\path creation was not successful for an unknown reason

同じコンピューターから(リモートで)Z:\ mac\pathを作成でき、問題なく動作します。実際、ディレクトリはすでに存在しますが、削除された場合に備えて、とにかく作成してみてください。私はローカルディスクでまったく同じことをします、そしてそれは決して文句を言いませんでした(ディレクトリが存在するかどうか)。

対応するAnt命令は次のようになります

<mkdir dir="Z:/mac/path/"/>

なんらかの許可の問題が疑われます。よくわかりません。コンピュータにディスクをマウントしたユーザーはSYSTEMではありません...ハドソンは「彼」によって実行されています。 WinXPコンピュータのユーザー名は、リモートファイルシステム(NTFS)のマウントに使用されるMacユーザーとは何の関係もありません。

私は何をしようとすることができますか? Z:としてうまく取り付けられています。閲覧・編集は問題ありません。ただし、その行はハドソンではまだ計算されません(C:で通過します)。 SYSTEMを使ってマウントすることはできないと思います...助けてください!

2
Joanis

私はちょうど同様の問題を解決したので、うまくいけばこの解決策があなたのために働くでしょう...しかしそれは9ヶ月であるため、おそらくそれは次の人を助けるでしょう。基本的な問題は、Tomcatがサービスとして実行される場合、スクリプトがSYSTEMとして実行されることです。

テストするシステムとしてcmdプロンプトを開きます(今から1分に時間を設定します)

at 12:34 /interactive "cmd.exe"

離れてテスト...

C:\.jenkins\jobs\test\workspace>dir \\remotemachine\folder
Access is denied.

十分な権限(この場合は書き込みアクセス)を持つユーザーとしてドライブをマッピングして解決します

Net Use z: \\remotemachine\folder password /USER:username\domain
1
KCD

WinXPコンピュータのユーザー名は、リモートファイルシステム(NTFS)のマウントに使用されるMacユーザーとは何の関係もありません。

両方のシステムで同じユーザー名/パスワードを使用してアカウントを作成し、Hudsonプロセス(または、そのようにインストールされている場合はサービス)をそのユーザーとして実行してみてください。

もう1つの方法は、KCDで説明されているように「NetUse」コマンドを使用することですが、/ USERパラメーターオプションはusername\domainではなくdomain\usernameです。

私は自分の環境でNetUseコマンドを使用して、NASにリモートドライブをマップしてから書き込みます。これにより、確実にその方法で実行できます。

0
Peter Bernier