The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Организация файлового хранилища на ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Организация файлового хранилища на ..."  +/
Сообщение от auto_tips (??) on 29-Май-11, 20:25 
В рамках проекта [[http://www.sparkleshare.org/ Sparkleshare]] развивается свободный движок для организации похожих на Dropbox online-хранилищ, непосредственное хранение данных в которых осуществляется в любом Git-репозитории. Использование Git позволяет задействовать элементы версионного контроля для отслеживания изменений в файлах, давая возможность отследить все изменения и при необходимости вернуться к состоянию определенного файла в прошлом.

С технической стороны SparkleShare является Git-клиентом, оптимизированным для хранения и обмена файлами. Программа может использоваться не только для хранения своих файлов, но и для организации обмена файлами с другими людьми или для обеспечения синхронизации данных между домашним и рабочим ПК. SparkleShare поддерживает шифрование хранимых данных, что позволяет использовать публичные Git-репозитории не опасаясь возможной утечки информации. Например, можно использовать Git-репозитории в публичных сервисах Gitorious и GitHub.

Рассмотрим процесс развертывания Sparkleshare-хранилища под управлением Fedora Linux с целью организации доступного дома и на работе хранилища. Для организации рабочего процесса создадим в домашней директории каталог Sparkleshare, в котором будем создавать подкаталоги, соответствующие текущим проектам. В качестве первичного хранилища будет использовать Git-репозиторий на собственном сервере, доступ к которому организован через SSH. Одновременно настроим на сервере доступность сохраняемых файлов через web, разместив клон репозитория в директории ~/public_html.


++ Установка Sparkleshare на локальной клиентской машине.

Добавляем соответствующий YUM-репозиторий, в котором содержатся готовые пакеты с Sparkleshare:

    cd /etc/yum.repos.d
    sudo curl -O http://repos.fedorapeople.org/repos/alexh/sparkleshare/fedor...

Устанавливаем Sparkleshare

    sudo yum install -y sparkleshare ssh-askpass

Удаляем пакет nautilus-python, так как иначе при работе Sparkleshare наблюдается крах Nautilus.

    sudo yum remove -y nautilus-python

PS. Пользователи Ubuntu могут загрузить  Sparkleshare из [[https://launchpad.net/~terminus/+archive/ppa/+packages PPA-репозитория]]:

   sudo add-apt-repository ppa:pdffs/sparkleshare
   sudo apt-get update
   sudp apt-get install sparkleshare

++ Настройка Git-репозитория

Создаем Git-репозиторий на внешнем сервере, который будет использован в качестве первичного хранилища:

   git init --bare repo.git

Для работы на сервере должны быть установлены пакеты с git и openssh-server.

Проводим первичное клонирование репозитория в директорию ~/public_html, чтобы файлы были доступны через web:

   cd ~/public_html
   git clone repo.git
   cd repo

Создаем тестовый файл:

   echo 'Fedora 15 rocks!' >> test.txt

Добавляем файл в Git и принимаем изменения.

   git add test.txt
   git commit test.txt -m 'initial commit2'

Создаем начальную ветку:

   git push origin master

++ Подключаем свои локальные машины к репозиторию

На локальной рабочей машине останавливаем рабочий процесс Sparkleshare и клонируем созданный на прошлом шаге репозиторий

   sparkleshare stop

   cd ~/SparkleShare
   git clone логин@хост:/home/логин/repo.git

Проверяем содержимое:

   cd ~/SparkleShare/repo
   ls

Меняем содержимое тестового файла

   echo 'Pandas rule.' >> test.txt;

Применяем изменения:

   git commit -a -m 'panda PSA'
   git push


На удаленном сервере, где создан базовый Git-репозиторий принимаем изменения:

   cd ~/public_html/repo
   git pull

Проверяем, изменилось ли содержимое test.txt:

   cat test.txt

Если все работает нормально, то запускаем на локальной машине Sparkleshare которые возьмет в свои руки выполнение рутинных операций по отслеживанию изменений и синхронизации данных на внешний сервер.

   sparkleshare start

Настраиваем автозапуск Sparkleshare в GNOME:

   cp /usr/share/applications/sparkleshare.desktop ~/.config/autostart

Заходим в директорию с репозиторием SparkleShare

   cd ~/SparkleShare/repo

и создаем там новый тестовый файл:

   echo '42' >> theanswer.txt

На удаленном сервере клонируем репозиторий и убеждаемся, что новый файл автоматически был помещен в Git:

    cd ~/public_html/repo
    git pull
    ls

Все работает.


++ Создаем автоматически обновляемое зеркало для просмотра репозитория из web.

Настроим автоматическое клонирование репозитория удаленном сервере, с которого будет осуществлена раздача файлов через Web. Для работы нам понадобиться настроить удаленный вход со второй машины на первую по SSH по ключам, без ввода пароля. Инструкцию по настройке можно найти [[http://www.opennet.dev/tips/284_ssh_auth_user.shtml здесь]].

На удаленном сервере переходим в базовую директорию с Git-репозиторием (не клоном)

    cd ~/git.repo/hooks

Добавляем скрипт, который будет срабатывать при добавлении файлов в репозиторий. В этом скрипте автоматически будет выполнять локальное клонирование репозитория для его видимости в web.  

Создадим скрипт post-receive в директории ~/git.repo/hooks (не забудьте подставить реальное значение вместо "логин"):

   #!/bin/sh

   while read oldrev newrev refname
   do
      true
   done
   cd /home/user/public_html/repo
   GIT_DIR=/home/логин/public_html/repo/.git git pull

Проверим, создав на локальной системе третий тестовый файл:

   cd ~/SparkleShare/repo
   echo 'Fedora 15' >> latestfedora.txt


Переходим на удаленном сервере в директорию с клоном репозитория для web и проверяем появился ли новый файл:

   cd ~/public_html/repo
   ls

Подсказки по настройке работы Sparkleshare c Github и Gitorious можно найти на странице http://sparkleshare.org/help/


URL: https://mairin.wordpress.com/2011/05/25/fedora-sparkleshare-.../
Обсуждается: http://www.opennet.dev/tips/info/2582.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Организация файлового хранилища на базе Git-репозитория при ..."  +/
Сообщение от Аноним (??) on 29-Май-11, 20:25 
Очень не хватает клиента под виндовс. Вроде на моно, должны быстро сдлеать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Организация файлового хранилища на базе Git-репозитория при ..."  +/
Сообщение от artem.stecenko (ok) on 29-Май-11, 21:56 
TortoiseGit не катит?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Организация файлового хранилища на базе Git-репозитория при ..."  +/
Сообщение от Аноним (??) on 29-Май-11, 22:30 
Надо попробовать. Оно обратно совместимо с гит? Те никакие метадаты свои не пишет, просто морда для него? (я про спарклшар)
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Организация файлового хранилища на базе Git-репозитория при ..."  +/
Сообщение от Crazy Alex (??) on 30-Май-11, 20:41 
На Mono??? Может, я чего-то не понимаю в этой жизни, но с какого перепугу там нужно что-то боьшее, чем FUSE-base custom FS на две-три тысячи строк на C? В крайнем случае, пара скриптов, встраиваемый в контекстное меню файлового менеджера (хотя средствами FUSE явно можно обойтись).

Хотя с клиентом по windows, конечно, в таком случае будет тяжко. И поделом :-)

Или они там протокол Git с нуля реализовали? Тогда - точно редкостный идиотизм.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Организация файлового хранилища на базе Git-репозитория при ..."  +/
Сообщение от Аноним (??) on 31-Май-11, 17:58 
https://github.com/hbons/SparkleShare/graphs/languages

Ну может нравится им си-шарп :)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Организация файлового хранилища на базе Git-репозитория при ..."  +/
Сообщение от Аноним email(??) on 30-Мрт-12, 16:00 
Грандиозно! Обязательно возьму на заметку и попробую так как функцианальности DropBox мне явно уже не хватает. Спасибо.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру