Прокачуємо наш svn-сервер

У попередній статті я писав про те, як підняв SVN (Subversion) сервер, наскільки зручніше стала розробка веб-проектів! Але запарили, якщо чесно, кілька моментів. Зараз я їх вирішив, тому хочу поділитися інфою, може комусь знадобиться:

Проблеми, які мене компост раніше:

  1. Незрозуміло, як заливати зміни в каталог даних веб-сервера;
  2. Доводилося при кожному Ком-апдейте забивати свій пароль SSH;
  3. Доводилося вручну апдейт каталог даних веб-сервера (п.1);

Отже, як же я поборов ці проблеми:

Як не дивно, заливати зміни в каталог веб-сервера виявилося нескладно, за допомогою update. Створив скрипт з однією командою:

svn update / var / svn / repository_name / var / www / path

і зробив його виконуваним:

# Chmod u + x svn_up.sh

Щож, непогано. Тільки ось запитує пароль. Не можу зрозуміти чому, на кшталт локальний репозиторій. Та й власник файлів root. Доповнив скрипт командою

chown -R www-data: www-data / var / www / path

Тепер за частиною пароля. Звернемося до попередньої статті і згенерувати пари ключів (з локального хоста на Windows за допомогою утиліти puttygen.exe, і локально на сервері (як зробити аутентифікацію по ключу ssh). Додамо ці ключі в файл authorized_keys свого користувача ssh на сервері.

Тепер нам потрібно заливати коммітов з хоста Windows (клієнт TurtoiseSVN) і не отримувати набридливу вікно запиту пароля - для цього потрібно злегка модифікувати опції:

Прокачуємо наш svn-сервер

Вибираємо в якості SSH-клієнта виконуваний файл TurtoisePlink.exe (з каталогу), вказуємо йому опції -l ім'я користувача, і -i - приватний ключ, сгенеренной в puttygen.exe (у мене він зберігається на захищеному диску)

Залишилася остання проблема. Після коммітов файли заливаються в репозиторій, але не в каталог веб-сервера. Їх звідти потрібно забрати update-му. Можна повісити в крон це, але щоб не смикати планувальник кожну хвилину, я вирішив поколупати SVN і знайшов класну річ - hooks! Хукі - це щось на зразок переривань. Вони знаходяться в каталозі / var / svn / repo_name / hooks - по суті це є звичайні скрипти, які виконуються в різний момент.

Візьмемо файл post-commit.tmpl і перейменуємо його у просто post-commit (виконуватися після коммітов). Поміняємо вміст файлу на наше вміст, яким ми апдейт вручну.

Тепер при кожному Ком буде викликатися цей скрипт, який заливає зі сховищ змінену версію файлів в каталог веб-сервера, змінює права доступу! Все класно.

Вам так само сподобається: