Difference between revisions of "Mirrors/fr"

From SME Server
Jump to navigationJump to search
 
(5 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
===Accéder aux miroirs contribs.org===
 
===Accéder aux miroirs contribs.org===
Pour accéder aux miroirs de téléchargement contribs.org, utilisez toujours l'URL http://mirror.contribs.org. La version courante peut être trouvée à l'adresse http://mirror.contribs.org/smeserver/releases/, la section des contributeurs est à l'adresse http://mirror.contribs.org/smeserver/contribs/  
+
Pour accéder aux miroirs de téléchargement contribs.org, utilisez toujours l'URL http://mirror.contribs.org. Les versions courantes peuvent être trouvées à l'adresse http://mirror.contribs.org/smeserver/releases/, la section des contributions est à l'adresse http://mirror.contribs.org/smeserver/contribs/  
  
Vous serez automatiquement redirigé vers un miroir qui a été mis à jour dans les 8 heures précédents.
+
{{Tip box|type=Astuce : |si vous utilisez l'URL mirrors.contribs.org, vous serez automatiquement redirigé(e) vers un miroir qui a été mis à jour dans les 8 heures précédentes.}}
  
===Comment devenir un site miroir?===
+
===Données===
 +
====Taille du disque dur====
 +
La taille du disque dur physique nécessaire pour les données contribs.org sera d'environ 30 Go, l'arborescence [http://mirror.contribs.org/smeserver/release /release], qui contient les images iso et les référentiels, compte pour environ 6 Go de cette taille. L'arborescence [http://mirror.contribs.org/smeserver/contribs /contribs] représentera un peu plus de 1 Go du total.
 +
Le répertoire obsolète représente 16 Go, et le répertoire de test qui inclut la prochaine version SME 8 fait 7 Go.
 +
 
 +
Si vous manquez d'espace, vous pouvez facilement économiser 16 Go avec --exclude=obsolete/ dans la balise EXCLUDE="" dans etc/ftpsync-smeserver.conf comme ceci :
 +
 
 +
  EXCLUDE="--exclude=obsolète/"
 +
 
 +
Plus d'informations sur le fichier de configuration peuvent être trouvées dans [[:Mirrors#Configuration options]].
 +
 
 +
====Bande passante====
 +
En raison du [http://mirror.contribs.org/mirrors petit nombre de miroirs], la bande passante acheminée vers vos serveurs sera de l'ordre de 200 Go/mois en moyenne, ce qui correspond à environ 80 ko/s.
  
Pour les francophes et afin de répartir la charge des miroirs primaires, il est une bonne idée de prendre contact avec [mailto:tests@pialasse.com[[User:Unnilennium|Unnilennium]]] aka Jean-Philippe Pialasse . Deux miroirs maitres sont possible de chaque coté de l'atlantique en alternative à ibiblio qui a fait défaut quelques fois cette dernière année.
+
===Exigences pour les miroirs===
 +
* Adresse IP statique
 +
* Utilisateur dédié pour la synchronisation
 +
* Autoriser SSH depuis Internet vers une IP statique (le port n'a pas d'importance)
  
 +
===Comment devenir un site miroir ?===
 +
Si vous ou votre entreprise disposez de bande passante disponible et souhaitez être inclus dans Mirror.contribs.org, devenez un miroir en suivant ces étapes :
  
 
====Préparer votre système====
 
====Préparer votre système====
<ol><li>Créeer un emplacement de stockage pour votre miroir<br/>
+
<ol><li>Créer un emplacement de stockage pour votre miroir<br/>
 
<pre>mkdir -p {/path/to/your/data/store/}</pre>
 
<pre>mkdir -p {/path/to/your/data/store/}</pre>
</li><li>Créer un nouvel utilisateur pour faire vos mises à jour de miroir. Si vous utilisez SME server vous pouvez utiliser le server-manager pour cela.
+
</li><li>Créer un nouvel utilisateur pour faire vos mises à jour de miroir. Si vous utilisez le serveur Koozali SME, vous pouvez utiliser le gestionnaire du serveur pour cela.
</li><li>Maintenant télécharger le script ftpsync et tous les fichiers requis:
+
</li><li>Aller dans le répertoire du nouvel utilisateur. Sur le serveur SME, ce sera : <tt>/home/e-smith/files/users/{user}/</tt>
 +
cd {/path/to/user/dir/}
 +
</li><li>C'est maintenant le momement de télécharger le script ftpsync et tous les fichiers requis :
 
  wget http://contribs.org/ftpsync.tgz
 
  wget http://contribs.org/ftpsync.tgz
</li><li>Extraire l'archive dans le dossier de l'utilisateur
+
</li><li>Extraire l'archive dans le dossier des utilisateurs :
 
  tar zxof ftpsync.tgz
 
  tar zxof ftpsync.tgz
</li><li>Rendre l'utilisateur propriétaire du dossier
+
</li><li>Rendre l'utilisateur propriétaire des répertoires :
  chown -R {user} bin etc log .ssh {/path/to/your/data/store/}
+
  chown -R {user} bin etc log locks .ssh {/path/to/your/data/store/}
</li><li>Nous avons installé tout ce qui est nécessaire. Il reste juste à paramétrer dans le fichier de configuration (etc/ftpsync-smeserver.conf) le chemin vers les données  (TO) in the config file . Utilisez votre éditeur favori à cette fin (mcedit, vim, vi, pico ...).</li></ol>
+
</li><li>Nous avons installé et configuré tout ce qui est nécessaire. Il reste juste à paramétrer dans le fichier de configuration (etc/ftpsync-smeserver.conf) le chemin vers les données  (TO) in the config file . Utiliser votre éditeur favori à cette fin (mcedit, vim, vi, pico ...).</li></ol>
 +
TO="/path/to/your/data/store/"
 +
<li>'''UNIQUEMENT''' si vous avez configuré votre serveur miroir en mode [[#Configurer pour pull|pull]], ajuster la valeur ''RSYNC_HOST'' dans le fichier de configuration (etc/ftpsync-smeserver.conf) à (c'est la valeur par défaut - désactivée pour push) : <pre>RSYNC_HOST=mirror.canada.pialasse.com</pre> Ceci à cause du récent manque de fiabilité de ibiblio.org (voir : [[bugzilla:7360]]).</li></ol>
  
 
====Tester votre configuration====
 
====Tester votre configuration====
<ol><li>Maintenant c'Est le moment de faire votre synchronisation initiale (et ainsi tester que le script fait ce qu'il est supposé faire)
+
<ol><li>Maintenant c'est le moment de faire votre synchronisation initiale (et ainsi tester que le script fait ce qu'il est supposé faire).
 +
{{Note box|type=Note : |cela peut prendre un long momement en fonction de la vitesse de votre connexion.}}
 
<pre>su - {user} -s /bin/bash
 
<pre>su - {user} -s /bin/bash
~/bin/ftpsync</pre>
+
~/bin/ftpsync sync:archive:smeserver</pre>
</li><li>Vérifiez ensuite les logs pour à la recherche d’erreurs. Comme cette première synchro va prendre plusieurs heures, vous pouvez faire ceci dans une autre fenêtre terminal :
+
</li><li>Vérifiez ensuite les journaux à la recherche d’erreurs. Comme cette première synchro va prendre plusieurs heures, vous pouvez faire ceci dans une autre fenêtre terminal :
 
  cd ~/log
 
  cd ~/log
  cat rsync-ftpsync.error.0
+
  cat rsync-ftpsync-smeserver.error.0
 
</li></ol>
 
</li></ol>
  
Line 39: Line 61:
 
Pour cela, vous devez penser à activer en même temps l'option FollowSymLinks dans la configuration d'Apache.
 
Pour cela, vous devez penser à activer en même temps l'option FollowSymLinks dans la configuration d'Apache.
  
Si votre miroir est hébergé sur un SME server 7.x (ou ultérieur), dans une ibay, vous pouvez faire ceci en utilisant la commande suivante suite à la création de l'ibay :
+
Si votre miroir est hébergé sur un serveur Koozali SME 7.x (ou ultérieur), dans une baie d'information, vous pouvez faire ceci en utilisant la commande suivante suite à la création de la baie :
  
 
  db accounts setprop {ibayname} FollowSymLinks enabled
 
  db accounts setprop {ibayname} FollowSymLinks enabled
Line 46: Line 68:
 
====Garder votre miroir à jour====
 
====Garder votre miroir à jour====
 
Le script ftpsync permet deux méthodes de mise à jour : push ou pull.
 
Le script ftpsync permet deux méthodes de mise à jour : push ou pull.
{{Note box|Nous préférons que vous configuriez votre miroir en mode push car :
+
{{Note box|type=Note : nous préférons que vous configuriez votre miroir en mode push car :
* La synchronisation ne démarre que quand il y a des changements
+
* la synchronisation ne démarre que quand il y a des changements ;
* Les changements sont propagés en temps réel ou presque
+
* les changements sont propagés en temps réel ou presque ;
* Les changements peuvent être fait par étapes (synchroniser les données d'abord, les repodata ensuite)
+
* les changements peuvent être fait par étapes (synchroniser les données d'abord, les repodata ensuite) ;
* Moins de miroirs hors dates pour yum}}
+
* moins de miroirs hors dates pour yum.|}}
 
=====Pourquoi nous préférons push=====
 
=====Pourquoi nous préférons push=====
 
D'abord quelques informations de base sur ssh. Ssh permet de se connecter à des comptes sur différentes machines de façon sécuritaire. Non seulement les mots de passe ne sont jamais envoyé en clair, mais une fois connecté à une machine vous êtes garanti que les futures connexions se feront à la même machine. Ceci évite les attaques du type homme-au-milieu.
 
D'abord quelques informations de base sur ssh. Ssh permet de se connecter à des comptes sur différentes machines de façon sécuritaire. Non seulement les mots de passe ne sont jamais envoyé en clair, mais une fois connecté à une machine vous êtes garanti que les futures connexions se feront à la même machine. Ceci évite les attaques du type homme-au-milieu.
Line 58: Line 80:
 
Ainsi pour protéger le miroir esclave, la clef fournie par le miroir maitre a une option ajoutée pour limiter son utilisation à seulement  — démarrer le programme de synchronisation sur votre machine. Ainsi même si un quelqu'un (un tiers mal intentionné) était capable de casser la clef, la seule chose qu'il pourrait faire c'est lancer une synchronisation sur votre machine.  Ne vous souciez même pas du risque que plusieurs sessions puissent être lancées simultanément car un fichier lock est utiliser pour éviter cela.
 
Ainsi pour protéger le miroir esclave, la clef fournie par le miroir maitre a une option ajoutée pour limiter son utilisation à seulement  — démarrer le programme de synchronisation sur votre machine. Ainsi même si un quelqu'un (un tiers mal intentionné) était capable de casser la clef, la seule chose qu'il pourrait faire c'est lancer une synchronisation sur votre machine.  Ne vous souciez même pas du risque que plusieurs sessions puissent être lancées simultanément car un fichier lock est utiliser pour éviter cela.
  
Sur le serveur maitre, rsync peut être configuré pour restreindre qui peut mettre à jour une zone précise par nom et mot de passe. Ceux-ci sont indépendant de /etc/passwd, un serveur push n'a donc pas besoin de s’inquiéter de donner accès à leur machine. Une fois configuré. le nom d’utilisateur et le mot de passe, sont passé en clair. Ce qui ne doit être un problème car le pire que puisse faire un tiers mal intentionné serait de lancer une synchronisation du paquet SME Server depuis ce site.
+
Sur le serveur maitre, rsync peut être configuré pour restreindre qui peut mettre à jour une zone précise par nom et mot de passe. Ceux-ci sont indépendants de /etc/passwd, un serveur push n'a donc pas besoin de s’inquiéter de donner accès à leur machine. Une fois configuré, le nom d’utilisateur et le mot de passe, sont transmis en clair. Ce qui ne doit être un problème car le pire que puisse faire un tiers mal intentionné serait de lancer une synchronisation du paquet SME Server depuis ce site.
  
 
(source: [http://www.debian.org/mirror/push_mirroring Debian: Push mirroring])
 
(source: [http://www.debian.org/mirror/push_mirroring Debian: Push mirroring])
  
 
=====Comment push fonctionne=====
 
=====Comment push fonctionne=====
Voici une description courte du processus de push:
+
Voici une description courte du processus de push :
# Le miroir maitre met à jour le fichier timestamp
+
# le miroir maitre met à jour le fichier timestamp ;
# Le miroir maitre initie le miroir tiers 1 pour commencer l'étape 1 de synchronisation (wait)
+
# le miroir maitre initie le miroir tiers 1 pour commencer l'étape 1 de synchronisation (wait) ;
# Le miroir tiers 1 rsync tout sauf les repodata des cibles désignées (n'efface rien)
+
# le miroir tiers 1 synchronise tout sauf les repodata des cibles désignées (n'efface rien) ;
# Le miroir tiers 1 initie le miroir tiers 2 pour commencer l'étape 1 de synchronisation (wait)
+
# le miroir tiers 1 initie le miroir tiers 2 pour commencer l'étape 1 de synchronisation (wait) ;
# Répétions des étapes précédentes pour toutes les miroirs tiers en dessous du niveau 2
+
# répétition des étapes précédentes pour tous les miroirs tiers en dessous du niveau 2 ;
# Le miroir maitre initie le miroir tiers 1 pour commencer l'étape 2 de synchronisation
+
# le miroir maitre initie le miroir tiers 1 pour commencer l'étape 2 de synchronisation ;
# Le miroir tiers 1 rsync tout des cibles désignées  (avec effacement)
+
# le miroir tiers 1 synchronise toutes les cibles désignées  (avec effacement) ;
# Le miroir tiers 1 initie le miroir tiers 2 pour commencer l'étape 2 de synchronisation  
+
# le miroir tiers 1 initie le miroir tiers 2 pour commencer l'étape 2 de synchronisation ;
# Répétions des 3 étapes précédentes pour toutes les miroirs tiers en dessous du niveau 2
+
# répétition des 3 étapes précédentes pour toutes les miroirs tiers en dessous du niveau 2 ;
# Le miroir maitre verifie la mise à jour des miroirs et génère une liste des miroirs à jour
+
# le miroir maitre verifie la mise à jour des miroirs et génère une liste des miroirs à jour.
  
 
=====Configurer pour push=====
 
=====Configurer pour push=====
Le système push utilise une paire de clefs SSH publique et privée pour la communication, pour cela vous devez exécuter quelques commandes de configuration supplémentaires:
+
Le système push utilise une paire de clefs SSH publique et privée pour la communication, pour cela vous devez exécuter quelques commandes de configuration supplémentaires :
<ol><li>D’abord vous devez avoir SSH de configuré et en service sur votre serveur. Si vous utilisez SME server poru votre miroir vous devrez autorisé l’accès à distance par le server-manager. </li><li>Vous devrez aussi autoriser bash comme shell pour l'utilisateur pour la synchronisation du miroir.<br /> Si vous utilisez SME server, vous pouvez le faire ainsi :
+
<ol><li>D’abord vous devez avoir SSH de configuré et en service sur votre serveur. Si vous utilisez un serveur SME pour votre miroir, vous devez autoriser l’accès à distance sur le gestionnaire du serveur. </li><li>Vous devrez aussi autoriser bash comme shell pour l'utilisateur pour la synchronisation du miroir.<br /> Si vous utilisez un serveur SME, vous pouvez le faire ainsi :
 
  db accounts setprop {user} Shell /bin/bash
 
  db accounts setprop {user} Shell /bin/bash
 
  signal-event user-modify {user}
 
  signal-event user-modify {user}
</li><li>Vous devrez aussi ajouter la clef dans le fichier authorized_keys file de cet utilisateur
+
</li><li>Vous devrez aussi ajouter la clef dans le fichier authorized_keys file de cet utilisateur :
 
  su - {user} -s /bin/bash
 
  su - {user} -s /bin/bash
 
  cat .ssh/pushmirror-*.pub >> .ssh/authorized_keys
 
  cat .ssh/pushmirror-*.pub >> .ssh/authorized_keys
Line 86: Line 108:
  
 
=====Configurer pour pull=====
 
=====Configurer pour pull=====
{{Note box|Nous préférons que vous configuriez votre miroir en mode push, mais si vous ne pouvez le faire ou avez d'Autres raisons pour ne pas le faire, vous pouvez configurer votre miroir en mode pull.}}
+
{{Note box|type=Note : |nous préférons que vous configuriez votre miroir en mode push, mais si vous ne pouvez le faire ou avez d'autres raisons pour ne pas le faire, vous pouvez configurer votre miroir en mode pull.}}
 +
{{Note box|type=Note : |voir la liste des bogues en bas de la page concernant l'erreur sur la demande d'extraction ftpsync lors de l'utilisation de cette version de ftpsync, voir Bugzilla 11754.}}
 +
 
 
Configurer un miroir en mode pull est simple. Il suffit de mettre en place un tâche cron toutes les 2 heures qui fasse la même commande que vous avez fait la première fois, vous pouvez ajouter une ligne comme ceci:
 
Configurer un miroir en mode pull est simple. Il suffit de mettre en place un tâche cron toutes les 2 heures qui fasse la même commande que vous avez fait la première fois, vous pouvez ajouter une ligne comme ceci:
  
 
  1 */2  * * *  {user} ~/bin/ftpsync
 
  1 */2  * * *  {user} ~/bin/ftpsync
  
Attention d’utiliser les templates-custom pour /etc/crontab si vous utilisez SME Server.
+
Attention à utiliser les templates-custom pour /etc/crontab si vous utilisez le serveur Koozali SME.
  
====Advertising your mirror====
+
====Publicité de votre miroir====
 
Après que votre miroir soit synchronisé, faites le nous savoir, en remplissant un formulaire de bogue sur bugs.contribs.org dans la catégorie site SME "SME Website",  ou simplement en cliquant sur  {{BugzillaFileBug|product=SME%20web%20site|component=Mirrors|comment=I%20would%20like%20to%20host%20a%20mirror%20for%20contribs.org.%0D%0DName%20of%20site:%0DPrimary%20contact%20(name):%0DPrimary%20contact%20(email):%0DLocation%20(country):%0DBandwidth%20available:%0DSite%20URL%20(for%20releases%20dir):%0D%0DHostname%20(for%20ssh):%0DUsername%20(for%20ssh):%0DPort%20(for%20ssh):|title=<b>ce lien link</b>}}.
 
Après que votre miroir soit synchronisé, faites le nous savoir, en remplissant un formulaire de bogue sur bugs.contribs.org dans la catégorie site SME "SME Website",  ou simplement en cliquant sur  {{BugzillaFileBug|product=SME%20web%20site|component=Mirrors|comment=I%20would%20like%20to%20host%20a%20mirror%20for%20contribs.org.%0D%0DName%20of%20site:%0DPrimary%20contact%20(name):%0DPrimary%20contact%20(email):%0DLocation%20(country):%0DBandwidth%20available:%0DSite%20URL%20(for%20releases%20dir):%0D%0DHostname%20(for%20ssh):%0DUsername%20(for%20ssh):%0DPort%20(for%20ssh):|title=<b>ce lien link</b>}}.
Merci de fournir les renseignements suivant:
+
Merci de fournir les renseignements suivants :
* nom du site
+
* nom du site ;
* contact principal nom/email
+
* contact principal nom/adresse électronique ;
* localisation/pays
+
* localisation/pays ;
* bande passante disponible pour le miroir
+
* bande passante disponible pour le miroir ;
* URL pointant vers le site (pour tester les mises à jour et pour yum)
+
* URL pointant vers le site (pour tester les mises à jour et pour yum) ;
* hôte pour se connecter (pour ssh)
+
* hôte pour se connecter (pour ssh) ;
* port de connexion (pour ssh)
+
* port de connexion (pour ssh) ;
* utilisateur pour se connecter (pour ssh)
+
* utilisateur pour se connecter (pour ssh).
 +
 
 +
===Options de configuration===
 +
Le fichier de configuration ftpsync est dans ~/etc/ftpsync-smeserver.conf. Le fichier de configuration ftpsync a un nombre d'options que vous pouvez modifier. Vous devez en avoir vu certaines si vous avez modifié la localisation du dossier de stockage des données dans la procédure de configuration.
 +
Le fichier de configuration est bien documenté mais nous discuterons de certaines fonctionnalités ici.
 +
{{Incomplete}}
 +
 
 +
===Configure your mirror as hub===
 +
 
 +
this is intented to do on an already synced mirror in push mode.
 +
 
 +
==== setting up rsync as server====
 +
as root.
 +
 
 +
 
 +
open /etc/xinetd.d/rsync and remove the disabled line
 +
vim /etc/xinetd.d/rsync
 +
 
 +
create a rsyncd.conf file
 +
vim /etc/rsyncd.conf
 +
 
 +
then add this
  
===Options de Configuration===
+
# rsync.conf
Le fichier de configuration ftpsync est dans ~/etc/ftpsync-smeserver.conf. Le fichier de configuration ftpsync a un nombre d'options que vous pouvez modifier. Vous devez en avoir vu certaines en modifiant le dossier de stockage des données.
+
uid = {USEROWNING THE MIRROR FILES}
Le fichier de configuration est bien documenté.
+
gid = {GROUP OWNING THE MIRROR FILES}
 +
use chroot = yes
 +
max connections = 5
 +
timeout = 300
 +
read only = true
 +
strict modes = true
 +
transfer logging = true
 +
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
 +
 +
[smeserver]
 +
    path = /home/e-smith/files/ibays/{IBAY}/html
 +
    comment = SME Server Mirror
 +
    hosts allow = {YOUR CLIENT IP}
  
===Important===
+
install xinetd
====Taille du disque dur====
+
yum install xinetd
La taille de disque dur utilisée par contribs.org sera d'environ 30Gb, le dossier [http://mirror.contribs.org/smeserver/release /release], qui contient les images ISO et les dépôts yum, correspond à 6Gb du total. Le dossier [http://mirror.contribs.org/smeserver/contribs /contribs] correspond à 1Gb du total. Le dossier obsolete correspond à 16Gb, et le dossier testing qui contient lq future SME8 fait 7Gb du total.
+
 
 +
configure as services
 +
ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S91xinetd
 +
config set xinetd service status enabled
 +
config set rsyncd service TCPPort 873 access public status enabled
 +
signal-event remoteaccess-update
 +
service xinetd start
 +
 
 +
 
 +
configure hosts.allow
 +
 
 +
mkdir -p /etc/e-smith/templates-custom/etc/hosts.allow/
 +
echo "rsync: ALL" > /etc/e-smith/templates-custom/etc/hosts.allow/rsync
 +
signal-event remoteaccess-update
 +
 
 +
you can browse your server like this
 +
rsync --list-only rsync://YourIP
 +
 
 +
you can download from your server like this
 +
rsync -avz  YourIP::smeserver YourLocalFolder
 +
 
 +
==== create a rsa file ====
 +
 
 +
as user responsible of ftpsync.
 +
 
 +
  ssh-keygen -qt rsa -b 1024 -C "contribs-push@{MY MIRROR}" -f ~/.ssh/contribs-push\@{MY MIRROR}.rsa
 +
 
 +
then to protect the key and limit it to one usage and only one IP. You need to change {MY MIRROR} and {MY HUB IP }
 +
 
 +
echo "no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command=\"~/bin/ftpsync\",from=\"{MY HUB IP }\" "|cat - ~/.ssh/contribs-push\@{MY MIRROR}.rsa.pub > ~/.ssh/contribs-push.tmp && mv ~/.ssh/contribs-push.tmp ~/.ssh/contribs-push\@{MY MIRROR}.rsa.pub
 +
 
 +
finally protect your keys
 +
chmod 0600 ~/.ssh/contribs-push\@{MY MIRROR}.rs*
 +
 
 +
never give your private key, only send your  public (.pub) to the downstream mirror.
 +
 
 +
==== setting up ftpsync-smeserver.conf====
 +
 
 +
as user responsible of ftpsync.
 +
 
 +
 
 +
this step will allow your ftpsync to know that he need to trigger another server
 +
 
 +
edit ~/etc/ftpsync-smeserver.conf
 +
 
 +
vim ~/etc/ftpsync-smeserver.conf
 +
 
 +
under the line #HUB=false, insert
 +
HUB=true
 +
 
 +
==== setting up runmirrors-smeserver.conf====
 +
 
 +
as user responsible of ftpsync.
 +
 
 +
 
 +
vim ~/etc/runmirrors-smeserver.conf
 +
 
 +
then comment out the following line and adapt it to the path of you private key
 +
KEYFILE=.ssh/contribs-push\@{MY MIRROR}.rsa
 +
 
 +
==== setting up runmirrors-smeserver.mirror====
 +
 
 +
as user responsible of ftpsync.
 +
 
 +
 
 +
edit the file
 +
vim ~/etc/runmirrors-smeserver.mirror
 +
 
 +
add the following at the end of the file
 +
 
 +
mhop {NAME FOR LOG PURPOSE} {YOUR CLIENT ADRESS} {YOUR CLIENT USER} -p {YOUR CLIENT SSH PORT}
 +
 
 +
 
 +
===Configure your mirror under another hub===
 +
 
 +
follow : http://wiki.contribs.org/Mirrors#How_to_become_a_mirror_site.3F
 +
 
 +
except you will have to import your own public key  (generated just above)
 +
 
 +
then you will have to tunes :
 +
 
 +
vim ~/etc/ftpsync-smeserver.conf
 +
 
 +
change RSYNC_HOST= to point to your hub mirror
 +
 
 +
RSYNC_HOST={HUB MIRROR ADRESSE}
 +
 
 +
tada! you are done!
 +
 
 +
=== Current SME Server contribs.org Mirror Tree ===
 +
{| class="wikitable"
 +
|+
 +
| rowspan="11" |koozali.org mirrors
 +
| rowspan="11" |mirror.canada.pialasse.com
 +
Rsync, Push
 +
|smeserver.bhs.mirrors.ovh.net
 +
Rsync / 1GPs /pull %36h
 +
|
 +
|-
 +
|distro.ibiblio.org
 +
Rsync, Push
 +
|ftp.iinet.net.au
 +
mirror.internode.on.net
 +
 
 +
ftp.icm.edu.pl
 +
|-
 +
|mirror.pialasse.com
 +
Push
 +
|
 +
|-
 +
|sme-mirror.tw.co.nz
 +
Pull
 +
|
 +
|-
 +
|sme-mirror.firewall-services.com
 +
Pull
 +
|
 +
|-
 +
|ibsgaarden.dk
 +
Push
 +
|
 +
|-
 +
|mirrors.rbx.opencare.nl
 +
Push
 +
|
 +
|-
 +
|ftp.nluug.nl / ftp.vim.org
 +
Pull
 +
|
 +
|-
 +
|ftp.icm.edu.pl
 +
 
 +
Pull
 +
|
 +
|-
 +
|mirrors.mab974.re
 +
Pull
 +
|
 +
|-
 +
|www.mirrorservice.org
 +
Rsync, Pull
 +
|
 +
|}
 +
 
 +
====RSYNC access====
 +
# ibiblio : rsync://distro.ibiblio.org/smeserver/releases/ ( rsync -avv --stats distro.ibiblio.org::smeserver/releases . )
 +
# mirror.canada.pialasse.com:  rsync -avv mirror.canada.pialasse.com::smeserver/releases .
 +
# mirrorservice.org : rsync[http://rsync.mirrorservice.org/sites/mirror.contribs.org/smeserver/releases/ //rsync.mirrorservice.org/sites/mirror.contribs.org/smeserver/releases/] (rsync -avv --stats rsync.mirrorservice.org::mirror.contribs.org/smeserver/releases/ . )
  
 +
====FTP access====
 +
# ftp://distro.ibiblio.org/smeserver/releases/
  
Si vous êtes à cours d'espace vous pouvez économiser 16Gb avec l'option --exclude="obsolete/" et 7Gb de plus with --exclude="testing/"
+
=== Bogues ===
 +
Veuillez ouvrir les bogues dans la section SME-Server 10.X de [http://bugs.contribs.org/enter_bug.cgi Bugzilla] et sélectionner le composant Mirrors ou utiliser {{BugzillaFileBug|product=SME%20Server%2010.X|component=Mirrors|title=ce lien}}.
  
====Bande passante====
+
Aperçu ci-dessous des problèmes en cours pour ce paquet :
A cause du [http://mirror.contribs.org/mirrors faible nombre de miroirs], la bande passante consomée sur votre serveur sera de l'ordre de 200Gb/mois, ce qui se traduit en une consommation moyenne de 80kB/s.
+
{{#bugzilla:columns=id,product,version,status,summary |sort=id|order=desc |component=Mirrors|noresultsmessage="Pas trouvé de bogues ouverts."}}
 +
----
  
===Vérifications===
+
[[Category: Howto/fr]]
Un miroir synchronisé tourne normalement tout seul, cependant il peut arriver que le serveur maitre fasse une maintenance, il est donc important de vérifier régulierement que la synchronisation se fait correctement sur votre miroir: page http://mirror.contribs.org/mirrors ou erreurs retournées par cron
+
[[Category:Development Tools]]

Latest revision as of 11:37, 2 November 2023


État des miroirs contribs.org

Afin de voir l'état des miroirs contribs.org, regardez : http://mirror.contribs.org/mirrors.

Accéder aux miroirs contribs.org

Pour accéder aux miroirs de téléchargement contribs.org, utilisez toujours l'URL http://mirror.contribs.org. Les versions courantes peuvent être trouvées à l'adresse http://mirror.contribs.org/smeserver/releases/, la section des contributions est à l'adresse http://mirror.contribs.org/smeserver/contribs/


Information.png Astuce :
si vous utilisez l'URL mirrors.contribs.org, vous serez automatiquement redirigé(e) vers un miroir qui a été mis à jour dans les 8 heures précédentes.


Données

Taille du disque dur

La taille du disque dur physique nécessaire pour les données contribs.org sera d'environ 30 Go, l'arborescence /release, qui contient les images iso et les référentiels, compte pour environ 6 Go de cette taille. L'arborescence /contribs représentera un peu plus de 1 Go du total. Le répertoire obsolète représente 16 Go, et le répertoire de test qui inclut la prochaine version SME 8 fait 7 Go.

Si vous manquez d'espace, vous pouvez facilement économiser 16 Go avec --exclude=obsolete/ dans la balise EXCLUDE="" dans etc/ftpsync-smeserver.conf comme ceci :

 EXCLUDE="--exclude=obsolète/"

Plus d'informations sur le fichier de configuration peuvent être trouvées dans Mirrors#Configuration options.

Bande passante

En raison du petit nombre de miroirs, la bande passante acheminée vers vos serveurs sera de l'ordre de 200 Go/mois en moyenne, ce qui correspond à environ 80 ko/s.

Exigences pour les miroirs

  • Adresse IP statique
  • Utilisateur dédié pour la synchronisation
  • Autoriser SSH depuis Internet vers une IP statique (le port n'a pas d'importance)

Comment devenir un site miroir ?

Si vous ou votre entreprise disposez de bande passante disponible et souhaitez être inclus dans Mirror.contribs.org, devenez un miroir en suivant ces étapes :

Préparer votre système

  1. Créer un emplacement de stockage pour votre miroir
    mkdir -p {/path/to/your/data/store/}
  2. Créer un nouvel utilisateur pour faire vos mises à jour de miroir. Si vous utilisez le serveur Koozali SME, vous pouvez utiliser le gestionnaire du serveur pour cela.
  3. Aller dans le répertoire du nouvel utilisateur. Sur le serveur SME, ce sera : /home/e-smith/files/users/{user}/ cd {/path/to/user/dir/}
  4. C'est maintenant le momement de télécharger le script ftpsync et tous les fichiers requis : wget http://contribs.org/ftpsync.tgz
  5. Extraire l'archive dans le dossier des utilisateurs : tar zxof ftpsync.tgz
  6. Rendre l'utilisateur propriétaire des répertoires : chown -R {user} bin etc log locks .ssh {/path/to/your/data/store/}
  7. Nous avons installé et configuré tout ce qui est nécessaire. Il reste juste à paramétrer dans le fichier de configuration (etc/ftpsync-smeserver.conf) le chemin vers les données (TO) in the config file . Utiliser votre éditeur favori à cette fin (mcedit, vim, vi, pico ...).
TO="/path/to/your/data/store/"
  • UNIQUEMENT si vous avez configuré votre serveur miroir en mode pull, ajuster la valeur RSYNC_HOST dans le fichier de configuration (etc/ftpsync-smeserver.conf) à (c'est la valeur par défaut - désactivée pour push) :
    RSYNC_HOST=mirror.canada.pialasse.com
    Ceci à cause du récent manque de fiabilité de ibiblio.org (voir : bugzilla:7360).
  • Tester votre configuration

    1. Maintenant c'est le moment de faire votre synchronisation initiale (et ainsi tester que le script fait ce qu'il est supposé faire).
      Important.png Note :
      cela peut prendre un long momement en fonction de la vitesse de votre connexion.

      su - {user} -s /bin/bash
      ~/bin/ftpsync sync:archive:smeserver
    2. Vérifiez ensuite les journaux à la recherche d’erreurs. Comme cette première synchro va prendre plusieurs heures, vous pouvez faire ceci dans une autre fenêtre terminal : cd ~/log cat rsync-ftpsync-smeserver.error.0

    Configurer le serveur web

    Vous devez configurer votre serveur web pour rendre les fichiers accessibles au public.

    Pour cela, vous devez penser à activer en même temps l'option FollowSymLinks dans la configuration d'Apache.

    Si votre miroir est hébergé sur un serveur Koozali SME 7.x (ou ultérieur), dans une baie d'information, vous pouvez faire ceci en utilisant la commande suivante suite à la création de la baie :

    db accounts setprop {ibayname} FollowSymLinks enabled
    signal-event ibay-modify {ibayname}
    

    Garder votre miroir à jour

    Le script ftpsync permet deux méthodes de mise à jour : push ou pull.

    Important.png Note : nous préférons que vous configuriez votre miroir en mode push car :
    • la synchronisation ne démarre que quand il y a des changements ;
    • les changements sont propagés en temps réel ou presque ;
    • les changements peuvent être fait par étapes (synchroniser les données d'abord, les repodata ensuite) ;
    • moins de miroirs hors dates pour yum.


    Pourquoi nous préférons push

    D'abord quelques informations de base sur ssh. Ssh permet de se connecter à des comptes sur différentes machines de façon sécuritaire. Non seulement les mots de passe ne sont jamais envoyé en clair, mais une fois connecté à une machine vous êtes garanti que les futures connexions se feront à la même machine. Ceci évite les attaques du type homme-au-milieu.

    Une fonction de ssh est la possibilité pour un utilisateur de prendre la clef publique de l’utilisateur d'une autre machine et del'Ajouter aux clefs autorisé de sa machine. Par défaut, l'utilisateur sur l'autre machine ( qui possède la clef privée associée à la clef publique qui vous a été donnée) as le privilège de pouvoir se connecter à votre compte. Il est cependant possible d'ajouter du texte à une clef autorisée pour restreindre le type d’accès que peut faire cette personne.

    Ainsi pour protéger le miroir esclave, la clef fournie par le miroir maitre a une option ajoutée pour limiter son utilisation à seulement — démarrer le programme de synchronisation sur votre machine. Ainsi même si un quelqu'un (un tiers mal intentionné) était capable de casser la clef, la seule chose qu'il pourrait faire c'est lancer une synchronisation sur votre machine. Ne vous souciez même pas du risque que plusieurs sessions puissent être lancées simultanément car un fichier lock est utiliser pour éviter cela.

    Sur le serveur maitre, rsync peut être configuré pour restreindre qui peut mettre à jour une zone précise par nom et mot de passe. Ceux-ci sont indépendants de /etc/passwd, un serveur push n'a donc pas besoin de s’inquiéter de donner accès à leur machine. Une fois configuré, le nom d’utilisateur et le mot de passe, sont transmis en clair. Ce qui ne doit être un problème car le pire que puisse faire un tiers mal intentionné serait de lancer une synchronisation du paquet SME Server depuis ce site.

    (source: Debian: Push mirroring)

    Comment push fonctionne

    Voici une description courte du processus de push :

    1. le miroir maitre met à jour le fichier timestamp ;
    2. le miroir maitre initie le miroir tiers 1 pour commencer l'étape 1 de synchronisation (wait) ;
    3. le miroir tiers 1 synchronise tout sauf les repodata des cibles désignées (n'efface rien) ;
    4. le miroir tiers 1 initie le miroir tiers 2 pour commencer l'étape 1 de synchronisation (wait) ;
    5. répétition des étapes précédentes pour tous les miroirs tiers en dessous du niveau 2 ;
    6. le miroir maitre initie le miroir tiers 1 pour commencer l'étape 2 de synchronisation ;
    7. le miroir tiers 1 synchronise toutes les cibles désignées (avec effacement) ;
    8. le miroir tiers 1 initie le miroir tiers 2 pour commencer l'étape 2 de synchronisation ;
    9. répétition des 3 étapes précédentes pour toutes les miroirs tiers en dessous du niveau 2 ;
    10. le miroir maitre verifie la mise à jour des miroirs et génère une liste des miroirs à jour.
    Configurer pour push

    Le système push utilise une paire de clefs SSH publique et privée pour la communication, pour cela vous devez exécuter quelques commandes de configuration supplémentaires :

    1. D’abord vous devez avoir SSH de configuré et en service sur votre serveur. Si vous utilisez un serveur SME pour votre miroir, vous devez autoriser l’accès à distance sur le gestionnaire du serveur.
    2. Vous devrez aussi autoriser bash comme shell pour l'utilisateur pour la synchronisation du miroir.
      Si vous utilisez un serveur SME, vous pouvez le faire ainsi : db accounts setprop {user} Shell /bin/bash signal-event user-modify {user}
    3. Vous devrez aussi ajouter la clef dans le fichier authorized_keys file de cet utilisateur : su - {user} -s /bin/bash cat .ssh/pushmirror-*.pub >> .ssh/authorized_keys
    Configurer pour pull
    Important.png Note :
    nous préférons que vous configuriez votre miroir en mode push, mais si vous ne pouvez le faire ou avez d'autres raisons pour ne pas le faire, vous pouvez configurer votre miroir en mode pull.


    Important.png Note :
    voir la liste des bogues en bas de la page concernant l'erreur sur la demande d'extraction ftpsync lors de l'utilisation de cette version de ftpsync, voir Bugzilla 11754.


    Configurer un miroir en mode pull est simple. Il suffit de mettre en place un tâche cron toutes les 2 heures qui fasse la même commande que vous avez fait la première fois, vous pouvez ajouter une ligne comme ceci:

    1 */2  * * *  {user} ~/bin/ftpsync
    

    Attention à utiliser les templates-custom pour /etc/crontab si vous utilisez le serveur Koozali SME.

    Publicité de votre miroir

    Après que votre miroir soit synchronisé, faites le nous savoir, en remplissant un formulaire de bogue sur bugs.contribs.org dans la catégorie site SME "SME Website", ou simplement en cliquant sur ce lien link . Merci de fournir les renseignements suivants :

    • nom du site ;
    • contact principal nom/adresse électronique ;
    • localisation/pays ;
    • bande passante disponible pour le miroir ;
    • URL pointant vers le site (pour tester les mises à jour et pour yum) ;
    • hôte pour se connecter (pour ssh) ;
    • port de connexion (pour ssh) ;
    • utilisateur pour se connecter (pour ssh).

    Options de configuration

    Le fichier de configuration ftpsync est dans ~/etc/ftpsync-smeserver.conf. Le fichier de configuration ftpsync a un nombre d'options que vous pouvez modifier. Vous devez en avoir vu certaines si vous avez modifié la localisation du dossier de stockage des données dans la procédure de configuration. Le fichier de configuration est bien documenté mais nous discuterons de certaines fonctionnalités ici.

    Incomplete.png Incomplete:
    This article or section needs to be expanded. Please help to fill the gaps or discuss the issue on the talk page


    Configure your mirror as hub

    this is intented to do on an already synced mirror in push mode.

    setting up rsync as server

    as root.


    open /etc/xinetd.d/rsync and remove the disabled line

    vim /etc/xinetd.d/rsync
    

    create a rsyncd.conf file

    vim /etc/rsyncd.conf
    

    then add this

    # rsync.conf
    uid = {USEROWNING THE MIRROR FILES}
    gid = {GROUP OWNING THE MIRROR FILES}
    use chroot = yes
    max connections = 5
    timeout = 300
    read only = true
    strict modes = true
    transfer logging = true
    dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
    
    [smeserver]
        path = /home/e-smith/files/ibays/{IBAY}/html
        comment = SME Server Mirror
        hosts allow = {YOUR CLIENT IP}
    

    install xinetd

    yum install xinetd
    

    configure as services

    ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S91xinetd
    config set xinetd service status enabled
    config set rsyncd service TCPPort 873 access public status enabled
    signal-event remoteaccess-update
    service xinetd start
    


    configure hosts.allow

    mkdir -p /etc/e-smith/templates-custom/etc/hosts.allow/
    echo "rsync: ALL" > /etc/e-smith/templates-custom/etc/hosts.allow/rsync
    signal-event remoteaccess-update
    

    you can browse your server like this

    rsync --list-only rsync://YourIP
    

    you can download from your server like this

    rsync -avz  YourIP::smeserver YourLocalFolder
    

    create a rsa file

    as user responsible of ftpsync.

     ssh-keygen -qt rsa -b 1024 -C "contribs-push@{MY MIRROR}" -f ~/.ssh/contribs-push\@{MY MIRROR}.rsa
    

    then to protect the key and limit it to one usage and only one IP. You need to change {MY MIRROR} and {MY HUB IP }

    echo "no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command=\"~/bin/ftpsync\",from=\"{MY HUB IP }\" "|cat - ~/.ssh/contribs-push\@{MY MIRROR}.rsa.pub > ~/.ssh/contribs-push.tmp && mv ~/.ssh/contribs-push.tmp ~/.ssh/contribs-push\@{MY MIRROR}.rsa.pub
    

    finally protect your keys

    chmod 0600 ~/.ssh/contribs-push\@{MY MIRROR}.rs*
    

    never give your private key, only send your public (.pub) to the downstream mirror.

    setting up ftpsync-smeserver.conf

    as user responsible of ftpsync.


    this step will allow your ftpsync to know that he need to trigger another server

    edit ~/etc/ftpsync-smeserver.conf

    vim ~/etc/ftpsync-smeserver.conf
    

    under the line #HUB=false, insert

    HUB=true
    

    setting up runmirrors-smeserver.conf

    as user responsible of ftpsync.


    vim ~/etc/runmirrors-smeserver.conf
    

    then comment out the following line and adapt it to the path of you private key

    KEYFILE=.ssh/contribs-push\@{MY MIRROR}.rsa
    

    setting up runmirrors-smeserver.mirror

    as user responsible of ftpsync.


    edit the file

    vim ~/etc/runmirrors-smeserver.mirror
    

    add the following at the end of the file

    mhop {NAME FOR LOG PURPOSE} {YOUR CLIENT ADRESS} {YOUR CLIENT USER} -p {YOUR CLIENT SSH PORT}
    


    Configure your mirror under another hub

    follow : http://wiki.contribs.org/Mirrors#How_to_become_a_mirror_site.3F

    except you will have to import your own public key (generated just above)

    then you will have to tunes :

    vim ~/etc/ftpsync-smeserver.conf
    

    change RSYNC_HOST= to point to your hub mirror

    RSYNC_HOST={HUB MIRROR ADRESSE}
    

    tada! you are done!

    Current SME Server contribs.org Mirror Tree

    koozali.org mirrors mirror.canada.pialasse.com

    Rsync, Push

    smeserver.bhs.mirrors.ovh.net

    Rsync / 1GPs /pull %36h

    distro.ibiblio.org

    Rsync, Push

    ftp.iinet.net.au

    mirror.internode.on.net

    ftp.icm.edu.pl

    mirror.pialasse.com

    Push

    sme-mirror.tw.co.nz

    Pull

    sme-mirror.firewall-services.com

    Pull

    ibsgaarden.dk

    Push

    mirrors.rbx.opencare.nl

    Push

    ftp.nluug.nl / ftp.vim.org

    Pull

    ftp.icm.edu.pl

    Pull

    mirrors.mab974.re

    Pull

    www.mirrorservice.org

    Rsync, Pull

    RSYNC access

    1. ibiblio : rsync://distro.ibiblio.org/smeserver/releases/ ( rsync -avv --stats distro.ibiblio.org::smeserver/releases . )
    2. mirror.canada.pialasse.com: rsync -avv mirror.canada.pialasse.com::smeserver/releases .
    3. mirrorservice.org : rsync//rsync.mirrorservice.org/sites/mirror.contribs.org/smeserver/releases/ (rsync -avv --stats rsync.mirrorservice.org::mirror.contribs.org/smeserver/releases/ . )

    FTP access

    1. ftp://distro.ibiblio.org/smeserver/releases/

    Bogues

    Veuillez ouvrir les bogues dans la section SME-Server 10.X de Bugzilla et sélectionner le composant Mirrors ou utiliser ce lien .

    Aperçu ci-dessous des problèmes en cours pour ce paquet :

    IDProductVersionStatusSummary (5 tasks)
    12332SME Web siteUnknownUNCONFIRMEDMirror Request
    12214SME Web siteUnknownRESOLVEDUpdate of mirrors.rbx.opencare.nl
    11574SME Web siteUnknownCONFIRMEDftpsync error - pull mode mirror
    11487SME Web siteUnknownCONFIRMEDredirect on mirrors based on geoip
    10838SME Web siteUnknownCONFIRMEDNo public keys included in ftpsync.tgz, so impossible to setup a push mirror