понедельник, 14 ноября 2016 г.

syncthing

Придумал, куда можно применить syncthing - буду синхронизировать папку с образами DVD на рабочем компьютере и на серверах-виртуализаторах.



Рабочий компьютер под убунтой 16.10, syncthing будет запускаться только когда я на нём работаю, так что всё просто, всё по мурзилке с их же сайта:

# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

# Add the "release" channel to your APT sources:
echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing.list

# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing
 
И автостарт при логине по их же рекомендациям:

  1. Launch the program ‘Startup Applications’.
  2. Click ‘Add’.
  3. Fill out the form:
    • Name: Syncthing
    • Command: /usr/bin/syncthing -no-browser -home="/home/tuggrik/.config/syncthing"
На серверах немного сложнее - хочется, чтобы сервис стартовал при запуске компьютера и запускался не от рута. На серверах, кстати, Centos 6 и 7 версий, syncthing решил ставить в /opt и обновлять руками при необходимости.


1. Скачаем и распакуем программу в  /opt/syncthing

2. Создаём специального юзера
adduser --system --home /opt/syncthing synct
chown -R synct.synct /opt/syncthing


3. и готовим каталог для синхронизации
mkdir /opt/iso
chgrp -R synct /opt/iso
chmod -R g+w /opt/iso


4a. в случае с Centos 7 и systemd соответственно делаем по инструкции:
  • копируем /opt/syncthing/etc/linux-systemd/system/syncthing@.service в /etc/systemd/system
  • systemctl enable syncthing@synct.service
    управление сервисом путём
    systemctl start|stop|status syncthing@synct.service
4б. в случае Centos 6 нашёлся скрипт для upstart, который пришлось немного поправить, чтобы запускался

cat /etc/init/syncthing.conf
description "Syncthing P2P sync service"

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

env STNORESTART=yes
env HOME=/opt/syncthing

script
    /bin/su synct -c "/opt/syncthing/syncthing -no-browser -home=/opt/syncthing/.config/syncthing/"
end script

respawn
после чего

initctl reload-configuration

управление сервисом с помощью
initctl start|stop|status syncthing

5а. чтобы было удобно управлять сервисами syncthing, исправляем строку в
/opt/syncthing/.config/syncthing/config.xml

 
  
0.0.0.0:8384
 
 устанавливаем в веб-интерфейсе логин и пароль для него
 
. либо можно делать при необходимости туннель средствами ssh
 
ssh -L 9090:127.0.0.1:8384 root@server
 
и рулить через браузер по адресу http://127.0.0.1:9090