Чтобы управлять конфигурацией сервера, я держу некоторые конфигурационные файлы (расположенные в / etc) под контролем версий (в домашней папке), а затем создаю символические ссылки на них из их / etc мест:
/etc/someprog/c.conf -> /home/ubuntu/etc-config/someprog/c.conf
Это разумный подход? Есть ли потенциальные недостатки?
Я заметил, что вы добавили git
как тег - это звучит как /home/ubuntu/etc-config
это репозиторий git со всеми вашими конфигами. В этом случае похоже, что вы пытаетесь управлять файлами конфигурации из центра. В таком случае я настоятельно рекомендую найти реальное решение.
Взгляните на что-то вроде puppet, chef, cfengine или любого из основных механизмов управления конфигурацией. Многие из них бесплатны и имеют открытый исходный код, широко используются и обычно очень простота настройки и управления. Если вместо этого вы пытаетесь использовать «легкий» метод, вы, скорее всего, пожалеете об этом позже.
Если они находятся в разных файловых системах, это очень плохая идея. Если другая файловая система не монтируется, у вас будут проблемы.
Я бы не стал использовать такие символические ссылки. Если вы разорвете ссылку (по любому количеству причин), вы нарушите config. Более уместно указать server / daemon / app на фактическое расположение файла конфигурации в сценарии инициализации.
если ты просто хотите контроль версий, посмотрите RCS. На самом деле я обнаружил, что git - плохое решение для настройки автономного сервера (без блокировки, без управления разрешениями, весь каталог становится репо). Если вам нужно что-то более надежное для управления конфигурацией, я настоятельно рекомендую взглянуть на Puppet, Chef или (ах!) CFEngine.