Créer un dépôt local complet pour son réseau

Discussion ICI

Salut,
Emballé par le soft que je présente aujourd’hui, j’ai décidé d’en faire un T&A.

Il s’agit de apt-cacher-ng (ac-ng)

Je sais que trois T&A sont existent déjà au sujet de la création de dépôts locaux. J’ai tout de même décider d’utiliser “ac-ng” :

  • Très simple à installer;
  • Utilisable par toutes les distributions à base de Debian;
  • Accessible depuis tout le réseau.

“Ac-ng” fonctionne de manière très simple. Quand une machine sur le réseau installe un paquet, “ac-ng” le “capte” et le copie dans son “cache”. Il est ainsi ensuite disponible pour toutes les autres machines du réseau, à la vitesse du réseau local :smiley:

Pas besoin d’avoir un réseau de taille démesuré pour avoir besoin de “ac-ng”… Une mauvaise connexion le justifie, l’envie de réinstaller rapidement en cas de crash, si vous testez souvent dans des machines virtuelles… Simplement vouloir éviter de saturer sa bande passante avec du téléchargement de paquets. Ou avoir envie de se la péter :mrgreen:

Il fonctionnerait sans proxy installé. (Info donnée par P’tit g. Je n’ai pas essayé sans, j’ai squid3 installé et fonctionnel alors… tant qu’a faire !)
J’ai donc squid3 qui écoute sur le port 3128, il faudra le préciser dans la configuration de “Ac-ng”

Il est déjà utilisé par certains sur le forum > viewtopic.php?p=221694#p221694

1) Installation

apt-get install apt-cacher-ng

2) Configurer le serveur

Un seul fichier à modifier : /etc/apt-cacher-ng/apcng.conf

CacheDir: /mnt/192.168.0.2/cache/apt-cacher-ng
# L'emplacement normal est /var/www/apt-cacher J'ai choisi un autre emplacement sur une partition LVM
LogDir: /var/log/apt-cacher-ng
Port:3142
BindAddress: localhost 192.168.0.1
# Pour plus de sécurité, réserver l'utilisation à son réseau local, mais rien n'empêche d'étendre...
#Remap-debian: file:deb_mirror*.gz /debian ; file:backends_debian
#Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu
VerboseLog: 1
ReportPage: acng-report.html
Proxy: http://192.168.0.1:3128
# Si vous avez un proxy, le préciser. Je pense que ça fonctionne aussi sans le proxy ? A vérifier
ExTreshold: 4

Concernant la commande Remap… Elle permet de mettre un peu d’ordre dans vos dépôts.
Moi j’ai choisis de faire sans…
Voici ce que ça donne (sans):

laurent@spider:/mnt/192.168.0.2/cache/apt-cacher-ng$ ls -l total 3016 drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 17 16:13 archive.canonical.com drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 16 08:53 deb.opera.com drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 12:13 dl.google.com drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 15 11:55 dotdeb.mirror.cambrium.nl drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 15 11:16 dotdeb.thefox.com.fr drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 11:14 download.virtualbox.org drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 16 08:54 download.webmin.com drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 17 08:39 fr.archive.ubuntu.com drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 16 08:54 ftp.debian-unofficial.org drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 11:06 ftp.fr.debian.org -rwxr-xr-x 1 apt-cacher-ng www-data 1011576 sep 18 19:42 _impkeycache drwxr-sr-x 2 apt-cacher-ng www-data 1966080 sep 19 11:27 _import drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 14:42 mirror.home-dn.net drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 11:23 packages.dotdeb.org drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 16 08:53 packages.enlightenment.org drwxr-sr-x 4 apt-cacher-ng www-data 4096 sep 18 09:33 packages.medibuntu.org drwxr-sr-x 4 apt-cacher-ng www-data 4096 sep 18 08:47 ppa.launchpad.net drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 16 08:53 repo.palatinus.cz drwxr-sr-x 4 apt-cacher-ng www-data 4096 sep 14 11:52 repository.elive-systems.com drwxr-sr-x 4 apt-cacher-ng www-data 4096 sep 14 11:52 security.debian.org drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 17 08:39 security.ubuntu.com drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 13:57 sidux.office-vienna.at drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 11:23 talweg.univ-metz.fr drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 11:06 volatile.debian.org drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 11:21 www.backports.org drwxr-sr-x 4 apt-cacher-ng www-data 4096 sep 14 15:00 www.debian-multimedia.org drwxr-sr-x 3 apt-cacher-ng www-data 4096 sep 14 11:22 www.lamaresh.net

En utilisant l’option Remap vous ac-ng va créer des sous-répertoires (Debian, Ubuntu…) qui servent à centraliser les mêmes dépôts issus de sites miroirs. Cela évite les dépôts “doublons”.

Ensuite, vous pouvez faire un lien symbolique de /mnt/192.168.0.2/cache/apt-cacher-ng vers /var/www/apt-cacher-ng histoire d’avoir un accès avec le serveur apache2/httpd (vous pouvez ainsi naviguer dans le dépôt depuis n’importe quelle machine du réseau). C’est juste un petit “gadget” en plus, aucune utilité réelle…

3) Configuration client

Il suffit d’éditer ou créer le fichier /etc/apt/apt.conf pour qu’il ressemble à ça :

Acquire::http { Proxy "http://192.168.0.1:3142"; };

Edit : Pour ceux qui utilisent apt-listbugs, ajouter cette ligne EN PREMIER dans apt.conf :

Acquire::http::Proxy::bugs.debian.org "DIRECT";

Il y a une deuxième solution qui consiste à modifier tous les sources.list, je ne détaille pas volontairement, c’est moins simple…

[ajouté]
Pensez aussi à changer le fichier /etc/apt/apt.conf du serveur pour que lui aussi participe à la maintenance de votre dépôt !
[/ajouté]

4) Importation de paquets déjà téléchargés ou présents sur vos DVD :

cd /mnt/192.168.0.2/cache mkdir apt-cacher-ng/_import
Copiez vos fichiers deb dans le cache (/mnt/192.168.0.2/cache/apt-cacher-ng/_import)

chown -R apt-cacher-ng apt-cacher-ng/_import

Faire un apt-get update sur tous les clients et sur le serveur

Puis ouvrir l’interface web de apt-cacher-ng “http://192.168.0.1:3142/acng-report.html” et cliquer simplement sur “start import”. Il va copier les deb à jour dans les bons dépôts du cache local

5 Pour conclure

[ajouté]
N’oubliez pas d’ouvrir sur le serveur le port du pare-feu (ici 3142) pour que les machines du réseau puissent accéder à ac-ng… :wink:
[/ajouté]

Pensez à uniformiser les sources.list des vos différentes machines, vous gagnerez du temps de connexion !

Entretien de la base…
Afin de ne pas avoir au bout de quelques mois un cache démesuré, surtout si des machines en SID traînent sur votre réseau, penser à la nettoyer de temps-en-temps… interface web de apt-cacher-ng “http://192.168.0.1:3142/acng-report.html” + “start expiration” Cela efface tous les paquets devenus obsolètes !

Grâce à ce serveur j’ai installé une Lenny avec debootstrap en une minute et 8 secondes…

J’ai remarqué que parfois des blocages arrivaient au niveau des clients pendant le téléchargement de paquets. C’est réglé par un simple redémarrage de ac-nglaurent@spider:/mnt/192.168.0.2/cache/apt-cacher-ng$ sudo /etc/init.d/apt-cacher-ng restart Restarting apt-cacher-ng: apt-cacher-ng.

Pour finir une image de l’interface dans le navigateur[attachment=0]capture d’écran34.jpeg[/attachment]

Je prends toutes les remarques, précisions et rajouts pour corriger les erreurs - et fautes d’orthographe - que j’ai (certainement) faites…
Merci à Yox et P’tit g pour l’idée et l’aide…
Discussion ici : viewtopic.php?f=3&t=22281

PS : purée c’est long à faire un T&A :wink:

Discussion ICI

Il n’y a pas une contradiction entre

[quote]Port:3142
BindAddress: localhost 192.168.0.1[/quote]
et

[quote]Code:
Acquire::http { Proxy “http://192.168.0.1:9999”; };[/quote]

Tu peux donner une idée de la taille disque que cela prend?

[quote=“fran.b”]Il n’y a pas une contradiction entre

[quote]Port:3142
BindAddress: localhost 192.168.0.1[/quote]
et

[quote]Code:
Acquire::http { Proxy “http://192.168.0.1:9999”; };[/quote]

Tu peux donner une idée de la taille disque que cela prend?[/quote]

Oui, je corrige… Chez moi j’utilise le port 9999… :blush:
Je rajoute aussi une ligne sur le pare-feu… sinon ça ne fonctionne pas, et sur le fait qu’il faut aussi faire participer le serveur au dépôt…

Taille :
Pour l’instant 20 Go Avec :
SID 64 (à jour) et 32 (à jour)
Lenny 64 (pas encore à jour) et 32 (à jour)
Ubuntu 904 (à jour) et 910 (pas encore à jour);
Sidux 64 (à jour - presque tout en commun avec SID);
Je n’ai pas encore terminé les mise à jour… (avec 15 kilos pas évident…)
J’ai aussi copier pas mal de DVD dans la base (7) - il reste 15 Go dans Import de paquets “obsolètes” (qui n’ont pas été importés) qu’il faut que j’efface (non compris dans les 20 Go).

Ok, cela donne une idée de la taille disque à consacrer à ce dépot, ça n’est pas négligeable…

bah, avec les nouveaux disques de 1To, pour 20 Go de + ou de - …
Bon, d’accord, quand on a des disques durs “normaux” de 100-300 Go, ça a son importance, et pas trop d’intérêt d’utiliser ce système, surtout si on n’a qu’une machine.

PS: lol, comment fais-tu pour installer en 1.08 minute par le réseau une chose qui me prend + d’une heure via le cd?

[quote=“L0u!$”]bah, avec les nouveaux disques de 1To, pour 20 Go de + ou de - …
Bon, d’accord, quand on a des disques durs “normaux” de 100-300 Go, ça a son importance, et pas trop d’intérêt d’utiliser ce système, surtout si on n’a qu’une machine.

PS: lol, comment fais-tu pour installer en 1.08 minute par le réseau une chose qui me prend + d’une heure via le cd?[/quote]
Salut,
Avec debootstrap.

sudo mkdir /media/deboot
sudo debootstrap lenny /media/deboot http://192.168.0.1:9999/ftp.fr.debian.org/debian/

C’est une installation tout à fait basique (sans noyau). Mais je suppose que tu connais… Au lieu d’aller chercher sur Internet il se sert dans la base de apt-cacher-ng à la vitesse de 100Mo… Ce n’est pas comparable avec une installation complète sur une machine. Mais ça aussi je vais essayer quand j’aurais terminer la réinstallation de mon serveur… Et malheureusement pour l’installation initiale du serveur, je ne peux pas me servir du cache :wink: Mais c’est la première chose que j’installe ensuite pour finir la configuration…

Je confirme qu’il fonctionne très bien sans proxy.

Ca permet aussi d’avoir plusieurs miroirs pour le même dépôt. Comme ça, si un miroir ne répond pas, acng en utilise un autre.

[quote]bling:/tmp# date ; debootstrap lenny gre ftp.fr.debian.org/debian/ ; date
dimanche 20 septembre 2009, 11:36:23 (UTC+0200)
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages…
I: Resolving dependencies of base packages…
[…]
I: Configuring apt-utils…
I: Configuring aptitude…
I: Configuring tasksel-data…
I: Configuring tasksel…
I: Base system installed successfully.
dimanche 20 septembre 2009, 11:38:48 (UTC+0200)
bling:/tmp#
[/quote]
soit 2 minutes 25 secondes pour une connexion directe (800-900K/s). C’est intéressant pour ceux qui ont une connexion faible…

Salut,

Je testerais avec ma connexion, je suis sur que c’est BEAUCOUP plus long (au moins la demi-heure dans mes souvenirs). 2 minutes 30 veinard ! :wink:

Je confirme qu’il fonctionne très bien sans proxy.

Ca permet aussi d’avoir plusieurs miroirs pour le même dépôt. Comme ça, si un miroir ne répond pas, acng en utilise un autre.[/quote]

Merci à toi,
Je compléterais le T&A le semaine prochaine… je suis en pleine réinstallation de mon serveur, c’est un peu la bourre… Donc c’est plus intéressant que je ne le pensais Remap… Je vais étudier de plus près et mettre mes conclusions. :smt006

[quote=“lol”]
Salut,
Avec debootstrap.

sudo mkdir /media/deboot
sudo debootstrap lenny /media/deboot http://192.168.0.1:9999/ftp.fr.debian.org/debian/

C’est une installation tout à fait basique (sans noyau). Mais je suppose que tu connais… [/quote]
Bah pas du tout en fait .

Je ne vois pas du tout comment on peut faire une installation sans noyau.

Tu copie ton noyau actuel vers la nouvelle install?

Re,

Imagine, tu as une partition libre.
Tu souhaites installer une nouvelle distro dessus (debootstrap en propose une trentaine je crois)…
Tu monte ta partition dans un dossier,
Tu lance debootstrap avec la distribution que tu souhaites.
Il crée un système de fichier de base sur cette partition.
Tu chroot pour y installer un noyau, des locales, configurer fstab, créer un utilisateur, configurer le réseau, etc.
Et tu as une partition prête à l’emploi… Il ne reste plus qu’a la mettre dans ton grub et “roule ma poule” (si j’ose dire :mrgreen: )

C’est vraiment super pratique !

Je n’ai pas de lien sous la main avec un tuto (mais il y a quelques T&A qui trainent, pas plus vieux que trois mois sur ce sujet sur le forum…)

:smt006

C’est aussi utile pour faire un environnement chroot (cohabitation stabeLsid par exemple, méthode que je préfère à celle consistant à mélanger les paquets).

Effectivement ça a l’air pratique, et ça me donne bien envie de le faire …
J’ai une ubuntu sur mon pc portable, et je voulais passer à debian.

Je pense que je vais adopter cette méthode.

Merci de l’explication!

J’ai peut être m***é quelque part mais j’ai essayé la semaine dernière apt-cacher-ng en passant par un proxy et ça ne fonctionnait pas (même en ayant parametré le proxy dans le fichier de conf adequat). J’ai refait une install en mettant le serveur en dmz et aucun soucis.

Bonjour,
Petit complément :
Il faut que je signale un bug de la version stable… mais qui est “contournable” !

apt-cacher-ng n’arrive pas à résoudre convenablement le dépôt volatile…

W: Impossible de récupérer http://volatile.debian.org/debian-volatile/dists/lenny/volatile/main/binary-amd64/Packages 403 Forbidden file type or location

Ce bug serait réglé avec la version “unstable” lists.debian.org/debian-devel-ch … 00182.html

Mais cela peut être réglé dans la version stable en changeant le dépôt par un miroir

Fonctionne avec ce miroir

Edition du 09/10/09 “miroir volatile” : deb ftp://ftp.proxad.net/mirrors/volatile.debian.net/ lenny/volatile main contrib non-free

Discussion ICI

[quote=“fran.b”][quote]bling:/tmp# date ; debootstrap lenny gre ftp.fr.debian.org/debian/ ; date
dimanche 20 septembre 2009, 11:36:23 (UTC+0200)
(…)
dimanche 20 septembre 2009, 11:38:48 (UTC+0200)
bling:/tmp#
[/quote]
soit 2 minutes 25 secondes pour une connexion directe (800-900K/s). C’est intéressant pour ceux qui ont une connexion faible…[/quote]Pourquoi pas time ?

Bonjour,

J’ai aussi voulu mettre en place un miroir local de paquets. Ça marche globalement sauf pour trois chose :
[ol]
[li]Parfois j’obtiens des 403 (cf. paste.aliens-lyon.fr/raw/xtH) et je ne vois pas pourquoi puisque à chaque fois mon gestionnaire de paquet fallback sur le répo upstream et réussi à prendre le paquet comme il faut.[/li]
[li]J’aimerais pouvoir avoir un index des fichiers téléchargés et non la page par défaut quand je vais sur le miroir avec un navigateur web.[/li]
[li][strike]Aussi, lors du premier téléchargement (quand je ne l’ai pas en local) je plafonne à 50 Ko/sec, je ne sais pas trop pourquoi.[/strike]
Je viens de trouver : c’est tout bonnement à cause de numéricâble.
Depuis une machine chez online.net, ça donne

alarig@ginette:~$ wget http://ftp-chi.osuosl.org/debian-cd/current/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso
--2015-02-18 17:52:35--  http://ftp-chi.osuosl.org/debian-cd/current/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso
Resolving ftp-chi.osuosl.org (ftp-chi.osuosl.org)... 64.50.236.52
Connecting to ftp-chi.osuosl.org (ftp-chi.osuosl.org)|64.50.236.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3972317184 (3.7G) [application/octet-stream]
Saving to: ‘debian-7.8.0-amd64-DVD-1.iso’

100%[============================================================================>] 3,972,317,184 6.20MB/s   in 12m 20s

2015-02-18 18:04:56 (5.12 MB/s) - ‘debian-7.8.0-amd64-DVD-1.iso’ saved [3972317184/3972317184]

Depuis chez moi,

[code]
alarig@airmure /tmp $ wget http://ftp-chi.osuosl.org/debian-cd/current/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso
–2015-02-18 18:07:48-- http://ftp-chi.osuosl.org/debian-cd/current/amd64/iso-dvd/debian-7.8.0-amd64-DVD-1.iso
Résolution de ftp-chi.osuosl.org… 64.50.236.52
Connexion à ftp-chi.osuosl.org|64.50.236.52|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 3972317184 (3,7G) [application/octet-stream]
Sauvegarde en : « debian-7.8.0-amd64-DVD-1.iso »

debian-7.8.0-amd64-DVD-1.iso 0%[ ] 27,80M 51,1KB/s eta 15h 35m
^C
[/code][/li][/ol]

Si cela peut vous aider, le miroir se trouve sur mirror.swordarmor.fr/

Merci pour vos réponses :slightly_smiling: