Я хотел бы знать, как вы можете настроить сервер IIS для получения обновленных, предварительно созданных пакетов из Интернета. Бонусные баллы за минимизацию необходимых настроек сервера.
настройка: Компания, в которой я работаю, создает пользовательские веб-приложения для различных клиентов. Часто клиенты хотят сами разместить эти приложения на своих внутренних серверах. Веб-сайты часто даже недоступны из-за пределов корпоративной сети, не говоря уже об интерфейсах администрирования сервера (копирование файлов, удаленный рабочий стол и т. Д.)
Во-вторых, мы обнаружили, что разработка без стратегии непрерывного развертывания приводит к выпускам, подверженным ошибкам, и решили больше этого не делать. Нам нужны частые выпуски (несколько раз в день) с использованием полностью написанного сценария процесса сборки (сборка, развертывание, миграции сервера sql, все)
текущий подход: Итак, теперь у нас есть CI-сервер Jenkins в нашей сети, который доступен через Интернет через определенный порт. Мы просим у клиента три машины / виртуальные машины: производственный сервер, промежуточный сервер и машину сборки. (и обычно некоторые базы данных sql) Программистам необходимо иметь возможность войти в систему и иметь права администратора на машине сборки. Машина сборки должна иметь возможность копировать файлы на веб-сервер и получать доступ к базе данных. Тогда мы каждый раз
Проблемы: Сейчас мы настраиваем машину сборки для каждого клиента, что требует времени (переустановка MSBUILD, получение всех зависимостей и т. Д.). Мы также требуем, чтобы каждый клиент подключал машину внутри высокозащищенной сети компонентов к серверу, который, по сути, позволяет выполнять произвольные сценарии оболочки. Таким образом, мы можем разрешить доступ к нашему серверу jenkins только избранной группе людей, что делает этих людей узким местом.
Что бы мы хотели: Чтобы создать машину сборки в нашей собственной сети, попросите эту машину создать пакеты и установить эти пакеты на клиентском компьютере. Наш хост пакета не сможет инициировать соединение с клиентским компьютером (поскольку клиентский компьютер недоступен через Интернет), поэтому серверу IIS необходимо опросить о новых версиях пакета. Поскольку развертывание веб-сайта не является основной задачей администратора, настройка машины IIS не должна требовать много работы. Это также не должно давать создателю пакета (то есть нам) слишком большой контроль над машиной. Желательно, чтобы пакет предоставлял файлы и конфигурацию IIS и не более того.
Мой вопрос: Я не знаком с последними разработками в области упаковки и системного администрирования. Какой подход я могу использовать для реализации описанного выше процесса? Я прочитал Веб-развертывание, WIX, различный CI серверы и осьминог развернуть, но все, похоже, требуют обширной настройки в сети клиента или доступа администратора к машине IIS.
Есть ли здесь кто-нибудь сейчас, как достичь наших целей?
Я не думаю, что вы собираетесь устанавливать какой-то агент на клиентские машины для опроса и обновления сайтов. Octopus Deploy кажется хорошей ставкой, можете ли вы подробно рассказать, почему вы уже отказались от этого?
Вы также можете взглянуть на AppHarbor (Я соучредитель). Это платформа .NET с полным спектром услуг, но вы можете просто воспользоваться преимуществами, в настоящее время бесплатными, CI-частями и использовать API создавать уведомления чтобы получать уведомления и получать пакеты сборки, которые вы затем развертываете самостоятельно.