У меня около 20 серверов Linux, конфигурацию которых мне нужно задокументировать. я делаю не означают подробную конфигурацию служб, а скорее учетные записи пользователей, базы данных, учетные записи баз данных, IP-адреса, физическое местоположение, порт SSH и т. д. и т. д. Я знаю, что все эти данные хранятся в файлах конфигурации, но я хочу все это централизовать. Я подумываю просто создать электронную таблицу для записи этих данных, но мне было интересно, есть ли что-то получше (возможно, небольшое приложение php / mysql), которое было бы более структурированным и полным, чем взломанная электронная таблица.
Что ты используешь?
Я предполагаю, что это долгая работа по документации, а не просто попытка сделать снимок текущей конфигурации.
Вики работает сейчас и может поддерживать ваше рассудок на некоторое время, но если ваша среда быстро изменится, у вас возникнут серьезные проблемы. Вам всегда нужно будет убедиться, что задания cron правильно написаны, выполняются своевременно, написаны для новых служб, совместимы с новыми версиями программного обеспечения и т. Д.
Рассмотрите возможность использования инструмента управления конфигурацией, например Кукольный или Cfengine. По крайней мере, поместите все собранные вами данные под контроль версий (например, Mercurial, git или Subversion).
Данные вашей конфигурации поступают отовсюду, а не централизованно. Вики всегда будет отставать от текущего состояния ваших машин. Вам необходимо централизовать данные конфигурации; заставьте его течь от центра к краям. Но это правда, что иногда вам нужно выйти и записать данные конфигурации. Cfengine может проводить аудит, Puppet может. Посмотрите на эту Википедию статья перечисление других менеджеров конфигурации.
Вы можете попробовать cfg2html, который выгружает вашу конфигурацию в HTML-файл, который затем вы можете получать через регулярные промежутки времени и обслуживать с центрального сервера.
В следующий раз, когда вы настроите машину, вы должны установить etckeeper на нем сначала. Таким образом вы будете вести журнал изменений конфигурации.
Какой дистрибутив вы используете? Есть несколько довольно удобных инструментов для управления конфигурациями и аудита, и они обычно зависят от диспетчера пакетов.
Я предлагаю просто создать вики для централизации информации и получить скрипт для редактирования страниц, чтобы файлы конфигурации автоматически обновлялись в вики через задание cron.
Если вы используете моин, вам следует проверить http://moinmo.in/ScriptMarket/PutPageScript .
Таким образом вы получите:
Централизованная документация.
Актуальная конфигурация системы.
История изменений конфигурации.
Электронная таблица - это, по сути, двухмерная сетка. Я считаю, что это не лучшая структура данных для таких вещей. Я предпочитаю деревья, поэтому использую контуры для управления деревьями.
Мой любимый Лео. Если вы хотите что-то, что будет работать на сервере без X, взгляните на HTB (кажется заброшенным), или в VOoM плагин vim.
Все эти инструменты используют простые текстовые файлы или XML в качестве базы данных. Вместе с контролем версий они образуют мощную комбинацию.
Другой альтернативой было бы ископаемое. Это распределенный инструмент контроля версий со встроенной вики и системой отслеживания заявок. Это единый двоичный файл, который также может работать как CGI и служить веб-интерфейсом, тем самым делая его доступным по сети. fossil в качестве мини-CMS для веб-сайта очень эффективен.
У нас 4 дата-центра в 3 странах. У нас более 500 производственных серверов. Как и некоторые люди, упомянутые выше, мы используем вики и прикрепляем файлы электронных таблиц в вики. Хорошая вещь в том, что когда вы обновляете свою электронную таблицу и снова прикрепляете ее к своей вики, она сохраняет историю этого. Например, кто обновил файл и когда.
Но мы также блокируем нашу вики, пользователи не могут видеть практически любую страницу, если они не вошли в систему. Кроме того, страница, на которой установлен файл электронной таблицы, контролируется с помощью тегов, которые используют расширения контроля доступа.
-N
Один из подходов - начать с файла конфигурации, который читается достаточно хорошо, чтобы его можно было преобразовать в работающую конфигурацию или документацию. Это пример того, как я управляю экземплярами PostgreSQL:
# writer : The master where connections are enabled
# queryN : Standby servers
databases:
localharvestdb:
role_assignment:
writer: 172.16.0.3
query: 172.16.0.2
major_version: 11
comments: |
The master uses a replication slot that must be created manually
pgprobe:
role_assignment:
writer: 172.16.0.5
major_version: 12
Затем напишите сценарий, который может читать эти данные и выдавать конфигурацию системы, и другой сценарий, который может форматировать краткую сводную документацию.
Два проекта, которые позволяют создавать собственную конфигурацию из скриптов: