8

こんにちは、

何百もの仮想マシンを含む大規模な環境があります。サービスの展開中に、いくつかのファイルをビルド ドロップからこれらすべてのマシンにコピーする必要があります。

したがって、次のようになります。

  • 展開スクリプトが実行されるユーザー マシン
  • ファイルがあるドロップマシンを構築する
  • 対象マシン

スクリプト言語には Powershell を使用しています。何かのようなもの:

$buildDrop     = "\\sourceMachine\Build"
$machineTarget = "targetMachine"

Invoke-Command -ComputerName $machineTarget -ArgumentList $buildDrop -ScriptBlock {
     Param( $buildDrop )
     Test-Path $buildDrop # Will return False
}

このアプローチは、XP および 2k3 マシンでは CredSSP 機能がサポートされていないため、解決できないダブル ホップの問題につながります。また、ユーザー マシンで呼び出されたコピーは、パフォーマンスのボトルネックにつながります (データはユーザー マシンを通過します)。

ビルド ドロップをすべてのターゲット マシンから常に見えるようにする方法はありますか? どうにかしてそれらを信頼できる場所に追加するか、このようなものに追加できますか?

前もって感謝します!

4

3 に答える 3

7

私たちの環境で機能する解決策を見つけました。

Cred-SSP なしでダブル ホップを介して資格情報を転送することはできませんが、最初のホップなしでターゲット マシン上で何かを実行することはできます。

最も簡単な方法は、 -sフラグを指定してpsexecを使用することです(システム アカウントでリモート プロセスを実行します)。最終的な文字列は次のようになります。

psexec \\someHost -s robocopy "\\stagingHost\Staging" "\\someHost\C$\Staging" /MIR

また、同じ方法でいくつかの PS スクリプトを開始することもできます。ただし、リモート マシンでスクリプトの実行が許可されていることを確認してください。

psexec \\someHost -s "\\stagingHost\Staging\Script.ps1" SomeArg1 SomeArg2

この記事をチェックして、psexec の仕組みを理解してください。someHost でサービス中

于 2013-03-29T11:42:43.640 に答える
1

CredSSP、ダブルホップの問題に対するソリューションです。

方程式からユーザーのデスクトップを削除します。ビルド サーバーに適切なビルド & デプロイ サーバー/サービス/アプリケーションをセットアップし、そこからすべてを管理します。RedGate には、おそらくこれに大いに役立つ新製品、Deployment Managerがあります。

于 2013-03-06T13:40:05.777 に答える
0

使用しているマシンが他のマシンにアクセスできる場合は、マシンを使用してファイルをコピーするだけです:

$computers | % {copy '\\servershare\build' "\\$_\c`$\Temp"}
$sb = {C:\Temp\Dosomething.txt args[0]}
$computers | % {Invoke-command -comp $_ -scriptBlock $sb -argumentlist $arg} 
于 2013-03-08T09:33:14.397 に答える