Réplication sur des Dépôts distant

De WIKI Les fourmis du libre
Révision de 31 janvier 2017 à 00:09 par Simon (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher


Prérequis

Avant de continuer, il est nécessaire de bien comprendre le fonctionnement de wapt

Je vous invite donc a lire Comprendre le fonctionnement "moteur" de wapt


Installation d'un dépôt wapt répliqué

La méthode expliquée ci-dessous n’a pas été testée en production ! Merci donc de ne pas suivre aveuglément ce tuto ! Je ferais plus tard la même documentation avec syncthing ! (moins contraignant)


Ce tuto est livré sans aucune garantie !


Un petit article pour vous présenter comment faire pour utiliser WAPT les sites distant (réplication de dépôt)


Cela est très pratique pour un entreprise qui possède des multi-site. Une entreprise peut donc envoyer un petit serveur sur chaque site. (type Raspberry Pi ou mieux un Alix 2D13 qui peux du coup faire office de routeur/pare-feu au passage). Du coup chaque boitier devient un dépôt répliqué sur la base du dépôt principale. Cela permet une grosse économie de bande passante !


Multisite.jpg


Avant toute chose, voici les paquets à installer sur les serveurs WAPT secondaires :


Installation du repo secondaire

Je part sur une base Debian : Commandes à exécuter sur le serveur WAPT secondaire :

  apt-get update && apt-get upgrade
  apt-get install ssh
  echo « deb http://wapt.tranquil.it/debian/ ./  » > /etc/apt/sources.list.d/wapt.list
  apt-get update
  apt-get install tis-waptrepo

Synchronisation avec rsync

Si vous souhaitez utiliser Syncthing, passer directement à "Synchronisation avec syncthing"

Commandes à exécuter sur le serveur WAPT secondaire :

  apt-get install rsync

Génération des clé dsa pour les connexion ssh automatique

Le serveur doit ensuite pouvoir se connecter sans mot de passe.


Nous allons mettre en place des connexions SSH automatiques par clés DSA.


Principe :


Sshkey.jpg


Générer des clé plublique sur le serveur WAPT principal :

Commande à exécuter sur le serveur WAPT principal :


 ssh-keygen -t dsa           (n’entrez pas de passphrase)


Toujours sur le serveur nous allons ensuite copier la clé publique sur le serveur WAPT de réplication:


Commande à exécuter sur le serveur WAPT principal :

 ssh-copy-id -i ~/.ssh/id_dsa.pub root@wapt-2.lesfourmisduweb.org


Réalisation du script rsync

Nous allons ensuite réaliser un script qui va copier tout le dossier /var/www/ du WAPT principal vers le /var/www/ du serveur WAPT de réplication.


Nous allons donc créer un script de réplication du dépôt WAPT, (contenu du script) :


Commande à exécuter sur le serveur WAPT principal :

 mkdir /scripts
 echo "rsync -azc –progress –delete-after -e « ssh » /var/www/ root@wapt-2.fourmisduweb.org:/var/www/"  > /scripts/replicationwapt
 chmod a+x /script/replicationwapt


Ce script doit être exécuté après chaque :

 – modification ou création de paquet
 – modification de poste (ajout ou suppression de logiciel)
 – création ou modification de groupe


 bash /script/replicationwapt


Mise en place de la crontab

Vous pouvez également faire une crontab pour ce script :


 crontab -e


 0 1 * * * /scripts/replicationwapt


Dans l’exemple ci-dessus nous exécutons le script tous les jours à 1H du matin.


Attention ! Si vous utilisez une crontab, les postes ne disposeront pas d’une mise à jour de paquet avant l’exécution de la crontab.

Synchronisation avec syncthing

En cour de construction

Construction.gif


Détail sur le fonctionnement global

Seul le dépôt est répliqué, lors d’un WAPT register par exemple, le serveur principal sera directement contacté.


Il est à vous de convenir le dépôt WAPT le plus rapide et le plus approprié lors de l’installation du client WAPT…


La configuration de l’agent WAPT peut donc ressembler à ceci :


 Repo URL      :    http://wapt-2.lesfourmisduweb.org
 Server URL   :    https://wapt-master.lesfourmisduweb.org


WAPT peut gérer encore plus facilement ce genre de réglages :


Si vous utilisez « DETECT WAPT INFO WITH RECORD DNS » avec les enregistrements SRV


En utilisant le champ _wapt._tcp (exemple):


 _wapt._tcp.lesfoumis.org. 0 IN SRV 0 0 80 wapt-master.lesfourmisduweb.org.
 _wapt._tcp.lesfoumis.org. 0 IN SRV 0 0 80 wapt-2.lesfourmis.org.
 _wapt._tcp.lesfoumis.org. 0 IN SRV 0 0 80 wapt-3.lesfourmisduweb.org.
 _wapt._tcp.lesfoumis.org. 0 IN SRV 0 0 80 wapt-4.lesfourmisduweb.org.


(un pour chacun des dépôts, local et distants) et en laissant le champ repository vide.


Le client WAPT agent fera une requête DNS et sélectionnera le dépôt qui sera sur le même sous-réseau IP que lui par défaut.


Attention le champ 443 de l’enregistrement SRV doit retourner uniquement le wapt serveur principale:


 _waptserver._tcp.lesfoumis.org. 0 IN SRV 0 0 443 wapt-master.lesfourmisduweb.org.


Autre précision, pour lancer une installation ou une mise à jour d’un poste depuis la console, le poste doit être directement joignable par le serveur WAPT principal.


Du coup le client WAPT ne doit pas se trouver derrière du NAT.

Test pour vérifier le fonctionnement

Test du dépôt répliqué:

Le client doit pouvoir télécharger ceci :

 http://wapt-2.lesfourmis.org/wapt-host/(nomdupcclient).wapt
 http://wapt-2.lesfourmis.org/wapt/Packages

Le client doit également pouvoir recevoir des ordre envoyée via la console:

Lancée la mise a jour disponible depuis la console doit faire réagir le wapttray.exe sur le client.


Je ferais plus tard la même documentation avec syncthing ! (moins contraignant)


Bon Courage !


Réplication d'un dépôt dont on a pas d'accès ssh

On l'a vu il est utile de répliquer un dépôt pour éviter de surcharger la connexion internet.

Mais on peut être confronté a un soucis quand on utilise le multi repo avec un dépôt publique.

On ne peut pas répliquer facilement le dépôt avec synthing ou avec rsync sur ssh car nous n'avons pas accès au serveur.

Du coup j'ai fait un petit script crontab qui utilise simplement un wget avec le fichier Packages

il est ici :

Je suis pas super bon en script chez moi il fonctionne mais ATTENTION !!

Script

J'ai postée le script ici :

https://github.com/sfonteneau/wapt-repo-replication-script