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 :