2

ArtifactDeployerプラグインを使用して、ビルドジョブアーティファクトをリモートの場所(Windows共有SMB)に展開しています。しかし、ジェンキンスは決して成功することができません。次のようなエラーをスローします。

[ArtifactDeployer]-ポストアクションから展開を開始しています...[ArtifactDeployer]-[ERROR]-展開に失敗しました。ディレクトリを作成できません...ビルドステップ[ArtifactDeployer]-アーティファクトをワークスペースからリモートディレクトリにデプロイします。ビルド結果がFAILUREに変更されました。

ローカル展開は正常に機能します。

JenkinsマシンのOSはWindows732ビットです。Jenkins教授はローカルシステムアカウントを使用してサービスとして実行されています。

別のアカウントであるユーザーアカウントを使用しようとしましたが、サービスを開始できませんでした(Windowsエラー1069:ログオンに失敗したため、サービスを開始できませんでした)。ネットワークサービスアカウントは実行されましたが、Jenkinsがエラーをスローするよりも、.NETFrameworkにアクセスできません。

リモートコピーを手動で試す場合、これは正常に機能します。ディレクトリを作成して書き込むことができます。もちろん同じマシンで。

Jenkinsで2つの異なるリモート参照を試しました:1)\\ targetdirectory 2)I:\-Windowsのリモートディレクトリにドライブ文字をマッピングすることによって成功しません...

ヒントや提案はありますか?ありがとう!

2012年2月15日更新:この問題の解決策や回避策はまだありません。プラグインだけでなく、「Windowsバッチコマンドの実行」を使用してこの問題も発生しました。共有したいバグレポートを見つけました。

解決

私は解決策を見つけました。そのマシンのユーザーではなく、ドメイン内のコンピューターにアクセス許可を付与する必要があります。振り返ってみると、とても論理的なようです。

2番目の解決策は、ドメインユーザーアカウントを使用してサービスを実行することです。.\user上記では、の代わりにローカルユーザーを使用してミスをしましたDOMAIN\user

4

2 に答える 2

1

ドメインを持っていない場合は、次の方法で確実に機能します。これは、ドメインを持っている場合でも機能するはずです。

背景情報:
マップされたドライブは、サービスが使用しているアカウントと同じアカウントにマップされ、適切なタイミングで利用可能である必要があります。通常、マップされたドライブは、ログインした時点で、ログインしているユーザーに対してのみマップされます。たとえば、ドライブを MyUser としてマップし、サービスをパスワードを入力して実際にログインするまで、ドライブは使用できません。ただし、スクリプトを使用して、(ログインではなく)起動時に特定のユーザーのドライブをマップすることができます。Jenkins は通常、ローカル システム アカウントとして実行されるため、これを変更したくない場合は、以下のスクリプトをローカル システム アカウントとして実行する必要があります。SYSTEMユーザー。として実行されるすべてのサービス/プロセスにこのマップされたドライブを許可したくない場合は、代わりに Jenkins を実行する特定のユーザーを作成し、SYSTEMそのユーザーとしてサービスと以下のスクリプトの両方を実行できます (これはおそらくもっと安全)。

解決手順:
ArtifactDeployer で、マップされたネットワーク ドライブにデプロイします。私の場合、これは S: です。

リモート共有に対するアクセス許可の特別な設定はありません。(私の場合、ドライブのマッピングに使用されるユーザー名とパスワードを持つ Windows Server 2008 共有です。)

MapDrives.bat選択したユーザー (デフォルト: SYSTEM) がアクセスできる場所に、以下を含むバッチ ファイルを書き込みます。

net use S: "\\server_name\share_name" /persistent:yes password_here /USER:username_here

その行で S: にマッピングしていることに注意してください。

タスク スケジューラを使用して、サービス (デフォルト: SYSTEM) と同じユーザーとして実行されるタスクを作成し、 をトリガーAt Startupし、そのアクションとしてバッチ ファイルを実行しますMapDrives.bat

再起動すると動作するはずです!


引用:
多くのページと多くのテストに飛び込んだ後、最終的にここで最良の提案が見つかり、上記の解決策にたどり着きました。
https://stackoverflow.com/a/4763324/150794

于 2012-11-03T02:37:22.080 に答える
0

「ローカル システム アカウント」にリモート ディレクトリへのアクセス権 (書き込みアクセスを含む) があることを確認してください。次に、表記法を使用します

\\targetdirectory

ドライブ文字のリモート ディレクトリへのマッピングは、現在使用しているユーザー アカウントにのみ適用されます。ドライブ文字のマッピングは、他のアカウントでは使用できません。

于 2012-01-05T09:50:12.173 に答える