Mettre en place un miroir de l'archive Debian

Dans quel cas faire un miroir ?

Même si nous apprécions tout nouveau miroir, chaque responsable potentiel de miroir doit s'assurer qu'il peut répondre aux questions suivantes avant de commencer à mettre en place son propre miroir :

De quoi faire un miroir ?

La page principale des miroirs liste les archives qu'il est possible de dupliquer.

Veuillez voir la page des tailles des miroirs pour des informations plus précises sur les tailles des miroirs.

L'archive debian-security/ contient les mises à jour de sécurité éditées par l'équipe de sécurité de Debian. Elle semble intéressante pour tout le monde, mais comme les mises à jour de sécurité sont sporadiques, il faudrait synchroniser le miroir très souvent pour être à jour (ou utiliser un miroir push) aussi nous ne recommandons pas de la dupliquer. Au lieu de cela, Debian fait tous les efforts possibles pour conserver la haute disponibilité de security.debian.org.

N.B. : l'archive debian-non-US est obsolète depuis la sortie de Debian 3.1 (Sarge) en juin 2006.

À partir d'où faire un miroir ?

Beaucoup de gens pensent que ftp.debian.org est l'emplacement canonique des paquets Debian et que faire un miroir de ce site est ce qu'il y a de mieux. Ce n'est pas vrai.

ftp.debian.org est seulement l'un des serveurs mis à jour à partir d'un serveur Debian interne. Cette adresse pointe actuellement vers un unique serveur, et existe encore principalement pour des raisons de compatibilité ascendante.

Les miroirs officiels sont censés être de bonnes sources. Tout serveur parmi ceux qui se trouvent dans la liste complète des miroirs portant la marque Type: Push-Primary ou Type: Push-Secondary est un bon candidat pour la source d'un miroir. Merci d'utiliser un miroir qui soit proche de vous, au sens de la proximité réseau.

Il n'y a pas de différences significatives entre différents miroirs serveurs Push-Primary comme origine du miroir. De plus, si beaucoup de gens utilisent ftp.debian.org (et malheureusement c'est le cas), cela gaspille inutilement la bande passante que l'on nous donne.

Les administrateurs de miroirs situés aux États-Unis devraient mettre à jour leur miroir depuis ftp.us.debian.org (le miroir officiel pour les États-Unis, qui est un miroir Push-Primary). Or comme cette adresse est un alias pour plusieurs serveurs, il est recommandé de déterminer lequel vous convient le mieux et de mettre à jour le miroir depuis l'un d'entre eux.
Cela a pour avantage d'éviter les ennuis lors du rsync en deux étapes (puisque les différentes étapes risquent d'être effectuées sur des serveurs différents, et tomber à des instants où les données sont différentes, provoquant une problème de concurrence).

Comment faire un miroir

La méthode recommandée pour faire tourner un miroir est d'utiliser le script ftpsync, disponible de deux manières :

Le protocole fortement recommandé est rsync.

Merci de ne pas utiliser wget ou d'autres outils FTP. Ils semblent fonctionner correctement, mais posent beaucoup de problèmes : ils ne détectent pas les liens réels « hard », il est difficile d'effectuer des répliques partielles de l'archive, etc.

Configuration de rsync

Nous recommandons l'utilisation de ftpsync pour faire un miroir de l'archive. Suivez les indications se trouvant dans le fichier README pour mettre en place le miroir.

Si vous devez utiliser vos propres scripts, ceux-ci doivent intégrer les fonctionnalités indispensables ci-dessous :

Miroir partiel

Considérant la taille déjà importante de l'archive Debian, certaines personnes préfèrent ne faire un miroir que des quelques parties dont ils ont besoin. Si vous voulez en exclure une partie, vous devriez exclure les architectures.

Avec le script recommandé ftpsync, cela peut se faire en modifiant la variable ARCH_EXCLUDE.

Nous déconseillons vivement d'exclure les sous-répertoires project/, doc/ et autres. Ils sont généralement négligeables quant à leur taille et cependant utiles aux utilisateurs. En particulier project/trace aide beaucoup en cas de problème de miroir.

Il est possible d'utiliser d'autres scripts spécialement écrits, mais ils sont généralement inutiles et déconseillés pour les miroirs officiels.

Quand rafraîchir les miroirs ?

L'archive principale est mise à jour quatre fois par jour.

En général les miroirs commencent à se mettre à jour à partir de 03:00, 09:00, 15:00 et 21:00 (UTC), mais ce ne sont pas des horaires fixes et vous ne devriez pas régler votre opération de miroir à ces horaires.

Votre miroir devrait être mis à jour quelques heures après l'une des mises à jour de l'archive principale. Vous devriez regarder si le site à partir duquel vous faites votre miroir laisse un fichier timestamp dans son sous-répertoire project/trace/. Ce fichier aura le même nom que le site, et il contiendra l'heure de la fin de la dernière mise à jour du site. Ajoutez-y quelques heures (pour plus de sécurité) et vous obtiendrez le moment auquel lancer votre processus miroir.

La meilleure façon de faire tourner le miroir automatiquement tous les jours est d'utiliser cron. Consultez man crontab pour de plus amples précisions.

Notez que si votre site utilise un mécanisme Push pour lancer sa mise à jour, alors vous n'avez à vous soucier d'aucun de ces problèmes.

rsync avec authentification, à partir d'un miroir Push

Nous avons développé les miroirs de type Push, qui utilisent rsync et visent à minimiser le temps que mettent les changements de l'archive pour atteindre les miroirs. Un miroir amont utilise un script déclencheur SSH pour indiquer au miroir client qu'il doit se mettre à jour. Le mécanisme de Push est généralement limité à un script déclencheur unique sans variable, de sorte que le miroir se fait toujours par Pull, comme une tâche cron.

Les miroirs Push sont nécessaires pour garder synchrones un ensemble de serveurs (comme les serveurs dans des alias DNS en round-robin, par exemple ftp.us.debian.org), et nous les utilisons pour nos miroirs de premier et deuxième niveaux. En revanche, puisque cette méthode demande un peu plus d'effort, elle n'est pas souvent mise en place pour les miroirs privés.

Pour une description plus détaillée de la manière dont cette méthode fonctionne, des raisons pour lesquelles elle est sûre et de la façon de la mettre en place, voyez les explications complètes.

Configuration supplémentaire recommandée

Si vous voulez rendre le miroir Debian disponible par HTTP, merci de rajouter les options suivantes à votre configuration d'Apache (en supposant bien sûr que vous utilisez Apache) dans le paragraphe <Directory /chemin/vers/votre/miroir/debian>, où /chemin/vers/votre/miroir/debian/ doit être remplacé par le nom du répertoire dans lequel vous gardez le miroir :

   Options +Indexes +SymlinksIfOwnerMatch
   IndexOptions NameWidth=* +SuppressDescription

Cela met en place les index de répertoires et assure que les liens symboliques fonctionnent. Les noms de fichier dans les index de répertoires ne seront pas tronqués et les descriptions (qui le plus souvent n'existent pas) n'apparaîtront pas.

Dans le cas d'Apache 1.3.x, l'option suivante peut également être ajoutée :

   DirectoryIndex .

N'ajoutez pas cette option à Apache 2.x.

Comment ajouter un miroir à la liste des miroirs ?

Une fois qu'un miroir est mis en place, il doit être enregistré par Debian de façon à être inclus dans la liste des miroirs. Les inscriptions peuvent être faites en utilisant notre simple formulaire web.

Problèmes et questions peuvent être envoyés à mirrors@debian.org.