Modifications entre les versions 1 et 26 (s'étendant sur 25 versions)
Version 1 à la date du 2007-06-25 13:01:24
Taille: 1113
Commentaire: en cours de migration/ajustement
Version 26 à la date du 2009-05-07 19:13:48
Taille: 5395
Éditeur: ThomasNoël
Commentaire: mises à jour, encore
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
== Maintenir un miroir Debian/Ubuntu localement == <<TableOfContents>>
Ligne 3: Ligne 3:
=== Avantages === Cette page explique comment mettre en place et maintenir un miroir Debian/Ubuntu
Ligne 5: Ligne 5:
Installer un miroir Debian sur son réseau local peut-être pratique pour rendre plus rapide l'installation et la mise à jour de paquets sur ses machines. En effectuant les mises à jour la nuit ;-) cette méthode permet de libérer la bande passante le jour (en théorie, lorsqu'on travaille) = Pourquoi avoir un miroir local ? =
Ligne 7: Ligne 7:
=== Contraintes ===  * Installer un miroir Ubuntu sur son réseau local rend plus rapide l'installation et la mise à jour de paquets sur ses machines.
 * Un miroir Debian permet d'installer et maintenir facilement son parc de serveur
 * En effectuant les mises à jour des miroirs la nuit, cette méthode permet de libérer la bande passante le jour.
Ligne 9: Ligne 11:
une connection Internet correcte, stable, du courant la nuit et de la place sur le disque dur : = Contraintes =
Ligne 11: Ligne 13:
 * XX Go debian (Etch arch=i386)
 * XX Mo debian-security (Etch, arch=i386)
 * 16 Go ubuntu (Feisty arch=i386)
 * 604 Mo ubuntu-security (Feisty arch=i386)
Il faut avoir une connection Internet correcte (256kbps minimum), stable, du courant la nuit et un GROS disque dur :
 * 50Go pour [[Debian]] Etch+Lenny i386+amd64 (sans doute la moitié pour une seule architecture)
 * 10Go pour Debian "security" Etch+Lenny i386+amd64 (mesuré le 4 mai 2009)
 * 70Go pour [[Ubuntu]] Hardy+Intrepid+Jaunty i386
Ligne 16: Ligne 18:
<!> Si quelqu'un peut remplir pour debian, mon miroir contient aussi l'architecture amd64 - MS Attention : sur une bande passante moyenne, commencer un miroir à partir de rien n'est absolument pas raisonnable. Il faut commencer avec une archive de base qui sera soit un miroir assez récent obtenu chez un collègue (sur un disque dur USB2 par exemple), soit un ensemble de cédéroms ou dévédéroms (opération assez complexe, voir en bas de la page).
Ligne 18: Ligne 20:
=== Debmirror === = Principe général =
Ligne 20: Ligne 22:
 * Installer '''debmirror'''  1. Ecrire un script de mise à jour du miroir (par exemple dans /usr/local/bin/miroirs-debian.sn), voir des exemples ci-dessous
 1. Créer un utilisateur `miroir` dédié à cet usage, lui donner les droits `rwx` dans les répertoires où seront téléchargés les miroirs (et nulle part ailleurs)
 1. Tester le script en le lançant à la main, depuis cet utilisateur `miroir`
 1. Si tout va bien, placer le script dans un ''cron''. Par exemple :
 {{{
# extrait du fichier /etc/cron.d/miroirs

# Lancement du miroir Debian tous les soirs à 20h, par l'utilisateur "miroir" créée spécifiquement :
0 20 * * * miroir /usr/local/bin/miroirs-debian.sh
# 4 heures plus tard, on lance le miroir d'Ubuntu :
0 0 * * * miroir /usr/local/bin/miroirs-ubuntu.sh
}}}

== Solution 1 (recommandée) : scripts utilisant debmirror ==

Installer d'abord le logiciel `debmirror`. Lisez la documentation (`man debmirror` et `debmirror --help`) : elle est très bien faite.

Ces scripts permettent de créer puis de mettre à jour un miroir :
 * pour Debian : [[attachment:miroir-debian.sh]]
 * pour Ubuntu : [[attachment:miroir-ubuntu.sh]]


== Solution 2 (à valider) : apt-mirror ==

