Доставка файлов из VCS на shared-хостинг с помощью sshfs

01 октября 2009, обновлена 27 октября 2009

В общем, понадобится sshfs – штука для монтирования ssh-каталогов в локальные. Конечно, она есть в репозитариях Ubuntu.

В смонтированном таким образом каталоге можно выполнять практически любые утилиты, имеющиеся на локальной машине. Например, git pull.

# Монтируем каталог
mkdir ssh-export
sshfs -o workaround=rename the.deploy.server:/the/deploy/path ssh-export
cd ssh-export
# Обновляем
git pull
# Отмонтировываем
cd ..
fusermount -u ssh-export
rm -rf ssh-export

Причина использования workaround=rename описана в Git FAQ.

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

Еще я пробовал использовать git через FTP с помощью curlftpfs, но, увы, git не хочет работать без возможности залочить файл.

Другие способы обойтись без системы контроля версий – в статье «Грамотное разворачивание сайта без VCS».



Шесть комментариев. Напиши еще один
  1. 5005dfcbb123e017638095c1e1b0e8af # 01 октября 2009 point (wdev.tk) написал:

    sshfs позволяет сжимать трафик с помощью -C флага. Но обычно от него пользы маловато. При перекачке, например картинок, он лишь создаст нагрузку на клиента и сервер.

    curlftpfs вообще глючная штука.

    Интересно, а что мешало воспользоваться модным нынче Capistrano для развертывания ? Насколько я понимаю, проект на РоР ?

    1. 777894ea5153122bfa6b83f5bbf23622 # 02 октября 2009 Леонид Шевцов (автор) написал:

      Я в предыдущей статье использовал Capistrano. Его тоже надо допиливать, и в данном случае проще написать баш-скрипт из пяти строчек.

  2. 82896ae7662ba5391678578911d5a9b4 # 27 октября 2009 mikhailov (railsgeek.com) написал:

    sshfs штука весьма полезная (спасибо за обзор), но какое отношение к этому имеет процесс развертывания(deploy)?
    вы же не просто копируете файлы на продакшн сервер, верно?

    1. 777894ea5153122bfa6b83f5bbf23622 # 27 октября 2009 Леонид Шевцов (автор) написал:

      Да, но проблема была именно с доставанием файлов из git на shared-хостинг.

  3. 82896ae7662ba5391678578911d5a9b4 # 27 октября 2009 mikhailov (railsgeek.com) написал:

    если есть ssh, то и капистрано будет работать.
    с каким хостером возникли проблемы, если не секрет?

    1. 777894ea5153122bfa6b83f5bbf23622 # 27 октября 2009 Леонид Шевцов (автор) написал:

      Хостер hostpro.ua. Капистрано не будет работать по-простому, если на сервере нет git – я об этой ситуации рассказывал <a href=«http://leonid.shevtsov.me/03-09-2009/gramotnoe-razvorachivanie-sajta-bez-vcs/» rel=«nofollow»>тут</a>.

(нужна разметка?)

  • **жирный**
  • > цитата

отменить