Уголок СУ-11 на просторах вселенной

четверг, 22 декабря 2011 г.

Как я использую SVN для хранения конфигов серверов

Subversion установил через yum из штатного репа, да это все на CentOS5

1. Создается репозиторий командой
cd /mnt/storage/svn
(или в любой другой папке)
svnadmin create servers
(в нашем случае репозиторий называется servers)

2. Далее в файле конфигурации службы svn нужно прописать параметр к папке хранилищю репозиториев
cat /etc/sysconfig/svnserve
OPTIONS="--root=/home/storage/svn"

3. Запуск службы
chkconfig svnserve on
service svnserve start

4. Настраиваем права на репозиторий
cat /home/storage/svn/servers/conf/svnserve.conf
password-db = passwd
anon-access = none
auth-access = write
cat /home/storage/svn/servers/conf/passwd
[users]
root = тут_пароль

5. По скольку репозиторий в нашем случае запароленый, для каждой команды svn необходимо указывать логин и пароль
--username=root --password=тут_пароль
При первой команде svn предложит сохранить пароль в домашней папке - соглашаемся, в будущем набирать пароль больше не придется.

6. Настраиваем глобальный игнор лист в личном конфиге svn'а. Нужно для того, чтобы он не коммитил логи, темпы и прочие не нужные файлы.
cat /root/.subversion/config
[miscellany]
global-ignores = .o *.lo *.la *.al .libs *.so *.so.[0-9] .a *.pyc *.pyo *.rej *~ ## .#* .*.swp .DS_Store *.[Ll][Oo][Gg] *.[Tt][Mm][Pp]

7. Прописываем переменную для дефолтного редактора текстовых комментариев к изменениям в svn
cat /root/.bash_profile
export SVN_EDITOR=vim
(можно хоть mcedit прописать)

8. Создаем нужную структуру папок внутри репозитория
svn mkdir -m "making dir" svn://localhost/servers/srv-file
svn mkdir -m "making dir" svn://localhost/servers/srv-file/etc
как видим, пароль набирать больше не требуется

9. Делаем чекаут (выгрузку) пустой папки /etc из репозитория на нашу файловую систему. Нужно, чтобы наш каталог с конфигами стал рабочей копией svn'a.
Кстати после этой операции в папке появятся файлы .svn/бла-бла-бла
cd /
svn checkout --force svn://localhost/servers/srv-file/ .

10. Добвляем имеющиеся файлы в рабочую копию
svn add --force ./

11. Коммитим, т.е. заносим все изменения в репозиторий
svn c -m "first commit"

12. Далее SVN был покдлючен в качестве хранилища к Redmine и наступило полное админское счастье