среда, 27 мая 2009 г.

Итак, обобщаю опыт использования svn для синхронизации конфигов.

Шаг 1. Сделать хранилище.
SVN превращает в хранилище любую директорию по команде

svnadmin create /директория

По сути в "директории" будет создана база данных куда будет писаться вся история для путей расположенных ниже "директории". Следовательно, разделение проектов делается примерно так

svnadmin create /svn/host1
svnadmin create /svn/host2
...

Теперь у нас есть хранилище ... в него можно складывать фаилы или вынимать.

Шаг 2. Положить дерево в хранилище

void@host1$ svn import -m "etc init" /etc file://svn/host1/

хорошие новости - можно складывать на удаленную машину

void@host1$ svn import -m "etc init" /etc svn+ssh://base/svn/host1/
где base имя удаленного хоста, /svn папка доступная на запись, /svn/host1 хранилище svn, /svn/host1/etc в какую папку положить

плохие новости - нельзя складывать один файл - только папки.

Шаг 3. Достать дерево из хранилища

void@host2$ cd /
void@host2$ svn co svn+ssh://base/svn/host1/etc

опять же файлы получать нельзя - только целиком дерево.


Вывод: Обновления и история изменений это хорошо, это правильно, это здорово. Но пока ненравится.

4 комментария:

morbo комментирует...

Есть какой-то специальный пакет под Debian именно для этой задачи. Его плюсы в том, что он проинтегрирован с apt и прочая-прочая. При установке или удалении (purge) пакета, apt вызывает скрипт, который вносит изменения в /etc через систему svn.

Как называется - не помню. Не было интересно, поскольку конфиги меняю не часто, а успешные конфигурации фиксирую в блоге.

Unknown комментирует...

А вот это дело мне нужно для работы в нескольких линухах и куче фрях. Фишка в том, что конфиги меняются админами по нескольку раз в день и если и оставляют комменты в коде то лучше бы их небыло. А так видно хотя бы кто и что изменил, зачем изменил немогу заставить писать, да и сформулировать они этого внятно немогут ))

morbo комментирует...

Нашёл. Только не svn, а git. Называется etcgit.

Ещё есть etckeeper: http://romanvbabenko.blogspot.com/2008/09/etckeeper.html

Unknown комментирует...

Вот за etcgit наводку большое спасибо. Как раз изучал возможность использования git в этих целях.