Histoire d’avoir ça toujours sous la main, voilà la procédure pour créer un miroir d’un dépôt Debian. Tout d’abord, il faut déterminer si le dépôt que l’on veut copier permet de passer par rsync ou non.
Dépôt avec accès rsync
On installe le paquet rsync:
apt-get install rsync
On télécharge le fichier de configuration:
wget http://www.debian.org/mirror/anonftpsync
Si l’on souhaite synchroniser plusieurs miroirs avec rsync, enregistrez ce fichier avec un nom unique. Par exemple, debian-sync, debian-multimedia-sync, etc.
Dans ce fichier, modifier les lignes suivantes:
TO=<répertoire de destination>
RSYNC_HOST=<hôte du dépôt>
RSYNC_DIR=<répertoire du dépôt>
LOGDIR=<fichier journal>
ARCH_EXCLUDE=<toutes les architectures à exclure, séparées par des espaces>
L’hôte du dépôt peut être sélectionné depuis la liste des miroirs Debian. Il ne s’agit que du nom de domaine (par exemple: ftp2.fr.debian.org).
Pour la variable RSYNC_DIR, connectez-vous au dépôt dont vous voulez faire un miroir, et placez-vous à la racine de ce dépôt. Généralement, RSYNC_DIR aura pour valeur debian, dans la mesure où il devrait exister un répertoire de ce nom, immédiatement à la racine du serveur.
LOGDIR contient le chemin complet vers le répertoire où seront stockés les fichiers journaux. Attention si vous faites plusieurs miroirs avec le même LOGDIR: vous devrez modifier la variable LOGFILE plus bas dans le fichier de configuration, pour éviter que les journaux s’écrasent mutuellement.
La liste des architectures disponibles est présente dans la description de la variable ARCH_EXCLUDE: il suffit de copier celles dont on ne veut pas, entre guillemets.
Une fois la configuration terminée, il ne reste plus qu’à rendre le script exécutable:
chmod +x /scripts/debian-rsync
Et à l’exécuter une première fois:
/scripts/debian-rsync
Attention, ça va prendre plusieurs heures, voire une nuit entière.
Dépôt sans accès rsync
Dans le cas où le serveur que vous voulez copier ne propose pas de module rsync, vous devrez utiliser apt-mirror.
apt-get install apt-mirror
Après cette installation, vous trouverez un fichier mirror.list dans le dossier /etc/apt. Faites une copie de ce fichier, et donnez-lui un nom unique (comme tout à l’heure, mirror.list-debian ou mirror.list-debian-multimedia), puis éditez-le.
base_path correspond au répertoire cible, là où sera créé le dépôt. Laissez les autres variables telles quelles. Ajoutez ensuite la liste du ou des dépôt(s) à copier. Par exemple, pour ubuntu, nous aurons le fichier de configuration suivant:
set base_path /mnt/shares/debian-mirror/ubuntu
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
set defaultarch i386
set nthreads 4
set tilde 0
deb http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ lucid main/debian-installer
deb-amd64 http://archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu/ lucid main/debian-installer
clean http://archive.ubuntu.com/ubuntu
Vous noterez les lignes commençant par “deb-amd64”: il s’agit simplement d’indiquer à apt-mirror que l’on souhaite également faire un miroir des dépôts pour une architecture amd64. Si vous ne voulez que cette architecture et uniquement celle-là, remplacez la variable:
set defaultarch amd64
Et supprimez les lignes commençant par “deb-amd64”. Laconfiguration présentée ici est valable pour les architectures i386 et amd64.
Maintenant, nous allons créer l’arborescence cible (en fonction de la variable base_path définie ci-dessus):
mkdir -p /mnt/shares/debian-mirror/ubuntu/{var,skel,mirror}
On lance ensuite une première fois la copie:
apt-mirror /etc/apt/mirror.list-debian
Ici aussi, patience, la copie peut prendre plusieurs heures.
Automatisation de la mise à jour
On rajoute la ligne suivante dans la crontab, si on utilise rsync:
2 54 * * * /scripts/debian-rsync
Ou la ligne suivante, si on utilise apt-mirror:
2 54 * * * /usr/bin/apt-mirror /etc/apt-/mirror.list-debian
Vérifiez bien les chemins et les noms de fichiers, pour qu’ils correspondent à votre cas. Maintenant, chaque nuit, vos miroirs vont se mettre à jour tout seuls.
Rendre accessible les miroirs via http
Il faut, bien sûr, avoir un serveur http sous la main. Par exemple, apache. Créez un hôte virtuel, ayant pour racine, par exemple, /var/www/mirror.
L’idéal serait de mettre tous les miroirs dans un même répertoire, chaque miroir ayant son propre répertoire. Par exemple:
- Mirrors Debian Debian-multimedia Ubuntu etc.
Il suffit ensuite d’exécuter la commande suivante pour rendre un miroir disponible via http:
ln -s <chemin vers le miroir> /var/www/mirror/
Attention aux miroirs créés via apt-mirror: apt-mirror créé une arborescence particulière, du type <base_path>/mirror/
- base_path correspond à la variable du même nom spécifiée dans le fichier mirror.list
- host est généré automatiquement en fonction des dépôts spécifiés dans le fichier mirror.list
- et dist est également généré automatiquement
En reprenant l’exemple de notre fichier de configuration, le chemin complet vers notre dépôt ubuntu serait /mnt/shares/debian-mirror/ubuntu/mirror/archive.ubuntu.com/ubuntu. C’est un peu long, mais au moins, tout est bien organisé…
Conclusion
Pour finir, il faut ajouter notre dépôt à notre sources.list:
deb http://<adresse du serveur>/<root> <dist> <branches>
Taxonomies
Tags
- Apt-Mirror 1
- Debian 7
- Miroir 1
- Rsync 2
- Ubuntu 3
Richard Dern
Échanger autour de ce texte
Si vous souhaitez réagir publiquement, un fil dédié vous attend.
Ouvrir le fil de discussion