Недавно я решил использовать систему контроля версий для обмена файлами конфигурации между разными установками Linux.
После прочтения еще одна ветка, которую я нашел по этой теме, Я планирую сделать это с помощью git.
Я бы положил свой /
под контролем версий с верхним уровнем .gitignore, установленным на *
и вручную добавить каждый файл конфигурации, который я хочу отслеживать (в основном файлы из /etc/…
).
Но чего я не понимаю, так это того, как я могу работать с разными домашними каталогами. Например, скажем, на машине А у меня /home/foo/.vimrc
и на машине B /home/bar/.vimrc
, как я могу заставить git хранить оба файла в одном репозитории управления версиями?
[Обновить]
Я ищу очень легкое решение, которое делает именно то, что мне нужно (например, без Puppet или Cfengine). Я думал о создании .config
папка в моем /home/whatever/
в котором я буду хранить все свои важные файлы конфигурации, используя репозиторий git. Затем очень простой скрипт создаст необходимые символические ссылки из моих /etc/
, ~/…
и так далее. Есть другие предложения?
Возможно, вы пытаетесь использовать систему контроля версий для управления конфигурацией. Это два совершенно разных вида деятельности. Я думаю, что выбранный вами подход вообще не будет хорошо масштабироваться и приведет к значительному разочарованию. Вам будет лучше найти решение для управления конфигурацией (есть довольно много хорошо продуманных вариантов: cfengine, puppet, chef и т. Д.), А затем попросить ваше решение для управления конфигурацией извлечь свои рецепты и / или файлы конфигурации из система контроля версий. Это даст вам тот же чистый эффект, который вы, кажется, ищете, но при этом будут иметь правильные инструменты, работающие над соответствующими частями проблемы.
Вы можете попробовать ansible. Другой сервер не нужен. Вы даже можете иметь основной репозиторий в одной или нескольких ваших системах и запускать ansible из каждой из них. И вы можете синхронизировать все файлы в каталогах конфигурации, даже если содержимое должно отличаться (например, / etc / hostname, / etc / mailname, ...)
Если вы действительно хотите использовать git: я не понимаю, почему вы хотите указать / в качестве базового пути для своего git. Почему бы вам не запустить несколько git-репозиториев.
Один из них станет вашим ДОМОМ. Так что не имеет значения, какое у вас имя пользователя. Возможно, вы могли бы использовать каталог ~ / .config для символической ссылки на файлы, которые на самом деле ожидаются в ~ /. Тогда вам даже не придется использовать .gitignore в этом репозитории.
Следующий будет предназначен исключительно для / etc.