Настройка Kudu в IIS

пару дней назад, Microsoft выпустила движок, который они используют для развертывания git в Azure. У меня была задача в моем списке задач на некоторое время, чтобы получить такую функциональность, настроенную на моем сервере IIS DEV, поэтому мне интересно попробовать Kudu для этой цели.

в "Начало Работы" документ показывает, как запустить веб-интерфейс, но все в одну строку "http://localhost:PORTNUMBER " введите URL-адреса для репозиториев git, URL-адреса сайтов и т. д.

Я понимаю, что это, вероятно, слишком далеко впереди них, но мне интересно, есть ли у кого-нибудь указатели на то, как настроить его с помощью реальных доменов на "обычных" IIS вместо всех бит localhost?

2 ответов


Это старый вопрос, поэтому я даю обновленный ответ с более актуальной информацией, так как я только что работал над настройкой Kudu на внутреннем сервере развертывания. Выбранный в данный момент ответ касается только того, выполняется ли Kudu непосредственно из среды разработки.

при развертывании в производственной среды тип и не хочу, чтобы установить Visual Studio на целевом сервере, там есть хорошее руководство на сайте проекта на GitHub.

https://github.com/projectkudu/kudu/wiki/Deploying-to-a-server

на целевом сервере вам нужно будет установить:

назад на вашей машине развития, клонируйте репозиторий git и создайте его с помощью " build.cmd", следуя инструкциям в приведенной выше ссылке.

в управлении сборки.cmd я получил несколько тестовых сбоев, которые заблокировали сборку от создания артефактов. Все они были связаны с ртутью, которую мы не используем. Установка клиента Mercurial не заставила их волшебным образом исчезнуть, поэтому я отключил тесты, а не потратил кучу времени на отладку моей среды.

ваш вывод будет указывать на неудачи. Я отключено путем комментирования атрибута [Fact]. Это тесты, которые я отключил:

  • тесты / Kudu.Ядро.Тест / HgRepositoryFacts.cs (все тесты)

после успешного построения, создавшего все элементы артефактов, можно перейти к развертыванию веб-сайта Kudu и кода веб-службы. Приведенные ниже инструкции предназначены для настройки отдельного экземпляра веб-приложения, а не для сброса всего c:\inetpub\wwwroot, который как инструкции Читайте.

  1. скопируйте "artifacts\Release\KuduWeb" в целевую область на сервере, с которого будет работать ваш сайт. Я запускаю установку kudu с отдельным заголовком хоста, но вы можете легко использовать отдельный порт или работать как корневой веб-сайт. Этот каталог будет корневым для вашего веб-приложения.

  2. создайте пустую папку "App_Data" непосредственно под папкой KuduWeb.

  3. копировать "артефакты\Release\SiteExtensions\Kudu "на тот же уровень, что и папка на шаге 1, и переименовать в" Kudu.Сервисы.Сеть." Это расположение задается как относительный путь в kuduweb web.config file-настройка serviceSitePath.

  4. откройте IIS Admin и создайте веб-сайт, указывающий на папку "KuduWeb" с шага 1.

  5. настройте пул приложений с шага 4 для запуска как "LocalSystem". Это необходимо для управления IIS Места.

  6. создайте новую папку "приложения" на том же уровне, что и KuduWeb. Здесь будут отправляться развертывания. Примечание: это расположение контролируется в сети KuduWeb.файл конфигурации-настройка "sitesPath"

  7. измените разрешения файловой системы, чтобы предоставить " пользователям "полный доступ к папке" приложения", созданной на вышеуказанном шаге.

при запуске моего сайта Kudu я получил следующую ошибку.

Сообщение Об Ошибке Синтаксического Анализатора : Не удалось загрузить файл или сборку 'System.Сеть.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' или одна из его зависимостей. Система не может найти указанный файл.

по какой-то причине он не скопировал соответствующую версию MVC в артефакты развертывания.

Если вы нажмете эту ошибку, файл MVC 5 может быть получен через NuGet. Я обнаружил, что мой исходный код был построен против 5.1.0, поэтому это подходит ссылка:

https://www.nuget.org/packages/Microsoft.AspNet.Mvc/5.1.0

чтобы извлечь dll, я настроил новый фиктивный проект и использовал NuGet, чтобы вытащить dll через консоль диспетчера пакетов.

Установить Пакет Microsoft.сеть САШ.Mvc-Версия 5.1.0

Как только вы получите двоичный файл, скопируйте его из каталога пакетов ( .\пакеты\Microsoft.сеть САШ.В MVC.5.1.0\lib\net45\система.Сеть.В MVC.dll ) на веб-сайт bin каталог на целевой машине.

в этот момент Вы находитесь и работает. Использовать веб-интерфейс для создания приложения. Он создаст подпапку в каталоге "приложения" с деревом, которое должно быть понятным. Он также создаст два новых веб-сайта для вашего приложения:

  • kudu_{your-app-name}
  • kudu_service{your-app-name}

в производственной ситуации необходимо создать дополнительный веб-сайт запуск на соответствующем заголовке порта / хоста, который указывает на: .\apps\ \ site\wwwroot

теперь вы можете добавить git remote для вашего развертывания. Перейдите в исходное местоположение в консоли git (например, Git Bash) и добавьте пульт дистанционного управления, как определено Kudu. Примечание: вам может понадобиться изменить localhost в URL-адрес, соответствующий имени сервера.

git remote добавить развертывание http://:52711/your-app-name - ... git

нажмите свой код на новый" deploy " remote и посмотрите, что происходит. Вы должны увидеть все обычные push-сообщения, а также Выходные данные сборки.

git push deploy master

мой первоначальный толчок не удалось построить и развернуть из-за "узел" не признается. Он был в пути, поэтому сброс сервера убедил переменную среды path быть обновленной. Вы можете найти дополнительные ошибки для работы. Например, у меня была проблема с MSBuild импортируется и вызывает икоту.

ошибка MSB4019: в импортированный проект "файлов C:\Program (для x86)\MSBuild с\Майкрософт\визуальная студия\В11.0\WebApplications\Майкрософт.Значение webapplication.цели " не найдены.

YMMV, но теперь все эти проблемы разрешимы. Хорошее непрерывное развертывание!


проект автоматически настраивает два веб-сайта в IIS для каждого приложения, добавляемого с помощью веб-интерфейса. Kudu не автоматически сопоставляет привязки для них, но относительно легко открыть IIS и найти два сайта с именем "kudu_appname" и "kudu_appname_service". Веб-сайт службы-это тот, который вы указываете GIT тоже, а другой-сам сайт. Просто добавьте к ним общедоступные привязки, щелкнув правой кнопкой мыши и "редактировать привязки". Затем вы можете добавить public hostnames в их.

Это легкая часть. Трудная часть, над которой я все еще работаю, - это аутентификация, поэтому любой случайный Джо не может нажать на мой репозиторий kudu!