IIS 6.0 の同期

作成者 : Faith Allington
発行日 : 2008 年 4 月 7 日 (作業者 : faith_a(英語))
更新日 : 2009 年 3 月 25 日 (作業者 : faith_a(英語))

このクイック ガイドでは、Web 配置ツールを使用して、IIS 6.0 上で Web サイトをソースからターゲットに同期する方法を説明します。同期するには、データをリモート ターゲットに "プッシュ" するか、リモート ソースから "プル" します。このガイドでは、この 2 つの方法の他に、リモート サービスはインストールしないでアーカイブ フォルダーだけを使用する方法についても説明します。

Web 配置ツールを使用した同期方法

  • プッシュ (ローカル ソースからリモート ターゲットに同期します)
  • プル (リモート ソースからローカル ターゲットに同期します)
  • 独立同期 (ターゲットとソースの両方がリモートにあるコンピューターから同期を開始します)
  • 手動ローカル同期 (ソースのアーカイブを作成してターゲットにコピーし、ローカルに実行します)

前提条件

このガイドの前提条件ソフトウェアは以下のとおりです。

  • .NET Framework 2.0 SP1 以降
  • Web 配置ツール(RC版)

注 : Web 配置ツールをまだインストールしていない場合は、「Web 配置ツールのインストール」を参照してください。

パート 1 - サイトの依存関係の表示

1. 次のコマンドを実行して、Web サイトの依存関係を取得します。

msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1

2. 依存関係の出力内容を確認し、スクリプト マップ、またはサイトで使用されているインストール済みコンポーネントを探します。たとえば Windows 認証が Web サイトで使用されている場合、<dependency name="WindowsAuthentication" /> が見つかります。

3. サイトがスクリプト マップを継承している場合、このスクリプト マップは依存関係に表示されません。そのサイトのスクリプト マップを手動で確認する必要があります。

4. ターゲットで必要なコンポーネントの一覧をまとめます。

getDependencies の出力内容を分析する詳細な手順については、「Web サイトの依存関係の表示」を参照してください。

 

パート 2 - ターゲットの構成

  1. 依存関係の一覧を確認し、その依存関係をターゲット サーバーにインストールします。 たとえば、以下が Web サイトで使用されているとします。
    • ASP.NET
    • Windows 認証
    • 匿名認証

依存関係の分析に基づいて、これらのコンポーネントをインストールします。

 

パート 3 - ターゲットへのサイトの同期

1. ターゲット サーバーとソース サーバーのバックアップを必ず作成します。テストだけの場合でも、これにより、サーバーの状態を簡単に復元できます。

2. リモート ソースからデータを "プル" するのか、データをリモート ターゲットに "プッシュ" するのかに応じて、ソースまたはターゲットにリモート サービスをインストールします。

3. コンピューターでサービスを開始します。

net start msdepsvc 

4. 次のコマンドを実行して、同期が実行された場合にどんな結果になるかを確認します。whatif を指定すると、すべての変更が表示されるわけではありません。すべてが成功した場合 (ターゲットに書き込めないなどのエラーが発生しなかった場合) の楽観的な変更内容だけが表示されます。

リモート ターゲットへのプッシュ、ソース コンピューターでの実行
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log

リモート ソースからのプル、ターゲット コンピューターでの実行
msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log

5. 出力内容を検証後、whatif フラグを指定せずに同じコマンドを実行します。

リモート ターゲットへのプッシュ、ソース コンピューターでの実行
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 > msdeploysync.log

リモート ソースからのプル、ターゲット コンピューターでの実行
msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 > msdeploysync.log

 

任意 - アーカイブを使用してサイトをターゲットに同期

アーカイブから同期しない場合は、リモート サービスを使用して同期できます。

1. ターゲット サーバーで以下のコマンドを実行し、同期のために、サーバーのアーカイブを取得します。

msdeploy -verb:sync  -source:metakey=lm/w3svc/1 -dest:archivedir=c:\site1archive

2. アーカイブ フォルダーをターゲット サーバーにコピーします。

3. ターゲット サーバーで次のコマンドを実行して、同期が実行された場合にどんな結果になるかを確認します。

msdeploy -verb:sync -source:archivedir=c:\site1archive -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log

4. 出力内容を検証後、whatif フラグを指定せずに同じコマンドを実行します。

msdeploy -verb:sync -source:archivedir=c:\site1archive -dest:metakey=lm/w3svc/1 > msdeploysync.log

これで、サイトの同期が終了しました。確認する場合は、ターゲット サーバーにある Web サイトの閲覧をテストします。トラブルシューティングのヘルプについては、Web 配置ツールのトラブルシューティング を参照してください。

まとめ

ここでは、ソースの IIS 6.0 サーバーからターゲットの IIS 6.0 サーバーへの Web サイトの同期 (依存関係の表示、ターゲット IIS 6.0 サーバーの構成、および同期の実行を含む) を行いました。