Задача:
- Мини-офис (порядка 15 ± 5 пользователей)
- Нет администратора сети
- Нет общего файлового сервера
- Часть работников работает дома
- Основная масса компьютеров это Ubuntu, ну и другая ясно что.
И важно, чтобы у всех были следующие файловые ресурсы:
- DOCS входящие / исходящие / приказы и т.д.
- SALES промо / клиенты / продажи
- WORK проекты / работы
- FINS финансовые делишки
- HR кадровые
- TEMP помойка
- ZIP для схрона чего-то, но общего доступа
Если перед вами стоит такая задача, читайте дальше…
Из этого видно, что есть несколько групп пользователей. Кто-то имеет всё, кто-то эту часть, кто-то другую, и что-то пересекается.
Поиск решения
Решением этой задачи оказалось использование Synсthing (Thing (англ.) = вещица). Конечно, концепция общего хранения должна исходить от одного пользователя, да и доступ к информации у него полный. Конечно это не сильно продвинутый способ распределения прав доступа, но выкрутиться в небольшом коллективе с этим решением можно.
Почему Synсthing, а не BtSync или DropBox? DropBox был первым, когда нас было двое-трое, потом был BtSync, когда кто-то уходил пришлось перейти на Synсthing.
Для нас были очевидные положительные качества в пользу Synсthing.
качество | syncthing | btsync | dropbox |
---|---|---|---|
открытый код | да | нет | нет |
цена | бесплатно | бесплатно (доп.опции платно) | бесплатно 2Гб (больше — платно) |
отключить пользователя | можно | нет | можно |
открытый код | да | нет | нет |
установка/настройка | сложно/гибкие | нормально/менее гибкие | просто/ограниченно |
Как сделать
Здесь, на хабре, есть статья как устанавливать и настраивать syncthing, но мы всё делали не совсем так, как там написано, но в общем похоже.
На Ubuntu ставим так
sudo apt-get install curl
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing-release.list
sudo apt-get update
sudo apt-get install syncthing
Чтобы запускался автоматом для одного пользователя %username% сделали файл:
sudo nano /etc/init/syncthing.conf
В него написали (%username% замените на его имя):
description "Syncthing P2P sync service"
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
env STNORESTART=yes
env HOME=/home/%username%
setuid "%username%"
setgid "%username%"
exec /usr/bin/syncthing
respawn
На Windows так
- берём тут github.com/canton7/SyncTrayzor
- ставим как обычно и всё работает :)
Настройки
- Выбираем свой комп главным
- Управляем через веб-интерфейс по-умолчанию с адреса http://127.0.0.1:8384
- Устанавливаем на каждом компьютере Syncthing
- Чтобы управлять каждым компьютером с одного места, то у каждого в настройках в параметрах Адрес панели управления укажите 0.0.0.0:8384 и это позволит управлять по сетевому адресу компьютера (например: 192.168.1.2:8384)
- Устанавливаем имя админа и пароль
- Даём внятное Имя устройству, чтобы потом не путаться кто есть кто
- Сразу удаляем синхронизируемый ресурс, который по-умолчанию в Syncthing настроен
- саму папку Sync физически не удаляем, которая создана по-умолчанию при установке, а в ней и размещаем будущее каталогизированное хранилище (и это надо делать на каждом устройстве):
- MYFIRM.DOCS
- MYFIRM.SALES
- MYFIRM.WORK
- MYFIRM.FINS
- MYFIRM.HR
- MYFIRM.TEMP
- MYFIRM.ZIP
- Теперь передайте на главный комп ID с каждого устройства и добавьте все Устройства на главном
- На главном открывайте настройки синхронизируемых ресурсов (папки) и в настройках отмечайте с каким устройством можно синхронизироваться
Итог
Ну всё, думаю, что этого короткого описания концепции и настройки общего файлового обмена/хранения достаточно.
- Работает без проблем если имена файлов присваиваются по сокращённой схеме именования, то есть как на Windows (просто у Linux на файловой системе EXT4 больше возможностей именования файлов, но это не переваривает NTFS у Windows).
- Клиенты Syncthing обновляются нормально и периодически.
- Есть много интересных фишек, но это я буду расписывать если будет здоровый интерес у местной аудитории.
Ссылки по теме
- github проекта https://github.com/syncthing
- официальный сайт https://syncthing.net
- сборка и репазитарий для Ubuntu http://apt.syncthing.net
- сборка для Windows https://github.com/canton7/SyncTrayzor