Добавьте *новый* DestinationBinding для сайта к пакету с помощью MSDeploy

Я использую модель подготовки с MSDeploy для развертывания нескольких наших сайтов на веб-ферме. Сайты настроены в IIS на полях подготовки только, и затем MSDeploy используется для создания целевых веб-серверов с нуля.

Поле подготовки использует свою собственную привязку (т.е. никакие записи заголовка, другой дюйм/с/порты и никакие заголовки хоста) для сайтов, которые будут живы. Когда я развертываю их, мне сначала использовали XML-файл для подготовки параметризованного пакета (использующий -declareParamFile переключатель), который объявляет параметры следующим образом:

<parameters>
  <parameter name="site1">
    <parameterEntry kind="DestinationBinding" scope="Site1" match=":17000:" />
  </parameter>
</parameters>

Таким образом в вышеупомянутом XML Вы видите, что подготовленный сайт размещается на порте 17000 как match атрибут установлен соответствовать привязке, которая имеет то значение.

Когда я затем развертываюсь на каждый живой сайт, я использую различные параметры XML, который указывает корректный заголовок хоста и IP для той машины - я применяю это использование переключателя-setParamFile. Вот пример одного из них.

<parameters>
  <setParameter name="site1" value="[ip_addr]:[port]:[host_header]"/>
</parameters>

Так, потому что исходный параметр, как объявляют, соответствует одной из известной привязки - я могу заменить ту привязку тем, что я на самом деле хочу, чтобы это было на каждом живом сервере.

Что я хочу сделать, теперь должен развернуть сайт и добавить новую целевую привязку к нему, которая включает другой TLDs, который мы имеем - т.е. site.com, site.co.uk, site.ca и т.д., все привязали тот же IP-адрес и порт.

Причины желания сделать это:

  • У нас есть новый сайт, который мы хотим развернуть, которому будет нужно другое имя хоста, но мы не хотим давать ему свой собственный IP-адрес (исчерпывающий дюйм/с здесь!), но имеют его, совместно используют IP, который уже имеет существующий сайт на серверах.
  • Это означает добавлять определенную привязку имени хоста к сайту, на котором это уже находится там, вместо того, чтобы иметь его отвечают на любое имя хоста.
  • У нас есть четыре доменных имени, в настоящее время указывающие на сбалансированный IP загрузки существующего сайта (.com, .us, .ca, .com.au). В данный момент это работает, потому что веб-сервер не заботится о заголовке хоста - но когда новый сайт пойдет на тот же IP, это будет, и другие доменные имена больше не будут работать.

Проблема, я не думаю, кажется, существует любой способ добавить такую информацию. Я попытался добавить несколько setParameter элементы во втором XML, но это просто имеет эффект повторной перезаписи привязки с последней как возможный победитель.

Одно решение состоит в том, чтобы я добавил привязку 'заполнителя' для каждого из сайтов на поле подготовки, которые представляют целевую внешнюю привязку для каждого доменного имени, порт и т.д.; и затем я изменяю эти два файла параметров для замены той привязки реальными.

Но мне это чувствует себя абсолютно неправильным - который смоделировал бы поле подготовки для удовлетворения живому развертыванию; это должно быть наоборот.

Действительно ли возможно на самом деле добавить привязку сайта с MSDeploy (если так, как?), или это только поддерживает замену?

7
задан Andras Zoltan 18 February 2010 в 00:08
поделиться

1 ответ

После долгих размышлений выяснилось, что нет никакого способа добавить новые привязки с помощью операции DestinationBinding с msdeploy.

Можно было бы прикрепить сценарий, который будет выполняться после развертывания, который каждый раз добавляет привязки с помощью appcmd.

Итак, первоначальная синхронизация через msdeploy удалит эти привязки (потому что они не находятся на промежуточном сервере), но сценарий appcmd затем добавит их снова.

Не совсем идеальное решение, так как это еще один скрипт, который нужно постоянно обновлять.

4
ответ дан 7 December 2019 в 14:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: