MSDeployでステージングモデルを使用して、いくつかのサイトをWebファームに展開しています。サイトはステージングボックスのIISでのみ構成され、MSDeployを使用してターゲットWebサーバーを最初から構築します。
ステージングボックスは、ライブになるサイトに対して独自のバインディング(つまり、ヘッダーエントリ、異なるIP /ポート、およびホストヘッダーなし)を使用します。-declareParamFile
それらをデプロイすると、最初に、次のようにパラメーターを宣言するパラメーター化されたパッケージを準備するために使用されるxmlファイルがあります(スイッチを使用)。
<parameters>
<parameter name="site1">
<parameterEntry kind="DestinationBinding" scope="Site1" match=":17000:" />
</parameter>
</parameters>
match
したがって、上記のXMLでは、属性がその値を持つバインディングと一致するように設定されているため、ステージングされたサイトがポート17000でホストされていることがわかります。
次に、各ライブサイトに展開するときに、そのマシンの正しいホストヘッダーとIPを指定する異なるパラメーターXMLを使用します。これは-setParamFileスイッチを使用して適用します。そのうちの1つの例を次に示します。
<parameters>
<setParameter name="site1" value="[ip_addr]:[port]:[host_header]"/>
</parameters>
したがって、元のパラメーターは既知のバインディングの1つと一致するように宣言されているため、そのバインディングを、各ライブサーバーで実際に使用したいものに置き換えることができます。
私が今やりたいのは、サイトをデプロイし、サイトに新しい宛先バインディングを追加することです。これには、すべて同じIPアドレスにバインドされたさまざまなTLD(site.com、site.co.uk、site.caなど)が組み込まれています。およびポート。
これを実行したい理由は次のとおりです。
- デプロイする新しいサイトに別のホスト名が必要ですが、独自のIPアドレス(ここではIPが不足しています!)を指定したくはありませんが、既存のサイトのIPを共有します。サーバーはすでに持っています。
- これは、任意のホスト名に応答させるのではなく、すでにそこにあるサイトに特定のホスト名バインディングを追加することを意味します。
- 現在、既存のサイトの負荷分散されたIP(.com、.us、.ca、.com.au)を指す4つのドメイン名があります。現時点では、Webサーバーがホストヘッダーを気にしないため機能しますが、新しいサイトが同じIP上にある場合は機能し、他のドメイン名は機能しなくなります。
問題は、そのような情報を追加する方法がないように思われることです。2番目のXMLに複数の要素を追加しようとしましsetParameter
たが、それは単にバインディングを繰り返し上書きする効果があり、最後の要素が最終的な勝者になります。
1つの解決策は、ステージングボックスの各サイトに「プレースホルダー」バインディングを追加することです。これは、各ドメイン名、ポートなどのターゲット外部バインディングを表します。次に、2つのパラメータファイルを変更して、これらのバインディングを実際のバインディングに置き換えます。
しかし、私にはこれは完全に間違っていると感じます。つまり、ライブ展開に合わせてステージングボックスをモデル化することになります。逆のはずです。
MSDeployを使用してサイトバインディングを実際に追加することは可能ですか(ある場合、どのように?)、それとも置換のみをサポートしますか?