Solution actuellement utilisée pour les miroirs à Montréal. /* à confirmer */

 * [[http://packages.debian.org/etch/apt-mirror|le paquet Debian]]
 * c'est une solution qui semble mieux "maintenue" (`debmirror`, c'est quand même un gros ''hack'')
 * `apt-mirror` permet apparement de faire des mirroirs installables en réseau sans trop se fatiguer (c'est prévu, quoi, sans bidouiller)
 * à tester : http://ubuntu-tutorials.com/2008/06/10/how-to-create-an-ubuntu-repository-mirror-on-ubuntu-804/

== Solution 3 (à tester) : reprepro ==

Nous ne l'avons encore jamais mis en place, mais elle semble intéressante. Voir ici : http://lostwebsite.wordpress.com/2008/10/21/partial-debian-mirrors/

= Faire le miroir d'un (ou plusieurs) PPA, avec debmirror =

''PPA'' (Personal Package Archives) est un système qui permet à tout le monde de faire héberger ses paquets sur Launchpad, le système de Canonical/Ubuntu. On trouves des PPAs quasi-officiels qui permettent, par exemple, l'installation d'OpenOffice 3 sur Ubuntu Hardy ou Intrepid.

Voici un script [[attachment:debmirror-ppa.sh]] qui appelle debmirror avec les bons paramètres pour faire le miroir d'un PPA donné.

----

= Annexes =

== Débuter un miroir à partir des cédéroms ==

Les DVD de Debian et Ubuntu alternate (etch, gutsy et hardy sont les distributions pour lesquels j'ai testé cette méthode) comporte une arborescence classique comprenant les répertoires pool et dists à la racine de chaque dvd. Pool contient les différents paquets de la distribution, et dists contient pour chaque distributions (en supposant qu'on dispose de dvd de plusieurs distributions de ubuntu par exemple) la liste des paquets et les versions correspondantes. Les paquets décrits dans les listes contenues dans les répertoires dists sont en principe dans le répertoire pool.

Pour copier le contenu de ces répertoires vers la racine de notre miroir, l'utilisation de rsync par exemple peut être envisagé de la façon suivante pour chaque DVD :
Ligne 23: Ligne 74:
$sudo aptitude install debmirror # mount /media/cdrom
$ rsync -av /media/cdrom/pool /srv/www/miroirs/ubuntu/pool
$ rsync -av /media/cdrom/dists /srv/www/miroirs/ubuntu/dists
# umount -l /media/cdrom
Ligne 26: Ligne 80:
 * Choisir les options pour la création du miroir : Une fois tous les dvd copiés, il suffit de mettre en marche les différents scripts présentés ci-dessus pour terminer la mise à jour du miroir et le téléchargement des dernières versions des fichiers Release, Packages et Contents.
Ligne 28: Ligne 82:
{{{
$man debmirror
}}}
== Vérifier la place occupée par distribution/section/architecture ==
Ligne 32: Ligne 84:
 * Ecrire et ajuster un script de mise à jour du miroir Voici un petit script permettant de calculer la place utilisée globalement ou par distribution, section ou architecture dans le miroir : [[attachment:taille-miroir.sh]]
Ligne 34: Ligne 86:
=== Exemples pour Debian et Ubuntu ===

=== Annexes ===

=== Débuter un miroir à partir des cédéroms ===
/!\ Attention : vu que tout est mis en vrac dans un ''pool'', il se base sur les informations déclarées dans les fichiers `Packages`, ce qui suppose donc un miroir en bon état faute de quoi les calculs ne refléteraient pas la réalité.

Cette page explique comment mettre en place et maintenir un miroir Debian/Ubuntu

Pourquoi avoir un miroir local ?

  • Installer un miroir Ubuntu sur son réseau local rend plus rapide l'installation et la mise à jour de paquets sur ses machines.
  • Un miroir Debian permet d'installer et maintenir facilement son parc de serveur
  • En effectuant les mises à jour des miroirs la nuit, cette méthode permet de libérer la bande passante le jour.

Contraintes

Il faut avoir une connection Internet correcte (256kbps minimum), stable, du courant la nuit et un GROS disque dur :

  • 50Go pour Debian Etch+Lenny i386+amd64 (sans doute la moitié pour une seule architecture)

  • 10Go pour Debian "security" Etch+Lenny i386+amd64 (mesuré le 4 mai 2009)
  • 70Go pour Ubuntu Hardy+Intrepid+Jaunty i386

Attention : sur une bande passante moyenne, commencer un miroir à partir de rien n'est absolument pas raisonnable. Il faut commencer avec une archive de base qui sera soit un miroir assez récent obtenu chez un collègue (sur un disque dur USB2 par exemple), soit un ensemble de cédéroms ou dévédéroms (opération assez complexe, voir en bas de la page).

Principe général

  1. Ecrire un script de mise à jour du miroir (par exemple dans /usr/local/bin/miroirs-debian.sn), voir des exemples ci-dessous
  2. Créer un utilisateur miroir dédié à cet usage, lui donner les droits rwx dans les répertoires où seront téléchargés les miroirs (et nulle part ailleurs)

  3. Tester le script en le lançant à la main, depuis cet utilisateur miroir

  4. Si tout va bien, placer le script dans un cron. Par exemple :

    # extrait du fichier /etc/cron.d/miroirs
    
    # Lancement du miroir Debian tous les soirs à 20h, par l'utilisateur "miroir" créée spécifiquement :
    0 20 * * * miroir /usr/local/bin/miroirs-debian.sh
    # 4 heures plus tard, on lance le miroir d'Ubuntu :
    0 0 * * * miroir /usr/local/bin/miroirs-ubuntu.sh

Solution 1 (recommandée) : scripts utilisant debmirror

Installer d'abord le logiciel debmirror. Lisez la documentation (man debmirror et debmirror --help) : elle est très bien faite.

Ces scripts permettent de créer puis de mettre à jour un miroir :

Solution 2 (à valider) : apt-mirror

Solution actuellement utilisée pour les miroirs à Montréal.

Solution 3 (à tester) : reprepro

Nous ne l'avons encore jamais mis en place, mais elle semble intéressante. Voir ici : http://lostwebsite.wordpress.com/2008/10/21/partial-debian-mirrors/

Faire le miroir d'un (ou plusieurs) PPA, avec debmirror

PPA (Personal Package Archives) est un système qui permet à tout le monde de faire héberger ses paquets sur Launchpad, le système de Canonical/Ubuntu. On trouves des PPAs quasi-officiels qui permettent, par exemple, l'installation d'OpenOffice 3 sur Ubuntu Hardy ou Intrepid.

Voici un script debmirror-ppa.sh qui appelle debmirror avec les bons paramètres pour faire le miroir d'un PPA donné.


Annexes

Débuter un miroir à partir des cédéroms

Les DVD de Debian et Ubuntu alternate (etch, gutsy et hardy sont les distributions pour lesquels j'ai testé cette méthode) comporte une arborescence classique comprenant les répertoires pool et dists à la racine de chaque dvd. Pool contient les différents paquets de la distribution, et dists contient pour chaque distributions (en supposant qu'on dispose de dvd de plusieurs distributions de ubuntu par exemple) la liste des paquets et les versions correspondantes. Les paquets décrits dans les listes contenues dans les répertoires dists sont en principe dans le répertoire pool.

Pour copier le contenu de ces répertoires vers la racine de notre miroir, l'utilisation de rsync par exemple peut être envisagé de la façon suivante pour chaque DVD :

# mount /media/cdrom
$ rsync -av /media/cdrom/pool /srv/www/miroirs/ubuntu/pool
$ rsync -av /media/cdrom/dists /srv/www/miroirs/ubuntu/dists
# umount -l /media/cdrom

Une fois tous les dvd copiés, il suffit de mettre en marche les différents scripts présentés ci-dessus pour terminer la mise à jour du miroir et le téléchargement des dernières versions des fichiers Release, Packages et Contents.

Vérifier la place occupée par distribution/section/architecture

Voici un petit script permettant de calculer la place utilisée globalement ou par distribution, section ou architecture dans le miroir : taille-miroir.sh

/!\ Attention : vu que tout est mis en vrac dans un pool, il se base sur les informations déclarées dans les fichiers Packages, ce qui suppose donc un miroir en bon état faute de quoi les calculs ne refléteraient pas la réalité.

Miroir (dernière édition le 2011-02-02 19:33:19 par MoussaNombre)