В общей группе развертывания DevOps Azure веб-приложения перезаписываются. Как лучше всего это отладить? - PullRequest
0 голосов
/ 14 апреля 2020

Контекст

У меня есть локальный сервер TFS (Azure DevOps) (версия 2018.2) с одним агентом развертывания .

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

Все конвейеры выпуска используют идентичный поток, выполняющий модуль IIS Web App Deployment для развертывания каждого приложения.

В параметрах развертывания каждое приложение имеет свой собственный уникальный уникальный virtual application.

Проблема

Когда одно приложение развернуто, оно правильно развертывается в своем уникальном виртуальном приложении, , но , все другие виртуальные приложения, которые агент настроен для развертывания даже в других конвейерах выпуска перезаписывается одним приложением.

Что я пробовал

  1. Проверено, что каждый параметр virtual application фактически уникален в конфиги
  2. Проверено, что в журналах развертывания выпуска для любого данного развертывания не упоминаются никакие дополнительные пути развертывания. Это особенно озадачивает, потому что журналы говорят , что операция корректно развертывается на только одном виртуальном приложении.
  3. Проверка любых странных журналов IIS на целевом сервере

Вопрос

Каковы наилучшие следующие шаги для отладки проблемы Azure DevOps, подобной этой? Это сервер on-prem , поэтому у меня более высокий уровень доступа, чем если бы это был облачный хостинг.

Возможно, я думаю:

  1. Проверьте версию агента и обновить ее до последней версии?
  2. Могут ли быть другие журналы с ценной информацией? На целевом сервере? На сервере DevOps?

1 Ответ

1 голос
/ 15 апреля 2020

Я решил проблему. Смотрите процесс написания ниже.

Решение

Проблема была не в модуле развертывания, а в неправильной настройке модуля управления IIS , который запускался непосредственно перед каждым модулем развертывания. Каждый модуль управления имел одинаковое значение параметра physical path, установленное для каждого виртуального приложения, в результате чего каждое развертывание перезаписывало любое предыдущее развертывание.

Процесс отладки

При записи соответствующей проблемы для этого в По иронии судьбы, на github была ссылка на инструкции по устранению неполадок AzureDevops , поэтому я начал следить за этим документом.

  1. I включил подробное ведение журнала в агенте развертывания добавив переменную system.debug в конвейер выпуска и установив ее на true.
    • Из этого я увидел, что на самом деле не было развернуто никаких других виртуальных приложений на
  2. Я проверил дополнительные журналы агента на целевом сервере под агентом установить каталог в каталог с именем _diag.
    • Это показало, что все работает правильно
  3. Все еще не убежден, Я посмотрел на исходный код и обнаружил, что все, что делает модуль, это работает MsDeploy.
    • Это заставило меня задуматься, все ли развертывания проходили в одном физическом месте
  4. Затем я посмотрел мою конфигурацию для модуля управления IIS и заметил, что я установил идентичные физические пути для каждого виртуального приложения.
  5. Я проверил гипотезу, установив разные физические пути для каждого приложения, и, yay , приложения больше не перезаписывали каждое другое!
...