Пакетный процесс установки скрипта - PullRequest
0 голосов
/ 14 июля 2009

Я планирую приступить к выпуску нашего программного обеспечения для наших клиентов с использованием расширенной версии существующей процедуры, в которой используются пакетные сценарии Windows. Я надеюсь улучшить этот процесс и автоматизировать установку следующих элементов:

  • Файлы. Файлы просто копируются в место назначения.
  • Базы данных MSSQL. Я думаю, что я буду использовать команду OSQL, чтобы запустить их для базы данных.
  • Виртуальные каталоги IIS. В серверных версиях Windows обычно установлен инструментарий IIS, в котором есть некоторые инструменты для создания виртуальных каталогов и тому подобное из командной строки, поэтому я буду использовать это. Я думаю, что «iiscnfg» - это тот, который я использую для вставки ранее сохраненных файлов конфигурации в IIS .
  • Службы Windows. Наши сервисы имеют возможность установить себя из командной строки.

Итак, для каждого развертывания приложения у меня есть такая структура:

Releases\
| get-release.bat
| Release1\
| Release2\
| Release3\
| | Content\
| | | Application1\
| | | | bin\
| | | | | Application1.exe
| | | | etc\
| | | | | Application1.config
| | | | db\
| | | | | CreateDatabase.sql
| | | | | CreateTable1.sql
| | | | | CreateTable2.sql
| | | | iis\
| | | | | Application1Web.xml
| | | | pre.bat
| | | | post.bat
| | | | environment.bat
| | | Application2\
| | | Application3\
| | | Application4\
| | Release1.doc

Таким образом, в основном вы открываете терминал и компакт-диск в каталог Releases, запускаете команду что-то вроде:

get-release "Release3"

, который будет запускать серию команд для всех приложений в каталоге Release3 и копировать все файлы, конфигурации, устанавливать все базы данных и виртуальные каталоги iis.

Есть еще кое-что, например резервное копирование каталога назначения для файлов и т. Д., Но на данный момент это не имеет значения.

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

К сожалению, мы не можем использовать пакеты MSI или NullSoft (чье имя ускользает от меня на данный момент). Если это не сделано так, это делается вручную, поэтому я действительно пытаюсь помочь себе здесь.

Ответы [ 2 ]

1 голос
/ 15 июля 2009

Я выполнил несколько подобных сценариев, и самыми уродливыми частями, с которыми приходится иметь дело, является обработка ошибок - как вы обнаруживаете ошибки, что вы делаете, когда они возникают, можете ли вы откатить все изменения, сделанные на сегодняшний день, и т.д. на. Относительно просто, если вы делаете новую установку, не так просто, если вы обновляете существующую систему. (Вы никогда не должны предполагать, что это будет работать идеально каждый раз - завтрашнее обновление MS может, в конце концов, сломать сегодняшний скрипт.)

Есть всего несколько вещей;) вы не можете разумно сделать это из командного файла. Можете ли вы использовать VB-скрипты, java-скрипты, некоторые вызовы Powershell или что-то еще, чтобы справиться со сложными вещами?

1 голос
/ 14 июля 2009

Я не вижу проблем с такими вещами с помощью командного файла. Однако вам придется подумать о том, какими могут быть различия между компьютерами (отсутствующие каталоги, уже существующие каталоги, уже существующие файлы, версии файлов и т. Д.), Устранить их и действительно хорошо протестировать на Разнообразие машин.

Жаль, что вы не можете использовать установщик, потому что установщики уже решают большинство этих проблем за вас. По сути, вы будете использовать собственный установщик и не будете извлекать пользу из извлеченных уроков, передового опыта и т. Д., Которые вам даст установщик.

Еще одна вещь, которую вы не сможете обойтись без установщика, это установить файл, который блокируется операционной системой. Инсталляторы решают эту проблему, копируя файл во временную папку, помещая запись «загрузка при перезапуске» в реестр, а затем прося пользователя перезагрузить компьютер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...