Serveur APT-mirror Stretch
>>> Création d’un miroir APT sous Debian 9 Stretch
Version PDF

Avoir tous les packages de Debian à domicile, pour pouvoir installer votre serveur sans connexion internet. C’est possible ! apt-mirror est un outil permettant de créer facilement un miroir de dépôt de paquets deb. Cet article vous explique comment faire. Mais attention, le téléchargement des données soit 60-150Go demande une connexion internet qui soit importante.


Sommaire :

I) Sur le serveur
1) Installation & configuration de APT-Mirror
2) Droit d’exécution
3) Récupération des fichiers
4) Installation et configuration d’Apache2
5) Petits conseils :
II) Sur le client
III) Automatisation des mises à jour


I) Sur le serveur

Haut de page

1) Installation & configuration de APT-Mirror

- Installez le paquet "APT-Mirror" :

apt-get install apt-mirror

- Configurez APT-Mirror en éditant le fichier "mirror.list"

nano /etc/apt/mirror.list

- Vous devez obtenir :

############# config ###################
#
set base_path    /var/miroir

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  amd64
set postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set nthreads     100
set _tilde 0
#

############# end config ##############

deb http://ftp.fr.debian.org/debian/ stretch main
deb-src http://ftp.fr.debian.org/debian/ stretch main

deb http://security.debian.org/ stretch/updates main
deb-src http://security.debian.org/ stretch/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ stretch-updates main
deb-src http://ftp.fr.debian.org/debian/ stretch-updates main


clean http://ftp.fr.debian.org/debian/

clean http://security.debian.org/

Quelques informations sont nécessaires :

  • La ligne :
set base_path    /var/spool/apt-mirror
    • Indique le chemin où sont stockés les fichiers.
  • Les lignes :
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript $var_path/clean.sh
    • Indiquent le nom des répertoires où sont répartit les différents fichiers.
  • La ligne :
set defaultarch  amd64
    • Indiquent l’architecture des fichiers que nous voulons télécharger (si l’on commente on téléchargera toutes les architectures).
  • La ligne :
set nthreads     100
    • Indiquent le nombre de threads simultanés qui vont télécharger les données, (sorte de compte à rebours, 100... 99... 98...).
  • La ligne :
set _tilde 0
    • Pas d’informations sur cette ligne à par quelle soit utile.
  • Les lignes suivantes sont les dépôts qui serviront de base pour télécharger les fichiers :
deb http://ftp.fr.debian.org/debian/ stretch main
deb-src http://ftp.fr.debian.org/debian/ stretch main

deb http://security.debian.org/ stretch/updates main
deb-src http://security.debian.org/ stretch/updates main

# stretch-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ stretch-updates main
deb-src http://ftp.fr.debian.org/debian/ stretch-updates main

clean http://ftp.fr.debian.org/debian/

clean http://security.debian.org/

Dans notre cas, j’ai laissé le dossier "/var/spool" par défaut, j’ai choisi les fichiers correspondant seulement au architecture "amd64" avec un nthreads de "100".

2) Droit d’exécution

APT-Mirror utilise un script de nettoyage "clean.sh" il faut lui donner des droits d’exécution :

chmod +x /var/spool/apt-mirror/var/clean.sh

3) Récupération des fichiers

apt-mirror

- Après une ou plusieurs longue(s) journée(s) de téléchargement le téléchargement se finira.

4) Installation et configuration d’Apache2

- Commencez par l’installation :

aptitude install apache2

- Copiez le fichier "/etc/apache2/sites-available/000-default.conf" qui correspond au fichier de configuration du site par défaut indiquant entre autre le chemin des fichiers du site.

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/apt-mirror.conf

- Editez le fichier "apt-mirror.conf".

nano /etc/apache2/sites-available/apt-mirror.conf

Et nous ajoutons les deux blocs suivants en bas de la page après la ligne "VirtualHost"

       ServerAdmin webmaster@localhost
       DocumentRoot  /var/spool/apt-mirror/
       Alias /debian /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian/
       <Directory /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian/>
               AllowOverride None
               Require all granted
               Options +Indexes +SymlinksIfOwnerMatch
               IndexOptions NameWidth=* +SuppressDescription
       </Directory>

- Activez le nouveau site :

a2ensite /etc/apache2/sites-available/apt-mirror.conf

- Redémarrez le service "apache2"

service apache2 reload

5) Petits conseils

- Une fois le téléchargement terminé, relancez le une deuxième fois.
- Une fois le téléchargement terminé, exécutez le script clean.sh.
- Vous pouvez utiliser "screen" afin de fermer votre session tout en laissant le téléchargement continuer. Voir article screen

II) Sur le client

Haut de page

- Ajoutez le serveur à la liste APT de notre machine cliente :

nano /etc/apt/sources.list

- Ensuite on commente toutes les lignes et on ajoute les lignes suivantes :

deb http://@IP_de_votre_serveur/debian/ stretch main
deb-src http://@IP_de_votre_serveur/debian/ stretch main

deb http://@IP_de_votre_serveur/ stretch/updates main
deb-src http://@IP_de_votre_serveur/ stretch/updates main

# stretch-updates, previously known as 'volatile'
deb http://@IP_de_votre_serveur/debian/ stretch-updates main
deb-src http://@IP_de_votre_serveur/debian/ stretch-updates main

- Il nous reste plus qu’à faire une mise à jour de la base APT :

apt-get update

III) Automatisation des mises à jour

Haut de page

Pour automatiser la mise à jour de l’Apt-mirror la solution consiste à utiliser une tâche cron. Si nous regardons dans le répertoire /etc/cron.d/ un fichier apt-mirror existe déjà.

- Tapez :

nano /etc/cron.d/apt-mirror

- Ensuite une ligne de tache cron se présente comme ceci :

Minute Heure Numéro_du_jour_dans_le_mois Numéro_du_mois Numéro_du_jour_dans_la_semaine commande_à_automatiser

- Ajoutez donc la ligne suivante :

0 0   * * 1  apt-mirror      /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
  • Cette ligne exécutera apt-mirror tous les lundis de chaque mois à 00h00.
  • Si vous voulez vérifier le fonctionnement affiché le fichier cron.log
#tail -f /var/spool/apt-mirror/var/cron.log
 
 
 
 
 
Commentaires :