Мы должны распространять и поддерживать довольно сложное программное приложение, установщик которого не (и не ожидается) устанавливает и не настраивает все необходимые компоненты на любом возможном типе сервера.
До сих пор я был человеком, ответственным за установку, и я знаю все многочисленные ловушки и уловки, чтобы установка работала гладко. Теперь у нас есть больше людей, которых мы хотим обучить этой процедуре, и, надеюсь, свести к минимуму необходимость держать их за руки, пока они учатся.
Дело в том, что линейный документ для всех возможных случаев был бы далек от идеала, потому что существует множество возможных путей в процессе, в зависимости от начальной точки (Windows Server 2003 32/64 бит, Windows Server 2008 32/64 бит, SQL Server 2005 32/64 бит, Windows XP Pro SP2 / SP3, .NET 2.0 SP1 / SP2) и обо всех возможных проблемах, возникающих в каждой комбинации.
Итак, я ищу инструмент, разработанный с учетом этого сценария, надеюсь, генерирующий документацию на основе набора входных параметров (конфигурация машин) или, что еще лучше, инструмент, который будет направлять процесс установки на основе того, что происходило, и которые могут регистрировать новые проблемы и сопоставлять их с известными решениями.
Я могу представить себе написание такого инструмента, но это не похоже на (очень) тривиальную проблему. Кажется, это пересечение базы знаний и экспертной системы.
Ну так что ты делаешь? Допустить поражение и иметь огромные линейные документы и FAQ, такие как КБ?
Хорошо, у меня есть два комментария. Во-первых, тот, который вы хотите услышать (хотя, вероятно, этого не ожидаете).
Gamebook Engine (http://freshmeat.net/projects/gamebook-engine) звучит так, как будто это может быть то, что вы хотите, поскольку вы, по сути, говорите о процессе типа «Создайте свое собственное приключение». Перейдите на страницу 45, если вы устанавливаете в Windows XP, на страницу 26, если вы атакуете друида.
2-й комментарий: Вы, вероятно, ошибаетесь. Что вам действительно нужно сделать, так это написать оболочку для этого установщика, которая достаточно умна, чтобы знать ваши платформы, и имеет конкретные инструкции, необходимые для этой платформы. Это (возможно) больше работы, но похоже, что в долгосрочной перспективе это сэкономит всем время.
Проблема с линейной установкой заключается в отсутствии идемпотентности или способности повторять задачу снова и снова с одними и теми же результатами, и если происходит сбой, он возникает прямо там, где он был сломан (после исправления того, что сломало, конечно: - )).
Если ручная установка терпит неудачу на полпути, вам часто приходится отбрасывать все заново. Включите человеческий фактор, и вас может ждать катастрофа.
У меня нет ответа для мира Windows, но в Unix / Linux есть два отличных инструмента управления конфигурацией, разработанных для идемпотентности: Chef и Puppet. Хотя для некоторых вещей может потребоваться линейная установка, эти инструменты возобновят работу с того места, где остановились, если произойдет что-то неожиданное и что-то не было установлено полностью.
Я бы, вероятно, пошел по вики-пути: использовал вики-страницу для каждого вопроса конфигурации со ссылками на другие вики-страницы в зависимости от ответов. Последовательность установки будет представлена при переходе по соответствующим ссылкам. По мере возникновения новых проблем вы создаете новые страницы вики.
Затем, в зависимости от вики, вы сможете распечатать вики-страницы красивым способом и объединить их в желаемом порядке для различных установок сервера.
Почему бы просто не создать переносимую HTML-страницу со ссылками, которые можно открывать в браузере с помощью мастера навигации, IE «щелкните по этой ссылке, если у вас есть сервер Windows 2003» и т. Д. И т. Д.