4

Наличие конфигурации системы, представленной ее текущим состоянием, рискованно, неэффективно и непрозрачно. В какой-то момент вы можете остаться с неподдерживаемой системой и без пути обновления. Затем настройка новой системы, совместимой со старой, является процессом или методом проб и ошибок. Кроме того, если в какой-то момент система повреждена, единственный вариант - вернуться к самой последней полной резервной копии и попытаться вспомнить, какие изменения произошли с этого момента. Кроме того, единственный способ создать систему, совместимую с оригиналом, - выполнить полный дамп / восстановление. Наконец, в такой установке нет способа узнать, как вы решили конкретную проблему; единственное, что вы можете сделать, это посмотреть на соответствующие файлы конфигурации и попытаться угадать, что вы изменили для достижения желаемого эффекта.

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

Еще одна вещь, которую я попробовал, это поместить файлы конфигурации /etc в систему контроля версий с помощью git. Это помогает мне автоматически документировать изменения, а также применять их при чистой настройке. Но это не без проблем: git должен работать под sudo, пароли и закрытые ключи могут храниться в хранилище, установленные пакеты не могут быть осмысленно отслежены, и git подойдет, если я попытаюсь распространить этот подход на все системы. каталоги.

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

Есть ли какие-то лучшие методы или инструменты, которые мне не хватает?

3 ответа3

5

Сделайте себе (и своим близким) услугу и выйдите из ручной настройки системы как можно скорее!

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

Большие имена в этой области (в хронологическом порядке):

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

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

Первоначальная настройка может быть немного сложной ... особенно для таких людей, как мы, которые потратили годы на ручное управление. Но это определенно окупается в конце концов!

3

Что касается инструментов, вы можете взглянуть на эту страницу, которая посвящена автоматизации системного администрирования с использованием инструментов управления конфигурацией с открытым исходным кодом (конференция USENIX 2010 в Бостоне, где проходил первый Саммит по управлению конфигурацией):

Страница, связанная с Википедией , также полезна.

Надеюсь, что это поможет

0

Большие ресурсы, упомянутые выше!

Netdisco - для управления и обнаружения сетей на основе SNMP, CDP, LLDP, серверная часть Postgres http://www.netdisco.org/

а также

Неди, снова пользуясь SNMP, CDP ... http://www.nedi.ch/about/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .