Назад | Перейти на главную страницу

Как избежать рассинхронизации документации по серверу с фактической настройкой?

У нас есть достаточно хорошая документация для нашей среды (в формате AsciiDoc), которая недавно позволила другому человеку воссоздать всю установку с нуля менее чем за 30 минут.
Однако я заметил, что после первоначальной настройки легко случаются небольшие изменения, вносимые в систему (скажем: inetd отключается, мой сервер IMAP прослушивает дополнительный порт для соединений ManageSieve, в конфигурацию exim добавляется новый маршрутизатор). не попадают в документацию сразу (если вообще).

Моя идея заключалась в том, чтобы избежать этой проблемы путем (частично?) Создания документации из файлов конфигурации и комментариев к ним - одним из способов реализации этого может быть размещение /etc и /usr/local/etc в какую-нибудь систему управления исходным кодом (скажем, - git), а затем запустите сценарий, который восстанавливает документацию при каждой фиксации. Однако я не уверен, будет ли это чрезмерным и / или слишком сложным для правильного выполнения (в конце концов, мне нужны не полные копии исходных файлов в моей документации, а просто различия).

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

Если вы администрируете только одну или две небольшие системы, установка большой системы управления конфигурацией, такой как puppet или chef, кажется излишним. (Хотя, если вы планируете иметь больше систем в будущем, сделайте это сейчас!)

Для такой небольшой настройки я бы рекомендовал использовать что-то вроде etckeeper, программа, которая ставит /etc в git репозиторий и предоставляет несколько полезных функций, таких как автоматическая фиксация при установке, обновлении или удалении пакета.

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

  • Используйте инструмент управления конфигурацией (например, кукольный или повар).
  • Храните свою конфигурацию в режиме контролируемого изменения. (лайк мерзавец или SVN)
  • Убедитесь, что конфигурация доступна для чтения / людьми (например, простой текст, доступный для поиска БД)

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

Внешняя документация все еще нуждается в обновлении, но она становится очень высокоуровневой с указателями на «развернуть x» или «развернуть y» вместо длинных списков команд / файлов. Это дополнительно снижает частоту и упрощает внесение изменений в документацию, что также означает, что это с большей вероятностью будет выполнено.

Также перед тем, как пойти домой, заварить марионетку, наверное, кто-то уже написано что-то управлять тем, что вы хотите.

Вам просто нужно обновлять документацию каждый раз, когда вы вносите изменения в систему. AKA Change Management.

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

Я использовал html или какая-то вики, чтобы отслеживать все мои конфиги. Сейчас я работаю в магазине Windows с (содрогаться) SharePoint, поэтому теперь я использую «шаблоны» документов Word, которые я создал, чтобы отслеживать каждую имеющуюся у меня систему и каждое изменение конфигурации, которое я вношу, что не так плохо, как кажется, учитывая, что многие системы являются просто копиями других. все это можно объединить в один документ. (И я храню локальные копии всех своих материалов, документирующих мой жесткий диск, на самом деле организованные разумным образом, в дополнение к тому, что помещаю их в неорганизованную кучу, которая является чьим-либо сайтом SharePoint.)

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