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)