IIS 6.0 Web サイトを同期する
作成者: Faith A
このクイック ガイドでは、Web 配置ツールを使用して、IIS 6.0 配置元コンピューター上の Web サイトを IIS 6.0 配置先コンピューターに同期するプロセスについて説明します。 これは、リモートの配置先にデータを "プッシュ" するか、リモートの配置元からデータを "プル" することによって行うことができます。 このガイドでは、その両方の方法に加え、Web Deployment Agent Service (MsDepSvc、または "リモート エージェント サービス") をインストールする必要がないようにパッケージ ファイルを使用する方法についても説明します。
Web 配置ツールを使用した同期にはどのような方法がありますか?
- プッシュ (ローカルの配置元からリモートの配置先に同期)
- プル (リモートの配置元からローカルの配置先に同期)
- 独立した同期 (配置先と配置元がどちらもリモートにあるコンピューターから同期を開始する)
- 手動でのローカル同期 (配置元のパッケージ ファイルを作成し、配置先にコピーしてローカルで実行)
前提条件
このガイドには、次の前提条件が必要です。
- .NET Framework 2.0 SP1 以上
- Web 配置ツール 1.1
注: Web 配置ツールをまだインストールしていない場合は、Web 配置のインストールに関するページを参照してください。
パート 1 - サイトの依存関係を確認する
次のコマンドを実行して、Web サイトの依存関係を取得します。
msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1
依存関係の出力を確認し、サイトで使用されているスクリプト マップまたはインストールされているコンポーネントを探します。 たとえば、Web サイトで Windows 認証が使用されている場合は、<dependency name="WindowsAuthentication" /> が確認できます。
サイトがスクリプト マップを継承している場合、これらは依存関係には一覧表示されないので、サイトのスクリプト マップも手動で確認する必要があります。
配置先に必要なコンポーネントをリストアップします。
getDependencies の出力を分析する詳細な手順については、「依存関係の表示」を参照してください。
パート 2 - ターゲット (配置先) を構成する
依存関係の一覧を確認し、配置先サーバーにインストールします。 たとえば、Web サイトで次のものが使用されているとします。
- ASP.NET
- Windows 認証
- 匿名認証
依存関係のこの分析に基づいて、対応するコンポーネントを移行先サーバーにインストールしてから、同期を実行します。
パート 3 - サイトをターゲットに同期する
必ず、配置先サーバーと配置元サーバーのバックアップを作成してください。 テストするだけの場合でも、そうしておけばサーバーの状態を簡単に復元できます。
iisback /backup /b PreWebDeploy
リモートの配置元からデータを "プル" するか、リモートの配置先にデータを "プッシュ" するかに応じて、配置元または配置先にリモート サービスをインストールします。
サーバーでサービスを開始します。
net start msdepsvc
以下のコマンドを実行して、同期が実行された場合に何が起こるかを検証します。 -whatif フラグですべての変更が明らかになるるわけではありません。すべて成功した場合に何が変わるかが楽観的に示されるだけです (たとえば、配置先に書き込めない状況で発生するようなエラーは捕捉されません)。
配置元マシンで実行してリモートの配置先にプッシュする (computerName 引数には、リモートの配置先コンピューターを指定します)。
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
配置先マシンで実行してリモートの配置元からプルする (computerName 引数には、リモートの配置元コンピューターを指定します)。
msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
出力を確認した後、-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
(省略可能) パッケージ ファイルを使用してサイトをターゲットに同期する
リモート サービスの使用が望ましくない場合は、代わりにパッケージ (圧縮ファイル) を使用できます。
宛先サーバーで次のコマンドを実行して、Web サイト ソースのパッケージを作成します。
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:package=c:\Site1.zip
パッケージ ファイルを配置先サーバーにコピーします。
配置先サーバーで以下のコマンドを実行して、同期が実行された場合に何が起こるかを検証します。
msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
出力を確認した後、whatif フラグを指定せずに同じコマンドをもう一度実行します。
msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 > msdeploysync.log
これで、サイトの同期が完了しました。 確認のため、ブラウザーで配置先サーバー上の Web サイトにアクセスします。 トラブルシューティングに役立つ情報については、「Web 配置のトラブルシューティング」を参照してください。
まとめ
依存関係を表示し、宛先の IIS 6.0 サーバーを構成し、Web Deployment Agent Service を使用して、ソースの IIS 6.0 サーバーから宛先の IIS 6.0 サーバーに Web サイトを同期しました。