Modifications entre les versions 1 et 2
Version 1 à la date du 2008-07-08 09:07:36
Taille: 7599
Commentaire: rappatriement de page de l'ancien wiki
Version 2 à la date du 2008-07-08 11:31:11
Taille: 8046
Commentaire: révision : 1ère passe
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Cette page présente les miroirs mis en place au BAP. Cette page présente le modèle des miroirs mis en place au CNF de Hanoï.
Ligne 5: Ligne 5:
Il suffit d'ajouter les lignes suivantes à vos fichiers `/etc/apt/sources.list`.
__Note :__ toutes les sections utiles sont ici indiquées, mais vous pouvez n'en utiliser que certaines ; elles sont indépendantes.
On ne modifie plus les sources APT mais on intercepte les téléchargements au niveau du proxy transparent pour les rediriger vers le miroir local (cf [[Squid]]). Cela suppose bien sûr un miroir dans un parfait état et mis à jour tous les jours. Néanmoins, si on souhaitait tout de même un accès explicite au miroir il se ferait comme suit :
Ligne 8: Ligne 7:
==== Pour ''[Debian Debian] GNU/Linux "Sarge" 3.1'' : ====
{{{
deb http://tech.vn.refer.org/debian sarge contrib vietnam ooo2 iaxcomm jed
deb http://tech.vn.refer.org/mirror/debian sarge main contrib non-free
deb http://tech.vn.refer.org/mirror/debian-security sarge/updates main contrib non-free
deb http://tech.vn.refer.org/mirror/debian-misc sarge auf/vpn auf/voip xen3
deb http://tech.vn.refer.org/mirror/debian-marillat sarge main
 * pour [[Debian]] GNU/Linux "Etch" 4.0 :
 {{{
deb http://mirror.vn.refer.org/debian/archive etch main contrib non-free
deb http://mirror.vn.refer.org/debian/security etch/updates main contrib non-free
deb http://mirror.vn.refer.org/debian/backports etch-backports main
Ligne 16: Ligne 13:
==== Pour ''[Ubuntu Ubuntu] Linux "Breezy Badger" 5.10'' : ====
{{{
deb http://tech.vn.refer.org/ubuntu breezy contrib twinkle iaxcomm amule wireless
deb http://tech.vn.refer.org/mirror/ubuntu breezy main restricted universe multiverse
deb http://tech.vn.refer.org/mirror/ubuntu breezy-updates main restricted universe multiverse
deb http://tech.vn.refer.org/mirror/ubuntu breezy-backports main restricted universe multiverse
deb http://tech.vn.refer.org/mirror/ubuntu-security breezy-security main restricted universe multiverse
deb http://tech.vn.refer.org/mirror/ubuntu-misc breezy ooo2

 * pour [[Ubuntu]] Linux "Hardy Heron" 8.04.1 (LTS) :
 {{{
deb http://mirror.vn.refer.org/ubuntu/archive hardy main restricted universe multiverse
deb http://mirror.vn.refer.org/ubuntu/archive hardy-updates main restricted universe multiverse
deb http://mirror.vn.refer.org/ubuntu/archive hardy-backports main restricted universe multiverse
deb http://mirror.vn.refer.org/ubuntu/security hardy-security main restricted universe multiverse
deb http://mirror.vn.refer.org/ubuntu/medibuntu hardy free non-free
deb http://mirror.vn.refer.org/ubuntu/hanoilug hardy contrib import # experimental
Ligne 25: Ligne 23:
==== Pour ''[Ubuntu Ubuntu] Linux "Dapper Drake" 6.06 LTS'' : ====
{{{
deb http://tech.vn.refer.org/ubuntu dapper contrib amule
deb http://tech.vn.refer.org/mirror/ubuntu dapper main restricted universe multiverse
deb http://tech.vn.refer.org/mirror/ubuntu dapper-updates main restricted universe multiverse
deb http://tech.vn.refer.org/mirror/ubuntu dapper-backports main restricted universe multiverse
deb http://tech.vn.refer.org/mirror/ubuntu-security dapper-security main restricted universe multiverse
}}}
Tout (ou presque) est également accessible via [rsync rsync] sur l'adresse `rsync.vn.refer.org`.

{i} Tout (ou presque) est également accessible via `rsync mirror.vn.refer.org::`
Ligne 38: Ligne 29:
Ligne 39: Ligne 31:
   . `aptitude install lftp gnupg debmirror apt-utils`  {{{
sudo aptitude install debmirror gnupg rsync lftp apt-utils
}}}
 /* Parler du fait que j'utilise le paquet `debmirror` de Lenny => retrouver d'abord pourquoi... ;-) */
Ligne 41: Ligne 37:
   . `useradd -s /bin/false -m mirror`  {{{
sudo
useradd -s /bin/false -m mirror
}}}
Ligne 43: Ligne 41:
   . `mkdir /srv/mirror ; chown mirror /srv/mirror`  {{{
sudo
mkdir /srv/mirror
sudo
chown mirror /srv/mirror
}}}
Ligne 45: Ligne 46:
   . `gnupg --keyserver [hkp://wwwkeys.eu.pgp.net ] --recv-keys 2D230C5F` ''(pour [Debian Debian])''
   . `gnupg --keyserver [hkp://wwwkeys.eu.pgp.net ] --recv-keys 437D05B5` ''(pour [Ubuntu Ubuntu])''
   . `gnupg --keyserver [hkp://wwwkeys.eu.pgp.net ] --recv-keys 1F41B907` ''(pour Christian Marillat)''
 {{{
sudo -u mirror /bin/sh
mkdir .gnupg
tail +4 /usr/share/gnupg/options.skel > .gnupg/gpg.conf

gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 2D230C5F # Debian
gpg --keyserver [hkp://wwwkeys.eu.pgp.net ] --recv-keys 437D05B5 # Ubuntu

gpg --no-default-keyring --keyring trustedkeys.gpg --recv ADB11277 # Etch Stable Release Key
gpg --no-default-keyring --keyring trustedkeys.gpg --recv A70DAF536070D3A1 # Debian Archive Automatic Signing Key (4.0/etch)
gpg --no-default-keyring --keyring trustedkeys.gpg --recv EC61E0B0BBE55AB3 # Debian-Volatile Archive Automatic Signing Key (4.0/etch)
gpg --no-default-keyring --keyring trustedkeys.gpg --recv EA8E8B2116BA136C # Backports.org Archive Key
gpg --no-default-keyring --keyring trustedkeys.gpg --recv 1F41B907 # Christian Marillat (Debian-Multimedia)

gpg --no-default-keyring --keyring trustedkeys.gpg --recv 40976EAF437D05B5 # Ubuntu Archive Automatic Signing Key
gpg --no-default-keyring --keyring trustedkeys.gpg --recv 2EBC26B60C5A2783 # Medibuntu Packaging Team
gpg --no-default-keyring --keyring trustedkeys.gpg --recv 735B04432B7ADF77 # Jean Christophe ANDRÉ (HanoiLUG)
}}}

Cette page présente le modèle des miroirs mis en place au CNF de Hanoï.

Utilisation

On ne modifie plus les sources APT mais on intercepte les téléchargements au niveau du proxy transparent pour les rediriger vers le miroir local (cf Squid). Cela suppose bien sûr un miroir dans un parfait état et mis à jour tous les jours. Néanmoins, si on souhaitait tout de même un accès explicite au miroir il se ferait comme suit :

  • pour Debian GNU/Linux "Etch" 4.0 :

    deb http://mirror.vn.refer.org/debian/archive etch main contrib non-free
    deb http://mirror.vn.refer.org/debian/security etch/updates main contrib non-free
    deb http://mirror.vn.refer.org/debian/backports etch-backports main
  • pour Ubuntu Linux "Hardy Heron" 8.04.1 (LTS) :

    deb http://mirror.vn.refer.org/ubuntu/archive hardy main restricted universe multiverse
    deb http://mirror.vn.refer.org/ubuntu/archive hardy-updates main restricted universe multiverse
    deb http://mirror.vn.refer.org/ubuntu/archive hardy-backports main restricted universe multiverse
    deb http://mirror.vn.refer.org/ubuntu/security hardy-security main restricted universe multiverse
    deb http://mirror.vn.refer.org/ubuntu/medibuntu hardy free non-free
    deb http://mirror.vn.refer.org/ubuntu/hanoilug hardy contrib import # experimental

{i} Tout (ou presque) est également accessible via rsync mirror.vn.refer.org::

Mise en place

Pré-requis :

  • ces scripts utilisent des outils externes qui doivent donc être installés :
    sudo aptitude install debmirror gnupg rsync lftp apt-utils

  • les miroirs sont fait par un utilisateur dédié mirror qui doit donc être créé :

    sudo useradd -s /bin/false -m mirror
  • les miroirs sont installés dans le répertoire /srv/mirror/ qui doit donc être créé :

    sudo mkdir /srv/mirror
    sudo chown mirror /srv/mirror
  • le compte mirror doit posséder une copie des clés publiques de signature des archives :

    sudo -u mirror /bin/sh
    mkdir .gnupg
    tail +4 /usr/share/gnupg/options.skel > .gnupg/gpg.conf
    
    gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 2D230C5F # Debian
    gpg --keyserver [hkp://wwwkeys.eu.pgp.net ] --recv-keys 437D05B5 # Ubuntu
    
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv ADB11277 # Etch Stable Release Key
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv A70DAF536070D3A1 # Debian Archive Automatic Signing Key (4.0/etch)
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv EC61E0B0BBE55AB3 # Debian-Volatile Archive Automatic Signing Key (4.0/etch)
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv EA8E8B2116BA136C # Backports.org Archive Key
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv 1F41B907 # Christian Marillat (Debian-Multimedia)
    
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv 40976EAF437D05B5 # Ubuntu Archive Automatic Signing Key
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv 2EBC26B60C5A2783 # Medibuntu Packaging Team
    gpg --no-default-keyring --keyring trustedkeys.gpg --recv 735B04432B7ADF77 # Jean Christophe ANDRÉ (HanoiLUG)

Fichier `/usr/local/lib/srv-mirror-functions` :

[ "$(id -u)" = 0 ] && exec su -s /bin/bash mirror -c "\"$0" $@"
DIR="/srv/mirror/rfc"
exec lftp -e "mirror -cepvP /pub/rfc/rfc ${DIR} ; quit" ftp.lip6.fr

Fichier `/usr/local/lib/srv-mirror-functions` :

function make_repository {
  root="$1" ; dir="$2" ; arch="$3" ; url="$4"
  mkdir -p "${root}/${dir}" || return -1
  pushd "${root}/${dir}" >/dev/null
  mkdir -p "pool" "source" "binary-${arch}"
  lftp -e "mirror -cepP ${url} pool ; quit"
  apt-ftparchive sources "pool" /dev/null "${dir}" | gzip -c9 > "source/Sources.gz"
  apt-ftparchive packages "pool" /dev/null "${dir}" | gzip -c9 > "binary-${arch}/Packages.gz"
  apt-ftparchive release "pool" | gzip -c9 > "Release.gz"
  #apt-ftparchive contents "pool" | gzip -c9 > "Contents-${arch}.gz"
  popd >/dev/null
  return 0
}

Fichier `/usr/local/sbin/srv-mirror-debian` :

[ "$(id -u)" = 0 ] && exec su -s /bin/bash mirror -c "\"$0\" $@"
. /usr/local/lib/srv-mirror-functions
DIR="/srv/mirror/debian"
#OPT="--ignore-release-gpg --ignore-small-errors --ignore-missing-release"
OPT="--md5sums --verbose $@"
DIST="sarge"
ARCH="i386"
RELEASE="3.1"
DISTNAME="Sarge"

mkdir -p "${DIR}"

rsync -a --delete tech.vn.refer.org::debian-auf-vn/ "${DIR}/auf-vn/"

debmirror "${DIR}/security" \
        --host=security.debian.org --method=http --root=/debian-security \
        --dist="${DIST}/updates" \
        --section=main,contrib,non-free \
        --arch="${ARCH}" --nosource $OPT
mkdir -p "${DIR}/security/.disk"
echo "updates/main updates/contrib updates/non-free" >"${DIR}/security/.disk/base_components"
echo "Debian GNU/Linux ${RELEASE} _${DISTNAME}_ - Security Updates ($(date +%Y%m%d))" >"${DIR}/security/.disk/info"

# --getcontents
debmirror "${DIR}/marillat" \
        --host=ftp.nerim.net --method=ftp --root=/debian-marillat \
        --dist="${DIST}" \
        --section=main \
        --arch="${ARCH}" --nosource $OPT
mkdir -p "${DIR}/marillat/.disk"
echo "main" >"${DIR}/marillat/.disk/base_components"
echo "Debian GNU/Linux ${RELEASE} _${DISTNAME}_ - Marillat collection ($(date +%Y%m%d))" >"${DIR}/marillat/.disk/info"

make_repository "${DIR}/misc" "dists/${DIST}/auf/vpn" "${ARCH}" "http://rpv.auf.org/packages"

make_repository "${DIR}/misc" "dists/${DIST}/auf/voip" "${ARCH}" "http://voip.ca.auf.org/asterisk"

make_repository "${DIR}/misc" "dists/${DIST}/xen3" "${ARCH}" "http://packages.debianbase.de/${DIST}/${ARCH}/xen3"

# --getcontents
debmirror "${DIR}/archive" \
        --host=ftp.fr.debian.org --method=http --root=/debian \
        --dist="${DIST}" \
        --section=main,contrib,non-free,main/debian-installer \
        --arch="${ARCH}" --nosource $OPT
mkdir -p "${DIR}/archive/.disk"
echo "main contrib non-free" >"${DIR}/archive/.disk/base_components"
echo "Debian GNU/Linux ${RELEASE} _${DISTNAME}_ - Archive mirror ($(date +%Y%m%d))" >"${DIR}/archive/.disk/info"

exit 0

Fichier `/usr/local/sbin/srv-mirror-ubuntu` :

[ "$(id -u)" = 0 ] && exec su -s /bin/bash mirror -c "\"$0\" $@"
. /usr/local/lib/srv-mirror-functions
DIR="/srv/mirror/ubuntu"
#OPT="--ignore-release-gpg --ignore-small-errors --ignore-missing-release"
OPT="--md5sums --verbose $@"
DIST="breezy"
ARCH="i386"
RELEASE="5.10"
DISTNAME="Breezy Badger"

mkdir -p "${DIR}"

rsync -a --delete tech.vn.refer.org::ubuntu-auf-vn/ "${DIR}/auf-vn/"

debmirror "${DIR}/security" \
        --host=security.ubuntu.com --method=http --root=/ubuntu \
        --dist="${DIST}-security" \
        --section=main,restricted,universe,multiverse \
        --arch="${ARCH}" --nosource $OPT
mkdir -p "${DIR}/security/.disk"
echo "main retricted universe multiverse" >"${DIR}/security/.disk/base_components"
echo "Ubuntu ${RELEASE} _${DISTNAME}_ - Security Updates ($(date +%Y%m%d))" >"${DIR}/security/.disk/info"

make_repository "${DIR}/misc" "dists/${DIST}/ooo2" "${ARCH}" "http://people.ubuntu.com/~doko/OOo2"

debmirror "${DIR}/archive" \
        --host=vn.archive.ubuntu.com --method=http --root=/ubuntu \
        --dist="${DIST},${DIST}-updates,${DIST}-backports" \
        --section=main,restricted,universe,multiverse \
        --arch="${ARCH}" --nosource $OPT

exit 0

# main + restricted = 2,7 Go au 06/11/2005
# main + restricted + universe = 10,2 Go au 07/11/2005

Fichier `/etc/cron.d/srv-mirror` :

MAILTO=technique-logs@vn.auf.org
0  1 * * * mirror /usr/local/sbin/srv-mirror-rfc 2>&1 &
0  2 * * * mirror /usr/local/sbin/srv-mirror-debian 2>&1 &
0  3 * * * mirror /usr/local/sbin/srv-mirror-ubuntu 2>&1 &

ZAP/Configuration/Miroir (dernière édition le 2008-11-30 18:29:26 par JeanChristopheAndré)