(Déclassé) Réplication de dépôts avec Syncthing¶
Indication
La synchronisation des dépôts WAPT est désormais native dans WAPT Enterprise.
Vous pouvez trouver la nouvelle documentation ici : Répliquer un dépôt pour préserver la bande passante des sites secondaires.
Avertissement
Cette partie de la documentation n’est plus maintenue. Vous pouvez l’utiliser comme source d’idées pour faire votre réplication tout en utilisant la version Community.
Présentation de Syncthing¶
Syncthing est un logiciel open-source multiplateforme de synchronisation de fichiers pair à pair.
Il permet de synchroniser des répertoires sur plusieurs machines en garantissant la sécurité et l’intégrité des fichiers.
La documentation officielle de Syncthing est disponible en ligne <https://docs.syncthing.net/>_.
Mettre en place de la réplication¶
Indication
La documentation suivante concerne des dépôts et serveurs WAPT basés sur Linux Debian ou CentOS / RedHat.
Installer le dépôt WAPT distant¶
Linux Debian¶
echo "deb https://wapt.tranquil.it/debian/ ./ " > /etc/apt/sources.list.d/wapt.list
apt update
apt upgrade -y
apt install tis-waptrepo
Linux CentOS / RedHat¶
Le dépôt WAPT distant est installé, on doit mettre en place la réplication Syncthing.
Configurer le service web Apache¶
a2enmod ssl
a2ensite default-ssl.conf
modifier ensuite les fichiers de configuration Apache afin d’indiquer les racines correcte aux VirtualHosts :
/etc/apache2/sites-available/default-ssl.conf
/etc/apache2/sites-available/000-default.conf
modifier la valeur de DocumentRoot dans chaque fichier de configuration :
- DocumentRoot /var/www/html
+ DocumentRoot /var/www
redémarrer Apache afin de prendre en compte la configuration :
/etc/init.d/apache2 restart
Note
Il est préférable d’indiquer dans la configuration Apache des certificats SSL valides pour les dépôts distants.
vider le contenu des dossiers
/var/www/wapt
et/var/www/wapt-host
, Syncthing ira peupler ces dossiers avec les données du dépôt principal :
rm -rf /var/www/wapt/*
rm -rf /var/www/wapt-host/*
Installer Syncthing sur les dépôts¶
Note
Cette procédure est à appliquer sur le dépôt principal et sur les dépôts secondaires.
## Debian
apt update
apt install sudo curl apt-transport-https
curl -s https://syncthing.net/release-key.txt | apt-key add -
echo "deb https://apt.syncthing.net/ syncthing stable" | tee /etc/apt/sources.list.d/syncthing.list
apt update
apt install syncthing
## CentOS 7
wget https://github.com/mlazarov/syncthing-centos/releases/download/v0.14.7/syncthing-0.14.7-0.el7.centos.x86_64.rpm --no-check-certificate
yum install syncthing-0.14.7-0.el7.centos.x86_64.rpm
Configurer Syncthing¶
Opérations à effectuer :
ajout du service dans systemd ;
modifier le port d’écoute du service sur 0.0.0.0 ;
création d’un compte utilisateur administrateur et définition d’un mot de passe fort ;
activation du protocole https pour l’accès Web ;
créer le fichier de définition du service waptsync en éditant
/etc/systemd/system/waptsync.service
:[Unit] Description=WAPT respository sync with syncthing Documentation=http://docs.syncthing.net/ After=network.target ;Wants=syncthing-inotify@.service [Service] User=wapt ExecStart=/usr/bin/syncthing -logflags=0 -home=/opt/wapt/.config/syncthing/ -no-restart Restart=on-failure SuccessExitStatus=3 4 RestartForceExitStatus=3 4 [Install] WantedBy=multi-user.target
créer l’arborescence nécessaire au lancement du service :
mkdir /opt/wapt/.config/
mkdir /opt/wapt/.config/syncthing/
changer le propriétaire de cette arborescence de fichiers :
chown -R wapt:www-data /opt/wapt/.config/
activer le service puis le lancer, les fichiers de configuration vont apparaître dans le dossier
/opt/wapt/.config/syncthing/
:
systemctl enable waptsync
systemctl start waptsync
systemctl stop waptsync
modifier le port d’écoute dans le fichier
/opt/wapt/.config/syncthing/config.xml
:
<gui enabled="true" tls="true" debugging="false">
<address>0.0.0.0:8384</address>
<apikey>4jvEiL24UbFddsdsAQxqsfixNaLt</apikey>
<theme>default</theme>
</gui>
démarrer le service :
systemctl start waptsync
Configurer le service Web de Syncthing¶
L’interface Web Syncthing est maintenant accessible à l’adresse http://srvwapt.mydomain.lan:8384
.
Opérations à effectuer :
modifier le nom de l’appareil ;
ajouter un Utilisateur autorisé GUI ;
ajouter un mot de passe d’authentification pour l”Utilisateur autorisé GUI ;
cocher « utiliser l’HTTPS pour le GUI » ;
cliquer sur Enregister ;
en ssh sur le serveur, redémarrer le service Syncthing :
systemctl restart waptsync
L’interface Web Syncthing est maintenant uniquement accessible en https à l’adresse : https://srvwapt.mydomain.lan:8384.
dans la liste des partages, supprimer le répertoire par défaut :
;configurer la réplication :
Note
Ces actions sont à effectuer sur le serveur WAPT.
Dans la liste des dossiers partagés (Partages) :
ajouter un répertoire partagé avec
;renseigner le chemin du dossier à partager, ex :
/var/www/wapt/
;dans le menu déroulant
;dans le menu déroulant
;recommencer l’opération pour wapt-host:
/var/www/wapt-host/
;
ajouter la machine distante :
Une fois Syncthing installé sur les deux appareils, récupérer l’ID de l’appareil distant (
).Cet identifiant unique est de la forme
DSINDDC-23ORDNM-PAK6FCL-ZJAKNCH-61GWXAT-77PC3JM-RZ4PPYP-K1QERAV
Sur le serveur maître, dans la liste des appareils (Autres appareils) :
;
renseigner l’ID du dépôt distant ;
cocher les partages wapt et wapt-host ;
Sur le dépôt distant effectuer les actions suivantes :
l’appareil distant reçoit une notification d’approbation d’ajout par l’appareil maître ;
le client reçoit ensuite une popup pour accepter les partage
wapt
etwapt-host
;
La réplication est maintenant mise en place.
sécuriser la réplication :
Par défaut, les paramètres suivant sont activés pour Syncthing :
Options |
Description |
---|---|
Activer la translation d’adresses (NAT) |
Utiliser un mappage de port UPnP pour les connexions de synchronisation entrantes. |
Découverte locale |
Syncthing fonctionnera alors avec un system de broadcast pour s’annoncer auprès des autres Syncthing. |
Découverte globale |
Syncthing s’inscrit sur un serveur mondial, et peut utiliser celui-ci pour rechercher d’autres périphériques. |
Relais possible |
L’utilisation de relais permet d’utiliser des serveurs externes pour relayer la communication. Le relais est activé par défaut mais ne sera utilisé que si deux périphériques ne peuvent pas communiquer directement entre eux. |
Ce mode de fonctionnement permet une mise en place facilitée mais ce n’est pas le mode de fonctionnement le plus conseillé pour la sécurité.
décocher toutes les cases dans la configuration réseau ;
définir le port d’écoute du protocole (par défaut 22000) ;
remplacer default par *tcp://0.0.0.0:22000 ;
Se rendre ensuite sur l’interface de dépôts distants, cliquer sur Modifier, puis définir l’adresse de la machine distante :
remplacer dynamic par tcp://ip-du-syncthing-distant:22000
Cette configuration permet de limiter les connexions externes du service Synthing.
Configurer les agents WAPT¶
Les clients des sites distants doivent maintenant être configurés pour pointer vers leurs dépôts les plus proches.
Deux solutions existent :
modifier le champs repo_url dans le
wapt-get.ini
des agents WAPT manuellement ou à l’aide d’un paquet WAPT de configuration ;
Exemple de configuration de l’agent WAPT - dépôt local renseigné :
[global]
waptupdate_task_period=120
waptserver=https://srvwapt.mydomain.lan
repo_url=https://localrepo.mydomain.lan/wapt/
use_hostpackages=1
Exemple de paquet pour modifier le champ repo_url de wapt-get.ini
:
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
def install():
print('Modifier la configuration agent pour le site de Colmar')
inifile_writestring(WAPT.config_filename,'global','repo_url',
'https://wapt.city02.mydomain.lan/wapt/')