Visualiser une révision

[Tuto/HowTo] Partager le dossier /var/www/ entre vos différents serveur web apache2 via syncthing

voxdemonix : révision n°2 (13 septembre 2018 16:19:15)

Mise en place
=============


1. [Installez Syncthing en suivant ce lien](https://www.0rion.netlib.re/forum4/viewtopic.php?f=93&t=281&p=705)

1. Créez user dédié avec un mot de passe super solide (pas besoin de s'en rappeler)

```
adduser syncthing
```

1. Réglez les droits du nouvel utilisateur.

 * Placez l'utilisateur _syncthing_ dans le groupe _www-data_.

```
usermod -a -g www-data syncthing
```

1. Accordez les permissions sur le dossier. 


```
( chown www-data:www-data -R /var/www/html/ ; chmod 2770 -R /var/www/html/ )
```

1. Éditez _/lib/systemd/system/syncthing@.service_

```
sudo nano /lib/systemd/system/syncthing@.service
```

1. Dans la section ~~_[Service]~~_, ajoutez _UMask=0007_ puis, à la ligne suivante, ajoutez _GOMAXPROCS=1_ et enfin à la ligne _ExecStart=_ ajoutez _-home="/home/syncthing/.config/syncthing"_. Comme suit : 

```
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0 -home="/home/syncthing/.config/syncthing"
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
UMask=0007
GOMAXPROCS=1

[Install]
WantedBy=multi-user.target
```

1. Créez un script de démarrage qui va nous permettre de stopper les services pendant que syncthing synchronise les fichiers.

```
sudo nano waitSynchro.bash
```

1. Collez dedans le code suivant : 

```
#!/bin/bash
# INFOS : https://www.0rion.netlib.re/forum4/viewtopic.php?f=107&t=661#p1603
# This script is used when the machine boot. The cluster service are stop during some second for wait the synchronisation.
# Ce script est utilisé au démarrage de la machine. Il coupe les services du cluster afin d'attendre la synchronisation.
		# ADD HERE ALL SERVICES YOU NEED TO STOP (ex HaProxy, Apache2, etc)
service apache2 stop
sleep 60
		#RESTART HERE ALL SERVICES YOU HAVED STOP PREVIOUSLY
service apache2 start
```

1. Accordez droit d’exécution à nos scripts

```
chmod +x /opt/scripts/*
```

1. L'ajouter au boot du système en éditant cron en administrateur (root).

```
sudo crontab -e
```

1. Et ajoutez à la fin du fichier les lignes suivantes.

```
                # SYNC
@reboot                 /opt/scripts/waitSynchro.bash

```

1. Sur la WEBUI de syncthing créez un partage et entrez _/var/www/html_ ou un autre sous-dossier au choix. Comme temps entre les scans, indiquez entre 60 et 120 secondes au choix.

1. Ajoutez un cron pour remettre les bons droits (quand syncthing écrit un fichier il aura syncthing comme propriétaire, ça ne devrait pas poser de soucis mais au cas ou, on les corrige)

```
* */10 * * *    chown www-data:www-data -R /var/www/html/
* */10 * * *    chmod 0760 -R /var/www/html/
```

1. Bloquez l'accès à ssh pour l'utilisateur "syncthing".

 * Pour ce faire éditez le fichier _/etc/ssh/sshd_config_. 

```
nano /etc/ssh/sshd_config
```

 * Et ajoutez dedans la ligne suivante puis tapez _CTRL+X_ pour sauvegarder et quitter. 


```
DenyUsers	synchting
```

1. Lancez le service syncting au démarrage, activez-le puis redémarrez la machine. 

```
sudo systemctl enable syncthing@syncthing.service
sudo systemctl start syncthing@syncthing.service
sudo reboot
```

 *  Note : le nouvel umask ne sera pris en compte qu'après redémarrage de la machine. Avant cela les fichiers ne seront pas créé avec les bonnes permissions.


1. Si a un moment vous souhaitez vérifier le status du service syncthing, lancez la commande suivante :

```
systemctl status syncthing@syncthing.service
```


Farm Link
=========

* [Partager le dossier /var/www/html entre vos différents serveur web apache2 via syncthing](https://www.0rion.netlib.re/forum4/viewtopic.php?f=107&t=661&p=1603#p1603) (article original)