Installation d`un miroir local sur Debian Squeeze

Transcription

Installation d`un miroir local sur Debian Squeeze
Installation d'un miroir local sur Debian Squeeze
INTRODUCTION................................................................................................... 1
1. CONFIGURATION DU SERVEUR............................................................................ 2
A.CONFIGURATION DE « APT-MIRROR »................................................................ 3
B.CONFIGURATION DE « APACHE2 ».................................................................... 4
2. CONFIGURATION DU CLIENT............................................................................... 5
3. AGRÉGAT DE LIENS (« BONDING »)..................................................................... 6
A.MODES 0 ET 5............................................................................................ 6
B.MODE 6.................................................................................................... 8
4. NOTES DE VERSION DU DOCUMENT..................................................................... 9
INTRODUCTION
Cette procédure décrit l'installation d'un miroir local sur Debian Squeeze pour des clients Debian Squeeze
ainsi que la mise en place de l'agrégat de liens (« bonding ») sur le serveur.
L'installation d'un miroir local présente un double avantage : d'une part, elle permet d'économiser de façon
non négligeable la bande passante car le téléchargement simultané de paquets et de mises à jour par
plusieurs machines peut très rapidement devenir problématique pour la fluidité de la navigation des autres
clients du réseau local ; d'autre part, elle fait gagner un temps considérable pour l'installation de nouveaux
paquets et de mises à jour ainsi que pour l'installation de nouveaux postes avec un CD « netinstall ».
Afin d'améliorer le rendement d'un miroir local, il peut-être intéressant de doter le serveur d'une deuxième
carte réseau pour faire de l'agrégat de liens et augmenter ainsi sa capacité à supporter une charge réseau
plus importante quand cela est nécessaire. Lorsque de nombreux clients se mettent à jour en même temps,
l'intérêt et le bénéfice d'un tel dispositif deviennent évidents.
1 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
1. CONFIGURATION DU SERVEUR
Le serveur hébergera, dans leur version 32 et 64 bit, les paquets issus des dépôts « debian », « debiansecurity », « backports », « deb-multimedia » et « proposed-updates ».
La première étape est une installation de base de Debian Squeeze, l'utilisation d'un CD « netinstall » ou une
installation par le réseau est recommandée.
Dans une phase de test, le partitionnement automatique est acceptable, il crée une partition montée sur la
racine « / » et utilise la totalité de l'espace disque. En production, il est préférable de dédier aux données
des dépôts une partition ou un volume logique LVM2 monté sur « /var/spool/apt-mirror ». 150 Go devraient
suffire pour accueillir les données des dépôts mentionnés ci-dessus.
Lors de la phase de choix des logiciels à installer, décocher « environnement graphique de bureau »,
cocher « serveur SSH », indispensable sur un serveur, et garder les « utilitaires standard du système ».
Toutes les commandes qui suivent sont à taper en tant qu'utilisateur « root ».
Avant de modifier un fichier de configuration, en faire une sauvegarde.
2 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
a. Configuration de « apt-mirror »
Après la phase d'installation et le redémarrage, installer le paquet « apt-mirror » :
# apt-get install apt-mirror
Editer le fichier de configuration par défaut « /etc/apt/mirror.list » :
############# config ##################
#
set base_path
/var/spool/apt-mirror
#
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 postmirror_script $var_path/postmirror.sh
set run_postmirror 1
set nthreads
20
set _tilde 0
#
############# end config ##############
deb
deb
deb
deb
deb
deb
deb
deb
deb
http://ftp.fr.debian.org/debian squeeze main/debian-installer
http://ftp.fr.debian.org/debian squeeze non-free/debian-installer
http://ftp.fr.debian.org/debian squeeze main contrib non-free
http://ftp.fr.debian.org/debian squeeze-updates main contrib non-free
http://ftp.fr.debian.org/debian squeeze-proposed-updates main contrib non-free
http://security.debian.org/ squeeze/updates main contrib non-free
http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
http://www.deb-multimedia.org squeeze main non-free
http://www.deb-multimedia.org squeeze-backports main
deb-amd64
deb-amd64
deb-amd64
deb-amd64
deb-amd64
deb-amd64
deb-amd64
deb-amd64
deb-amd64
deb-src
deb-src
deb-src
deb-src
deb-src
deb-src
deb-src
clean
clean
clean
clean
http://ftp.fr.debian.org/debian squeeze main/debian-installer
http://ftp.fr.debian.org/debian squeeze non-free/debian-installer
http://ftp.fr.debian.org/debian squeeze main contrib non-free
http://ftp.fr.debian.org/debian squeeze-updates main contrib non-free
http://ftp.fr.debian.org/debian squeeze-proposed-updates main contrib non-free
http://security.debian.org/ squeeze/updates main contrib non-free
http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
http://www.deb-multimedia.org squeeze main non-free
http://www.deb-multimedia.org squeeze-backports main
http://ftp.fr.debian.org/debian squeeze main contrib non-free
http://ftp.fr.debian.org/debian squeeze-updates main contrib non-free
http://ftp.fr.debian.org/debian squeeze-proposed-updates main contrib non-free
http://security.debian.org/ squeeze/updates main contrib non-free
http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
http://www.deb-multimedia.org squeeze main non-free
http://www.deb-multimedia.org squeeze-backports main
http://ftp.fr.debian.org/
http://security.debian.org/
http://backports.debian.org/
http://www.deb-multimedia.org
Lancer la première synchronisation des dépôts à la main, les autres se feront automatiquement grâce à une
tâche « cron » programmée (peut durer plusieurs jours en fonction du volume de données à télécharger et
de la bande passante) :
# apt-mirror
Une fois la première synchronisation terminée, planifier les synchronisations suivantes. Dans le fichier
« /etc/cron.d/apt-mirror », décommenter la ligne :
#0 4
* * *
apt-mirror
/usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
pour qu'elle devienne (synchronisation tous les jours à 4h00 du matin) :
0 4
* * *
root
/usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
Editer le script « /var/spool/apt-mirror/postmirror.sh » (vide par défaut), ajouter :
#!/bin/bash
/var/spool/apt-mirror/var/clean.sh
rm -f /var/spool/apt-mirror/var/apt-mirror.lock
exit 0
Rendre le script « /var/spool/apt-mirror/postmirror.sh » exécutable :
# chmod +x /var/spool/apt-mirror/var/postmirror.sh
3 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
b. Configuration de « apache2 »
Pour mettre à la disposition des clients les paquets et mises à jour à télécharger depuis le serveur, installer
et configurer un serveur Web (« apache2 » ou un autre) :
# apt-get install apache2
Créer le fichier de configuration « /etc/apache2/conf.d/apt-mirror.conf », ajouter les lignes suivantes :
<IfModule alias_module>
Alias /debian /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian
<Directory /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>
Alias /debian-security /var/spool/apt-mirror/mirror/security.debian.org
<Directory /var/spool/apt-mirror/mirror/security.debian.org>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>
Alias /deb-multimedia /var/spool/apt-mirror/mirror/www.deb-multimedia.org
<Directory /var/spool/apt-mirror/mirror/www.deb-multimedia.org>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>
Alias /debian-backports /var/spool/apt-mirror/mirror/backports.debian.org/debian-backports
<Directory /var/spool/apt-mirror/mirror/backports.debian.org/debian-backports>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>
</IfModule>
Recharger la configuration de « apache2 » :
# /etc/init.d/apache2 force-reload
4 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
2. CONFIGURATION DU CLIENT
Pendant l'installation, lors de la phase de configuration de l'outil de gestion des paquets, l'installeur
demande dans un premier temps de choisir le « pays du miroir de l'archive Debian » ; il faut aller tout en
haut de la liste et choisir « Saisie manuelle ».
Dans un deuxième temps, l'installeur demande le « nom d'hôte du miroir de l'archive Debian » ; remplacer
« mirror » (par défaut) par l'adresse IP du miroir local par ou son nom si celui-ci est connu du serveur DNS
du réseau local.
Dans un troisième temps, l'installeur demande le nom du « répertoire du miroir de l'archive Debian » ;
laisser « /debian/ » (par défaut) si « apache2 » est configuré comme ci-dessus.
Dans un dernier temps enfin, l'installeur demande les paramètres du serveur mandataire (proxy), à adapter
selon la configuration du réseau local ou laisser vide.
Lors de la phase de choix des logiciels à installer, laisser cochés par défaut « environnement graphique de
bureau » et « utilitaires standard du système ».
Après l'installation et le redémarrage, remplacer le contenu du fichier « /etc/apt/sources.list » en accord
avec la configuration du serveur « apache2 » ci-dessus de façon à ce que le client pointe sur le miroir local
pour l'installation et la mise à jour de ses paquets :
deb
deb
deb
deb
deb
deb
deb
http://IP_ou_nom_du_miroir_local/debian/ squeeze main contrib non-free
http://IP_ou_nom_du_miroir_local/debian/ squeeze-updates main contrib non-free
http://IP_ou_nom_du_miroir_local/debian/ squeeze-proposed-updates main contrib non-free
http://IP_ou_nom_du_miroir_local/debian-security squeeze/updates main contrib non-free
http://IP_ou_nom_du_miroir_local/debian-backports squeeze-backports main contrib non-free
http://IP_ou_nom_du_miroir_local/deb-multimedia squeeze main non-free
http://IP_ou_nom_du_miroir_local/deb-multimedia squeeze-backports main
deb-src
deb-src
deb-src
deb-src
deb-src
deb-src
deb-src
http://IP_ou_nom_du_miroir_local/debian/ squeeze main contrib non-free
http://IP_ou_nom_du_miroir_local/debian/ squeeze-updates main contrib non-free
http://IP_ou_nom_du_miroir_local/debian/ squeeze-proposed-updates main contrib non-free
http://IP_ou_nom_du_miroir_local/debian-security squeeze/updates main contrib non-free
http://IP_ou_nom_du_miroir_local/debian-backports squeeze-backports main contrib non-free
http://IP_ou_nom_du_miroir_local/deb-multimedia squeeze main non-free
http://IP_ou_nom_du_miroir_local/deb-multimedia squeeze-backports main
Télécharger et installer le paquet « deb-multimedia-keyring » puis recharger la configuration des dépôts :
# wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring
→ /deb-multimedia-keyring_2012.05.10-dmo3_all.deb
# dpkg -i deb-multimedia-keyring_2012.05.10-dmo3_all.deb
# apt-get update
Pour mettre à jour automatiquement le client, installer et configurer le paquet « unattended-upgrades » (voir
documentation du paquet pour la configuration) :
# apt-get install unattended-upgrades
5 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
3. AGRÉGAT DE LIENS (« BONDING »)
L'agrégat de liens est une fonctionnalité intégrée en standard au noyau Linux. Il existe 7 modes d'agrégat
de liens (de 0 à 6) qui se distinguent par l'utilisation d'algorithmes différents. Certains modes requièrent le
support de fonctionnalités spécifiques par le(s) pilote(s) d'interface(s) réseau (mode 6) ou par le switch
(mode 4).
Pour vérifier la présence d'une deuxième carte réseau dans la machine, taper :
# ifconfig
La deuxième carte doit être détectée comme « eth1 » si la première est « eth0 ».
Installer le paquet « ifenslave » :
# apt-get install ifenslave
a. Modes 0 et 5
Créer le fichier « /etc/modprobe.d/bond0.conf » pour charger le module « bonding » au démarrage du
système et configurer l'agrégat de liens en mode 5 :
alias bond0 bonding
options bond0 mode=5 miimon=100 updelay=200 downdelay=200
Le mode 5 dit « balance-tlb » pour « balance transmit load balancing » fournit un équilibrage de charge sur
les deux interfaces en transmission.
Remplacer « mode=5 » par « mode=0 » permet sans prérequis spécifique de configurer l'agrégat de liens
en mode dit « balance-rr » pour « balance round-robin ». Le mode 0 fournit équilibrage de charge et
tolérance de pannes.
Remplacer le contenu du fichier de configuration des interfaces réseau « /etc/network/interfaces » par
(adressage à adapter suivant la configuration du réseau) :
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet static
address 192.168.1.20
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
pre-up ip link set eth0 up
pre-up ip link set eth1 up
pre-up modprobe bond0
pre-up ip link set bond0 up
pre-up /sbin/ifenslave bond0 eth1 eth0
Redémarrer le serveur. Pour vérifier que le module « bonding » est bien chargé au démarrage du système,
la commande :
# lsmod | grep bonding
doit retourner quelque chose comme :
bonding
65256
0
6 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
Pour vérifier que l'agrégat de liens est configuré comme indiqué dans le fichier
« /etc/modprobe.d/bond0.conf », la commande :
# cat /proc/net/bonding/bond0
doit retourner quelque chose comme :
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
Bonding Mode: transmit load balancing
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:24:1d:ce:9a:9e
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:24:1d:ce:9a:9c
Pour vérifier la présence de l'interface maîtresse « bond0 » en plus des interfaces esclaves « eth0 » et
« eth1 » et de « lo », la commande :
# ifconfig
doit retourner quelque chose comme :
bond0 Link encap:Ethernet HWaddr 00:24:1d:ce:9a:9e
inet adr: 192.168.1.20 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::224:1dff:fece:9a9e/64 Scope:Lien
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:65088 errors:0 dropped:0 overruns:1 frame:0
TX packets:74060 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:4690115 (4.4 MiB) TX bytes:111762276 (106.5 MiB)
eth0
Link encap:Ethernet HWaddr 00:24:1d:ce:9a:9c
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:23903 errors:0 dropped:0 overruns:1 frame:0
TX packets:37030 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:1764740 (1.6 MiB) TX bytes:55882797 (53.2 MiB)
Interruption:29 Adresse de base:0x8000
eth1
Link encap:Ethernet HWaddr 00:24:1d:ce:9a:9e
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:41185 errors:0 dropped:0 overruns:0 frame:0
TX packets:37030 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:2925375 (2.7 MiB) TX bytes:55879479 (53.2 MiB)
Interruption:30 Adresse de base:0xe000
7 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
b. Mode 6
Le mode 6 dit « balance-alb » pour « balance adaptative load balancing » fournit un équilibrage de charge
sur les deux interfaces en transmission et en réception. Pour utiliser ce mode, le(s) pilote(s) des cartes
réseau doivent supporter le changement en cours d'utilisation des adresses matérielles des cartes.
Créer le fichier « /etc/modprobe.d/bond0.conf » pour charger le module « bonding » au démarrage du
système et configurer l'agrégat de liens en mode 6 :
alias bond0 bonding
options bond0 mode=6 miimon=100 updelay=200 downdelay=200
Remplacer le contenu du fichier de configuration des interfaces réseau « /etc/network/interfaces » par
(adressage à adapter suivant la configuration du réseau) :
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet static
address 192.168.1.20
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
pre-up ip link set eth0 up
pre-up ip link set eth1 up
pre-up modprobe bond0
pre-up ip link set bond0 up
pre-up /sbin/ifenslave bond0 eth1 eth0
down /sbin/ifenslave -d bond0 eth0 eth1
auto eth0
iface eth0 inet static
address 192.168.1.18
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto eth1
iface eth1 inet static
address 192.168.1.19
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
Redémarrer le serveur. Pour vérifier que le module « bonding » est bien chargé au démarrage du système,
la commande :
# lsmod | grep bonding
doit retourner quelque chose comme :
bonding
74071
0
8 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)
Pour vérifier que l'agrégat de liens est configuré comme indiqué dans le fichier
« /etc/modprobe.d/bond0.conf », la commande :
# cat /proc/net/bonding/bond0
doit retourner quelque chose comme :
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:24:1d:ce:9a:9e
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:24:1d:ce:9a:9c
Pour vérifier la présence de l'interface maîtresse « bond0 » en plus des interfaces esclaves « eth0 » et
« eth1 » et de « lo », la commande :
# ifconfig
doit retourner quelque chose comme :
bond0
Link encap:Ethernet HWaddr 00:24:1d:ce:9a:9e
inet adr:192.168.1.20 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::224:1dff:fece:9a9e/64 Scope:Lien
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:215369 errors:0 dropped:0 overruns:0 frame:0
TX packets:147409 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:306511467 (292.3 MiB) TX bytes:11841608 (11.2 MiB)
eth0
Link encap:Ethernet HWaddr 00:24:1d:ce:9a:9c
inet adr:192.168.1.18 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:57791 errors:0 dropped:0 overruns:0 frame:0
TX packets:47581 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:78700346 (75.0 MiB) TX bytes:4023180 (3.8 MiB)
Interruption:29 Adresse de base:0x8000
eth1
Link encap:Ethernet HWaddr 00:24:1d:ce:9a:9e
inet adr:192.168.1.19 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:157578 errors:0 dropped:0 overruns:0 frame:0
TX packets:99828 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:227811121 (217.2 MiB) TX bytes:7818428 (7.4 MiB)
Interruption:30 Adresse de base:0xe000
Pour en savoir plus sur l'agrégat de liens et les différents modes, la lecture du «
LINUX ETHERNET
BONDING DRIVER HOWTO » est recommandée.
4. NOTES DE VERSION DU DOCUMENT
Version 2 (mai 2012)
•
Modification du nom « debian-multimedia » en « deb-multimedia ».
•
Ajout de la branche « squeeze-backports » du dépôt « deb-multimedia ».
•
Mise à jour de l'adresse de téléchargement et du nom du paquet « deb-multimedia-keyring ».
9 - Installation d'un miroir local sur Debian Squeeze (version 2)
Romain Dècle (LEGTA de Coutances)