Mettre en place un miroir de l'archive Debian
- Dans quel cas faire un miroir ?
- De quoi faire un miroir ?
- À partir d'où faire un miroir ?
- Comment faire un miroir
- Miroir partiel
- Quand rafraîchir les miroirs ?
- Configuration supplémentaire recommandée
- Comment ajouter un miroir à la liste des miroirs ?
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 :
- Un miroir est-il nécessaire dans ma région ? Il existe peut-être déjà d'autres miroirs à proximité.
- Ai-je les ressources nécessaires pour héberger un miroir ? Les miroirs occupent une quantité importante d'espace disque et de bande passante, dont il faut s'engager à supporter le coût.
- Un miroir est-il le bon choix ? Parfois, certaines personnes démarrent
un miroir par erreur, alors qu'en fait elles veulent un serveur cache
mandataire (
proxy cache
), tel qu'apt-cacher-ng.
De quoi faire un miroir ?
La page principale des miroirs liste les archives qu'il est possible de dupliquer.
- Les utilisateurs cherchent l'archive dans debian/ pour installer Debian par le réseau, pour construire des CD (avec jigdo), ou pour mettre à jour des systèmes déjà installés.
-
debian-cd/ est une archive qui n'est pas identique sur tous les différents
serveurs miroirs. Sur certains sites, elle contient des modèles pour jigdo
(utilisés avec les fichiers dans debian/) à partir desquels il est possible de
construire des images de CD, sur certains des images de CD déjà construites, et
sur d'autres les deux.
De plus amples informations sont disponibles sur la page dédiée à la création d'un miroir pour les images de CD de Debian - debian-archive/ contient la véritable archive, les anciennes versions obsolètes de Debian. Elle n'est en général intéressante que pour une petite partie des utilisateurs.
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 :
- sous la forme d'une archive à l'adresse http://ftp-master.debian.org/ftpsync.tar.gz
- via le dépôt git : git clone https://ftp-master.debian.org/git/archvsync.git
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 :
la synchronisation DOIT se faire en deux étapes
La mise à jour de l'archive doit être effectuée en deux étapes. Lors du premier passage de rsync, les fichiers d'index doivent être ignorés, en utilisant la liste d'exclusion suivante :
--exclude Packages* --exclude Sources* --exclude Release* --exclude InRelease --exclude i18n/* --exclude ls-lR*La première étape ne doit pas supprimer un seul fichier.
La seconde étape doit ensuite effectuer le transfert des fichiers exclus ci-dessus et supprimer les fichiers qui n'appartiennent plus à l'archive.
Explication : lorsque la mise à jour de l'archive est faite en une seule étape, les fichiers d'index référencent des fichiers qui n'ont pas encore été récupérés.
un script en cours ne DOIT pas ignorer les signaux de déclenchement (dans le cas de miroir par repoussage).
Si un signal est reçu alors qu'une mise à jour du miroir est en cours, celui-ci ne DOIT PAS être ignoré. La mise à jour complète du miroir doit alors être effectuée à nouveau.
Explication : si un second signal est reçu alors qu'une première mise à jour est en cours, la plupart des scripts pour miroirs Debian laissent le miroir dans un état incohérent. Dans un futur proche, la fréquence de mise à jour de l'archive augmentera probablement.
- Lancez rsync avec au moins les options suivantes : --recursive --times --links --hard-links --delete.
- Même si vous avez de la place disque supplémentaire, utilisez l'option --delete-after pour éviter des problèmes de mise à jour temporaire.
- Une fois que rsync a fini de mettre à jour le miroir, ajoutez
un fichier « timestamp » au sous-répertoire
project/trace/du miroir Debian ayant le nom de votre serveur. Cela signifie lancer date -u > .../debian/project/trace/votre.serveur une fois que votre rsync journalier est terminé. - 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.
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.
