Как лучше всего сравнить конфигурацию ОС двух (или более) серверов RHEL 5.X? Есть ли для этого какие-нибудь инструменты / пакеты? Обратите внимание, я в основном ищу настраиваемые ОС (параметры ядра и т. Д.).
Я хотел бы добавить причину, по которой мы хотим это сделать:
У нас большой размер zLinux, и мы хотели бы сравнить нашу «стандартную сборку» со сборкой дистрибутива, предоставляемого поставщиком. zLinux - это в некотором роде специализированная архитектура, и ее рекомендуемые настройки часто отличаются от настроек x86_64.
Если у нас есть высокодоступный кластер серверов, чтобы сравнить / убедиться, что конфигурации ОС между ними согласованы.
Примечание: я не ищу централизованного решения, такого как марионетка или повар. Я согласен, что это оптимальные решения, безусловно, в дорожной карте, но не то, что я ищу прямо сейчас :)
Смонтируйте корневые разделы ОС в / mnt / osA и / mnt / osB
diff -rq /mnt/osA /mnt/osB
даст вам результат, аналогичный Solaris ' lucompare
Затем вы можете внимательно изучить наиболее важные файлы, такие как sysctl.conf, httpd.conf и т. Д.
И как я мог забыть Чертеж! С Blueprint вы можете работать с системой и получить рецепт того, что изменилось по сравнению с установкой по умолчанию.
Лучше всего централизованное решение, потому что «конфигурации ОС» не существует. Linux не знает реестра, поэтому конфигурация распространяется по всей файловой системе. Из-за этого довольно сложно делать то, что вы хотите.
Тем не менее, вы можете просто скопировать каталог /etc
всех серверов в одном месте, а затем сравните их с diff -uNr
Это должно дать вам 90% конфигурации, но вы также получите много ложных отрицаний.
Это не совсем исчерпывающая информация, но rpm может обеспечить хорошее начало. Вы можете получить список установленных пакетов:
rpm -qa > pkgs.txt
Используя стандартные инструменты UNIX, такие как wc и cmp, вы можете определить, какие пакеты есть / нет на этих двух машинах.
После этого вы можете использовать опцию --verify, чтобы увидеть, отличается ли какой-либо из файлов конфигурации:
об / мин - проверить cat pkgs.txt
Увидеть страница руководства rpm для получения информации об информации, сообщаемой флагом --verify.
Если ваши программы и инструменты не соответствуют предлагаемый макет каталога и вся конфигурация попадает в /etc
, то нет простого способа "различать" установки вашей ОС.
sysctl может быть вашим другом. Что-то вроде:
for host in foo.example.com bar.example.com ; do
ssh root@$host sysctl -a > $host.conf
done
И тогда вы различаете. :)