Comment créer un serveur de dépôt Ubuntu
Ce guide montrera comment configurer un serveur de dépôt local basé sur Ubuntu Bionic, mais il peut être adapté à une version précédente d’Ubuntu ou même à n’importe quelle distribution utilisant Aptitude comme système principal de gestion de paquets, comme Debian ou Mint. En règle générale, vous souhaiterez peut-être configurer un référentiel local pour économiser la bande passante Internet.
Dans ce tutoriel, vous allez apprendre :
- 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 dépôts localement sur le serveur
- Comment configurer le client Linux pour utiliser le serveur de dépôt local
Comme indiqué ci-dessus, nous n’envisageons pas un miroir public ou national pour ce tutoriel, mais si vous souhaitez l’implémenter, considérez que :
- La bande passante de votre 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
- Étant donné que vous devez mettre en miroir toutes les versions précédentes, vous aurez peut-être besoin de 2 To ou plus d’espace disque
Mise à jour de la liste des paquets à partir des dépôts locaux.
Configuration logicielle requise et conventions utilisées
| Catégorie | Exigences, conventions ou version du logiciel utilisé |
|---|---|
| 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 la commande sudo, Minimum 200 Go d’espace disque pour le référentiel |
Comment créer un serveur de dépôt Ubuntu étape par étape
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 apache2Installation d’Apache HTTP
Assurez-vous ensuite que le service s’exécute au démarrage :
sudo systemctl enable apache2Si 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/ubuntuet l’attribuer au propriétaire approprié, dans ce caswww-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/ubuntuIl 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 si l’on met également en miroir les paquets src ; donc pour planifier l’avenir, il est recommandé d’avoir au moins 300 Gio 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, les besoins en espace augmenteront considérablement.
L’outil principal qui nous permet de créer un dépôt local est
apt-mirror, pour l’installer, exécutez :sudo apt install apt-mirrorSi le paquet n’est pas trouvé, assurez-vous d’abord de rafraîchir la liste des paquets avec :
sudo apt updateSélection des 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 quoi vous vous assurez que la ligne contenant l’optiondéfinie base_pathpointe vers le bon chemin pour notre dépôt (par défaut est /var/spool/apt-mirror ).sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.orgVous 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 bionic (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 paquets src ; Ainsi, vous allez commenter 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/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’une mise en miroir initiale (à partir de
archive.ubuntu.comuniquement pour ce tutoriel) peut prendre beaucoup de temps et ralentir votre connexion, je vous suggère donc de commencer ce travail à night.
Pour commencer à mettre en miroir les packages de repos distants sur le serveur local, exécutez simplement la commande :sudo apt-mirrorSi nécessaire, vous pouvez interrompre ce processus (avec le combo classique CTRL+C) et le redémarrer plus tard ; Il reprendra là où il s’est arrêté.
Finalement, nous arriverons au point où les scripts clean.sh et postmirror.sh sont exécutés, c’est un signe que le processus de mise en miroir a été terminé.
Fin du processus de mise en miroir.
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 avons un dépôt local automatique à jour ; par exemple, nous voulons que cette tâche s’exécute toutes les nuits à 2h00 du matin et donc :
sudo crontab -eEnsuite, nous modifions le crontab pour ajouter la ligne suivante :
00 02 * * * /usr/bin/apt-mirrorEt enregistrez et quittez (en utilisant vi, nano ou tout autre éditeur défini).
Configuration du client Linux pour l’utilisation du serveur de référentiel local
Configuration de la liste des référentiels locaux.
Dans n’importe quel client qui va utiliser notre dépôt local, nous devons modifier le fichier
de configuration /etc/apt/sources.listen spécifiant notre dépôt local et en désactivant tout dépôt distant.Dans notre cas, les dépôts suivants ont été téléchargés :
Référentiels locaux de serveur
REMARQUE
Il est recommandé de commenter n’importe quelle ligne du fichier
/etc/apt/sources.listfaisant référence à des dépôts non mis en miroir sur notre serveur, par exemple, dans ce cas, toute ligne commençant pardeb-srcet contenantbionic-backportsa été commentée.Tout d’abord, nous remplaçons n’importe quelle chaîne archive.ubuntu.com par notre adresse IP miroir locale, 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.listCette commande créera le fichier de sauvegarde
/etc/apt/sources.list.bak0et remplacera toute chaînearchive.ubuntu.compar10.0.0.42.Un autre ajustement est à nouveau en cours de la manière suivante :
sudo sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.listCeci 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.Dans le cadre de ce tutoriel, nous ne mettons en miroir que des packages ou des dépôts de archive.ubuntu.com ; Bien sûr, vous pouvez ajouter d’autres dépôts non officiels dans le fichier mirror.list du serveur, mais vous devez ensuite réexécuter apt-mirror et modifier le fichier sources.list en conséquence sur n’importe quel client.
sudo apt update
Et vous êtes prêt à partir.
Mise à jour de la liste des paquets à partir des dépôts locaux.
Conclusion
La mise en place d’un dépôt local dans Ubuntu n’est pas aussi difficile qu’il n’y paraît, et elle peut s’avérer utile à condition que vous disposiez de ressources adéquates sur le réseau local et le disque.





