Подтвердить что ты не робот

Лучший способ сохранить файлы конфигурации под SVN?

Каков наилучший способ сохранить файлы конфигурации (например, httpd.conf, my.cnf,.bashrc...) под управлением версиями? В дополнение к преимуществам управления версиями я хочу, чтобы решение работало как резервное копирование, так что я могу принести новый сервер и проверить (или экспортировать) файлы конфигурации из SVN напрямую

Хорошим моментом будет сохранение исходного пути файла config.

4b9b3361

Ответ 1

Я ревизор-контроль моих файлов конфигурации, но я использую git вместо svn (что проще, когда у вас несколько компьютеров), У меня есть bash script (называемый install.sh), также находящийся в репозитории, который либо копирует, либо символизирует файлы в соответствующее место на машине.

Итак, если мне нужно настроить новую машину, я просто создаю клон git репозитория (что эквивалентно проверке svn) и запустите мой install.sh, чтобы настроить мои файлы конфигурации в соответствующем местах. Если install.sh around означает, что я также сохраняю исходный путь к файлам конфигурационных файлов, как вы указали, вы хотели бы.

Ответ 2

Это то, что я реализовал:

У меня есть сервер, который выполняет rsync всех конфигураций в один каталог (например/data/configs/hostname/{и т.д., httpd}.

У меня rsync работает каждый час, чтобы перенести изменения. как только rsync будет завершен, есть svnautocommit script, который выполняет автообновление изменений. Таким образом, я могу вернуться к любому изменению или любой версии, которую я хочу.

Возможно, вам потребуется запланировать структуру каталогов SVN на основе ваших требований.

Ответ 3

Я делаю это для нескольких машин, начиная от старых ящиков Solaris 8 и заканчивая Mac OS X, и у меня очень простой макет:

В моем репозитории у меня есть следующее:

<root>/common
  /.emacs.d
  /.bash_common
  /scripts # platform-independent binary tools

<root>/linux
  .bashrc
  .emacs
  ...

<root>/solaris
  .bashrc
  .emacs
  ...

<root>/osx
  .bashrc
  .emacs
  ...

Каждый из homedirs ОС имеет ссылку svn: externals на .emacs.d,.bash_common и скрипты, поэтому они не дублируются.

Кроме того, у меня есть .bash_hostconfig в каталогах linux и solaris с настройкой пути к конкретному хосту и тому подобное, потому что у меня совсем другая настройка на работе, чем у меня дома (FC5-8 и RHEL3-5, в зависимости от где я есть).

Итак, между этими вещами у меня есть довольно простой процесс для запуска и запуска на новом компьютере: я просто проверяю платформу/$во временный каталог, а затем перезаписываю все в $HOME этими файлами. Мне не нужно сохранять исходный путь, потому что он всегда относится к $HOME таким образом.

Ответ 4

Мы используем CVS для хранения конфигураций в структуре каталога, которая является как можно более плоской. Этот метод легко распространяется на SVN.

Затем мы создаем Makefile, чтобы использовать экспорт CVS для:

  • создать копию структуры каталога CVS без компонентов CVS,
  • создать структуру каталогов, необходимую для целевой машины в вашем локальном каталоге, как если бы вы были в корневом каталоге на целевой машине, например.. /my _cvs_dir/etc/.. и./my_cvs_dir/usr/local/newapp/..,
  • скопировать файлы из структуры CVS в структуру целевой директории,
  • создать tarball для целевой структуры каталогов и
  • Разверните tarball на целевой машине.

У нас также есть эти tarballs, созданные в возрастающей специализации, например. Sol10, Apache, конкретные приложения и т.д.

НТН

веселит,

Роб

Ответ 5

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

И это дерево можно было бы проверить в любом VCS, который вам нравится.

Для развертывания вы можете написать оболочку script или такую ​​вещь, которая инициализирует все, чтобы использовать ваше дерево файлов конфигурации.

Ответ 6

Как вы хотите, центральный магазин в любом случае, вы можете пойти на что-то более сложное, например Slack, Вы управляете и управляете версиями файлов на push-сервере, а затем rsync его клиентам. объяснение подстроек содержит несколько примеров того, как структурировать дерево.