Tuesday, August 4, 2015

Руководство по установке и настройке Web Deploy в среде Windows Server 2008 R2

http://habrahabr.ru/post/192150/

В этом руководстве мы настроим Web Deploy в среде Windows Server 2008 R2 для простого развертывания приложений из Visual Studio 1 кликом мыши. Web Deploy позволяет настроить публикацию пользователем, не обладающим правами администратора.

Установка Web Deploy


Web Deploy можно установить двумя способами (мне именно так и пришлось).

Web Platform Installer


Первый способ через Web Platform Installer. Его необходимо скачать и установить на сервер. Затем открыть и выбрать такие пункты как: Web Deploy, Web Deploy for Hosting Servers и IIS Recommendated Configuration (на скриншоте не видно)

Web Platform Installer установка Веб Деплой

Пакеты, устанавливаемые через WPI включают в себя дополнительные компоненты, некоторым может это не понравится. Однако для новчиков этот путь будет самый простой. 

Установка через msi


Необходимо скачать файл установки Web Deploy (на сегодня версии 3.5) и установить его. При ручной установке необходимо будет вручную установить необходимые службы IIS. Делается это через панель управления сервером: Roles > IIS > Add Role Services

Добавление необходимые сервисов в IIS

Необходимо выбрать и установить следующие:
  1. Logging Tools
  2. Management Service (IIS Management Console может понадобиться)

После всех установок в панели IIS Manager должны появиться Features: Management Service, Management Service Delefation. Если устанавливаете Web Deploy вручную, необходимо в Management Service разрешить удаленное управление IIS:

IIS Management Service

Настройка сайта для удаленной публикации


После всех дейсвий должен был появиться пункт меню

Deploy Menu

Создаем пользователя не администратора и задаем ему сложный пароль. Также даем ему права на запись в папку сайта в wwwroot.
Далее настраиваем удаленную публикацию:

Настройка удаленной публикации Web Deploy

  1. Выбираем пользователя, с которым мы будем публиковать наш сайт;
  2. Указываем URL для публикации. Это должен быть внешний IP сервера с открытым портом по умолчанию 8172. При установке через WPI создается правило в Firewall и порт открывается.
  3. Указываем место, куда сохранить файл настроек.
  4. Нажимаем Setup

Получаем:
Publish enabled for 'WIN-9APS8Q11R9V\InDeploy' Granted 'WIN-9APS8Q11R9V\InDeploy' full control on 'C:\inetpub\wwwroot\mysite' Successfully created settings file 'C:\Users\Administrator\Desktop\WIN-9APS8Q11R9V_InDeploy.PublishSettings'

Проверить настройку можно перейдя по адресу в браузере, который мы указывали в настройке публикации вида:http://111.111.111.111:8172/msdeploy.axd — браузер должен предложить авторизоваться или написать что служба найдена, но мы не авторизованы.
Также необходимо проверить:
  • Служба msdepsvc запущена в автозапуске и работает сейчас net stop msdepsvc & net start msdepsvc
  • Аналогично служба wmsvc net stop wmsvc & net start wmsvc
  • Также необходимо уточнить, возможен ли пинг до 80 порта (для службы Web Deployment Agent Service (MsDepSvc)) и 8172 для службы Web Management Service (WmSvc, handler).

Если публикация не настроена или возникают проблемы можно включить логи (Enabling Web Management Service Failed Request Tracing)

Настройка публикации Web Deploy в Visual Studio


После успешной настройки на стороне сервера необходимо настроить публикацию в Visual Studio. Для этого создаем профиль публикации, в методе публикации выбираем Web Deploy.

Настройка веб деплой 1

На следующем шаге выбираем конфигурацию Release. Здесь же можно указать строку подключения, на которую заменит VS при публикации (не пробовал). Получится удобная публикация решения в 1 клик:

готовая настройка

Важно: название сайта должно быть таким же как оно отображается в IIS Management.
Важно: Если вы установили подписанный сертификат SSL на удаленном сервере, убедитесь, что вы установите флажок “Разрешить ненадежный сертификат” флажок. По умолчанию Web Deploy установит сертификат для вас, чтобы он был уникальный, однако он будет самоподписанный.
Также есть настройка, которая позволяет уточнить «Оставлять ли лишние файлы или нет». Веб деплой будет копировать только изменившиеся файлы с момента последней публикации.

Резюме


Web Deploy предоставляет мощный и гибкий инструмент автоматизированного развертывания приложений ASP.NET на удаленном сервере. Кроме того, он позволяет публиковать не только файлы но и схемы базы данных и скрипты обновления и скрипты настройки параметров ACL (Access Control List)
Можно использовать Visual Studio, чтобы автоматически публиковать решения на сервер или же создать Web Deploy Package и вручную установить необходимые обновления на сервере.
Надеюсь с этим руководством станет проще публиковать свои сайты.

Ссылки


No comments: