GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment créer un serveur de référentiel Ubuntu

Ce guide montrera comment configurer un serveur de référentiel local basé sur Ubuntu Bionic, mais il peut être adapté à une version précédente d'Ubuntu ou même à toute distribution utilisant Aptitude comme système de gestion de paquets principal, comme Debian ou Mint. Vous voudrez peut-être généralement configurer un référentiel local pour économiser la bande passante Internet.

Dans ce didacticiel, vous apprendrez :

  • Comment installer le logiciel requis sur le serveur
  • Comment sélectionner les référentiels à mettre en miroir sur le serveur
  • Comment mettre en miroir la sélection de référentiels localement sur le serveur
  • Comment configurer le client Linux pour utiliser le serveur de référentiel local

Comme indiqué ci-dessus, nous n'envisageons pas de miroir public ou national pour ce didacticiel, mais si vous souhaitez l'implémenter, considérez que :

  • Votre bande passante réseau devient très importante
  • Vous devez enregistrer le référentiel dans la liste des miroirs Ubuntu
  • Vous devez synchroniser le miroir au moins quatre fois par jour
  • Comme vous devez mettre en miroir toutes les versions précédentes, vous aurez peut-être besoin d'au moins 2 To d'espace disque


Mise à jour de la liste des packages à partir des dépôts locaux.

Configuration logicielle requise et conventions utilisées

Configuration logicielle requise et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version du logiciel utilisée
Système Ubuntu 18.04.2 (Bionic Beaver) LTS
Logiciel Apache http 2.x, apt-mirror
Autre Accès privilégié à votre système Linux en tant que root ou via le sudo commande, Minimum 200 Go d'espace disque pour le référentiel
Conventions # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande
$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié

Comment créer un serveur de référentiel Ubuntu étape par étape

  1. Installation du logiciel requis sur le serveur.

    Dans un premier temps, nous devons installer le serveur HTTP Apache qui se trouve sous le package nommé apache2 , avec la commande :

    $ sudo apt install apache2

    Installation d'Apache HTTP

    Assurez-vous ensuite que le service s'exécute au démarrage :

    $ sudo systemctl enable apache2
    

    Si tout va bien, nous passerons au répertoire DocumentRoot par défaut (qui est /var/www/html).
    Là, nous pouvons ensuite créer le sous-répertoire /var/www/html/ubuntu et attribuez-le au propriétaire approprié, dans ce cas www-data (l'utilisateur sous lequel Apache HTTP s'exécute).

    $ sudo mkdir -p /var/www/html/ubuntu
    $ sudo chown www-data:www-data /var/www/html/ubuntu
    

    Il est fortement recommandé que le DocumentRoot ou au moins le sous-dossier ubuntu se trouve sur un système de fichiers appartenant à un volume logique; de cette façon, nous pouvons l'agrandir en ligne, sans temps d'arrêt.
    Au moment de mes tests, 171,5 Gio sont l'espace minimum absolu nécessaire s'il reflète également les packages src ; donc pour planifier l'avenir, il est recommandé d'avoir au moins 300 Go d'espace disque.

    Il s'agit principalement d'une estimation si vous choisissez une version d'Ubuntu; s'il est nécessaire de mettre en miroir des packages pour différentes versions, l'espace requis augmentera considérablement.

  2. Le principal outil qui nous permet de créer un dépôt local est apt-mirror , pour l'installer exécutez :

    $ sudo apt install apt-mirror
    

    Si le package n'est pas trouvé, assurez-vous d'abord d'actualiser la liste des packages avec :

    $ sudo apt update
    
  3. Sélectionner les référentiels à mettre en miroir sur le serveur.

    Une fois apt-mirror installé, nous pouvons faire une copie de sauvegarde de son fichier de configuration /etc/apt/mirror.list , après cela, vous vous assurez que la ligne contenant l'option set base_path pointe vers le chemin correct pour notre référentiel (par défaut est /var/spool/apt-mirror ).

    $ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.org
    

    Vous pouvez donc maintenant utiliser votre éditeur préféré (vi ou nano par exemple) pour changer l'option base_path dans le fichier mirror.list en /var/www/html/ubuntu; vous devez également spécifier que vous mettez en miroir les dépôts de la distribution bionique (modifiez en conséquence si vous avez une version différente d'Ubuntu), toujours dans le fichier de configuration mirror.list.

    fichier de configuration mirror.list

    Si vous n'avez pas beaucoup d'espace sur le disque, vous pouvez choisir de ne pas mettre en miroir les packages src; donc vous commenterez les lignes relatives :

    fichier de configuration mirror.list

    Ensuite, vous copiez un script important dans /var/www/html/ubuntu/var/

    $ sudo mkdir -p /var/www/html/ubuntu/var 
    $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
    
  4. Mise en miroir des référentiels sélectionnés localement sur le serveur.

    Il est maintenant temps de créer un miroir local, gardez à l'esprit qu'un miroir initial (à partir de archive.ubuntu.com uniquement pour ce tutoriel) peut prendre beaucoup de temps et ralentir votre connexion, je vous suggère donc de commencer ce travail la nuit.
    Pour commencer à mettre en miroir les packages de repos distants sur le serveur local, exécutez simplement la commande :

    $ sudo apt-mirror
    

    Si vous en avez besoin, vous pouvez interrompre ce processus (avec le combo classique CTRL+C) et le redémarrer plus tard; il reprendra là où il a été laissé.

    Finalement, nous arriverons au point où les scripts clean.sh et postmirror.sh seront exécutés, c'est un signe que le processus de mise en miroir est terminé.

    Fin du processus de mise en miroir.

  5. Configuration du processus de synchronisation automatique à l'aide du planificateur cron.

    Une fois notre première synchronisation terminée, nous devons créer une tâche cron pour nous assurer que nous disposons d'un référentiel local automatiquement à jour ; par exemple, nous voulons que cette tâche s'exécute tous les soirs à 2h00 du matin et donc :

    $ sudo crontab -e
    

    Puis on édite la crontab pour ajouter la ligne suivante :

    00 	02 	*	 *	 *	/usr/bin/apt-mirror
    

    Et enregistrez et quittez (en utilisant vi, nano ou tout autre éditeur défini).

Configuration du client Linux pour utiliser le serveur de référentiel local

  1. Configuration de la liste des référentiels locaux.

    Dans tout client qui va utiliser notre référentiel local, nous devons éditer le fichier de configuration /etc/apt/sources.list en spécifiant notre référentiel local et en désactivant tout référentiel distant.

    Dans notre cas, les référentiels suivants ont été téléchargés :

    Référentiels locaux du serveur

    REMARQUE

    Il est recommandé de commenter n'importe quelle ligne dans le /etc/apt/sources.list fichier faisant référence à des référentiels non reflétés sur notre serveur, par exemple, dans ce cas, toute ligne commençant par deb-src et contenant des bionic-backports ont été commentés.

    Si vous ne le faites pas, vous risquez d'obtenir l'erreur
    Release file has not been found lors de l'exécution de la commande apt update sur le client.

    Tout d'abord, nous remplaçons toute chaîne archive.ubuntu.com par notre IP miroir local, dans ce cas 10.0.0.42. Bien sûr, votre adresse IP locale peut être différente.

    $ sudo  sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\.\42/g" /etc/apt/sources.list
    

    Cette commande créera le fichier de sauvegarde /etc/apt/sources.list.bak0 et remplacez tout archive.ubuntu.com chaîne avec 10.0.0.42 .

    Un autre ajustement s'exécute à nouveau de cette manière :

    $ sudo  sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
    

    Ceci est nécessaire car apt-mirror ajoute le chemin mirror/archive.ubuntu.com/ubuntu à notre chemin de base. Ici, il sera créé un autre fichier de sauvegarde

    /etc/apt/sources.list.bak1.
    

    Pour les besoins de ce didacticiel, nous ne faisons que mettre en miroir des packages ou des référentiels de archive.ubuntu.com ; bien sûr, vous pouvez ajouter d'autres référentiels non officiels dans le fichier mirror.list du serveur, mais vous devez ensuite relancer apt-mirror et modifier le fichier sources.list sur n'importe quel client en conséquence.

  2. Mettre à jour l'index du référentiel local.
    Vous devez maintenant vous assurer que le port 80 n'est pas bloqué par le pare-feu du client, puis vous pouvez exécuter :

    $ sudo apt update
    

    Et vous êtes prêt à partir.

    Mise à jour de la liste des packages à partir des dépôts locaux.

Conclusion

La configuration d'un référentiel local dans Ubuntu n'est pas difficile comme cela peut paraître et cela peut être utile à condition que vous disposiez de ressources réseau et disque locales adéquates.


Ubuntu
  1. Comment installer PostgreSQL sur Ubuntu 18.04

  2. Comment créer un utilisateur Sudo sur Ubuntu

  3. Comment installer MySQL sur Ubuntu 18.04

  4. Comment créer une sauvegarde

  5. Comment installer Zimbra 8.6 sur le serveur Ubuntu 14.04

Comment configurer Bacula Server sur Ubuntu 16.04

Comment installer le serveur OpenSIPS sur Ubuntu 15.04

Comment créer un serveur de messagerie complet sur Ubuntu

Comment trouver le meilleur miroir de référentiel Ubuntu APT

Comment installer Plex Media Server sur un serveur/bureau Ubuntu 16.04

Comment créer un serveur Minecraft sur Ubuntu 20.04