Introduction

Introduction

Cet article sur est la continuation logique de notre article PXE, car après avoir lu ceci, vous pourrez démarrer en réseau et installer la distribution de votre choix. Mais il y a d'autres utilisations de la création de votre propre référentiel. Par exemple, la bande passante. Si vous gérez un réseau et que tous les systèmes (ou certains) exécutent la même distribution, il est plus facile pour vous de simplement RSYNC en conjonction avec un miroir à proximité et servez des mises à jour vous-même. Ensuite, vous avez peut-être des packages créés par vous que votre distribution n'acceptera pas dans l'arbre principal, mais les utilisateurs les trouvent utiles. Obtenez un nom de domaine, configurez un serveur Web et voilà. Nous ne détaillerons pas la configuration d'un serveur Web ici, juste des tâches d'installation de base et la configuration de base d'un référentiel pour les systèmes Fedora ou Debian. Vous êtes donc censé avoir le matériel nécessaire (le serveur et l'équipement réseau nécessaire, selon la situation) et certaines connaissances sur Linux et lessertants. Alors, commençons.

NOTE:Cet article a été déplacé de notre domaine précédent LinuxCareer.com.

Création d'un référentiel sur les systèmes Fedora

Installation des outils

Fedora a un outil appelé createrepo qui simplifie la tâche à accomplir. Ainsi, tout ce que nous devons installer, c'est cela et HTTPD en tant que serveur Web:

 # yum install createpo httpd 

Configuration des référentiels

Maintenant, après avoir configuré votre serveur Web, nous supposerons que le répertoire racine est AR / var / www. Nous devons créer les répertoires nécessaires dans une affaire organisée (n'hésitez pas à nous adapter au goût si nécessaire ou à suivre la disposition officielle):

 # cd / var / www / html # mkdir -p fedora / 15 / x86_64 / base # mkdir fedora / 15 / x86_64 / mises à jour 

C'est tout pour le moment. Tout ce que nous avons à faire est de RSYNC aux dossiers créés et de nous assurer que nous avons beaucoup d'espace disponible:

 # RSYNC -AVRT RSYNC: // FTP.calomane.ie / pub / fedora / linux / releases / 15 / tout \ / x86_64 / os / packages / / var / www / html / fedora / 15 / x86_64 / base 

Utilisez maintenant Createrepo pour le dossier de base:

 # createpo / var / www / html / fedora / 15 / x86_64 / base 

Ceci est obligatoire, car il créera le répertoire REPODATA dont Yum a besoin lors de l'utilisation de votre référentiel. Maintenant, répétons la même étape que ci-dessus, mais cette fois, nous obtiendrons les mises à jour:

 # RSYNC -AVRT RSYNC: // FTP.calomane.IE / Pub / Fedora / Linux / \ Updates / 15 / x86_64 / / var / www / html / fedora / 15 / x86_64 / mises à jour 

En fin de compte, nous vous recommandons de vérifier si HTTPD est défini pour démarrer sur Boot et également utiliser Cron pour obtenir des mises à jour régulièrement:

 # SystemCTL Activer Httpd.service # crontab -e 

N'oubliez pas que la commande RSYNC à ajouter est la seconde, celle liée aux mises à jour et que SystemCTL n'est disponible que sur Fedora 15 ou plus. Utilisez NTSYSV ou CHKConfig sur les systèmes Fedora plus anciens.

Configuration du client

Vous devez dire aux machines qui obtiendront des mises à jour de votre serveur où les trouver, alors nous commençons par créer le .Repo Fichiers:

# ce sera la lan de base.Repo [Base-Lan] Name = Fedora $ liseverver - $ basearch bailloverMethod = priority bunterl = http: // 192.168.1.2 / Fedora / $ releasever / $ Basearch / base activé = 1 # Assurez-vous de désactiver l'officiel .Repo Fichiers avec activé = 0 gpgCheck = 0 # Ce sera des mises à jour.repo [updates-lan] name = fedora $ releasever - $ basearch - mises à jour de basculement de bashod = priority bunterl = http: // 192.168.1.2 / Fedora / $ releasever / $ Basearch / Mises à jour gpgcheck = 0 

Maintenant, faites juste un

 # mise à jour 

Et tu es prêt à partir.

Signature de package

Comme l'a souligné l'un de nos lecteurs, il faut être conscient des problèmes de sécurité lors de l'installation de packages. Le logiciel peut être téléchargé à partir de serveurs compromis et peut contenir des exécutables malveillants. Yum (et Apt, Zypper et d'autres systèmes de gestion des emballages) surmontent ce problème en utilisant des clés GPG. Nous avons parlé de refléter un référentiel Fedora. Ces packages sont déjà signés et les clés peuvent être trouvées dans / etc / pki / rpm-gpg. Si vous avez déjà utilisé un repo Fedora officiel en tant que client avant d'activer vos référentiels locaux, ce répertoire contiendra déjà les clés nécessaires. Sinon, les clés peuvent être téléchargées à partir de getfedora.org / clés /. Maintenant, nous devons modifier notre .Repo les fichiers pour activer GPGCheck et dire à Yum où sont les clés.

# Ce sont les seules lignes qui doivent être modifiées gpgcheck = 1 gpgkey = fichier: /// etc / pki / rpm-gpg / rpm-gpg-key-fedora 

Si vous utilisez un référentiel de packages personnalisés locaux, Yum se plaindra que vos packages personnalisés ne sont pas signés. Vous pouvez soit utiliser l'indicateur Yum -nogpgcheck si vous êtes le mainteneur miroir / référentiel et que vous ne servez que des packages à votre organisation, ou, la manière sécurisée, signer les packages personnalisés également. En effet, le serveur détenant le référentiel personnalisé peut également être compromis. Vous devrez donc créer une touche GPG sur le serveur et utiliser RPM pour signer le package personnalisé:

$ gpg --ge-key $ gpg - list-sigs

Comme vous pouvez le voir, l'utilisateur est dans notre cas «carrière Linux». Maintenant pour rendre la clé publique:

 $ gpg --armor --export "userId"> mon.clé.déposer.asc $ gpg - keyserver pgp.mit.edu --ndend-clé "utilisateur" 

Bien sûr, votre utilisateur sera diffusé, alors modifiez les informations en conséquence. Prenez note que sur Fedora 16, sur lequel nous avons testé cela, l'exécutable est nommé GPG2 au lieu de GPG.

Nous avons juste besoin de créer un .Fichier RPMMACROS dans le répertoire domestique de l'utilisateur qui signera les packages et mettra ce qui suit:

% _Signature gpg% _gpg_name userId% _gpgbin / usr / bin / gpg2 

La commande pour signer un package, maintenant que tout est défini, sera

 $ rpm --adddsign name_of_package.RPM

Maintenant, le téléchargement du client à partir de votre référentiel personnalisé utilisera «RPM -Import $ Key» afin de pouvoir télécharger ces packages personnalisés.

Création d'un référentiel sur les systèmes Debian

Installation

Étant donné que la structure du référentiel de Debian est plus alambiquée, vous verrez qu'il faut un peu plus de travail côté serveur, mais moins du côté client. En tout temps, il y aura trois sections: stable, tests et instable (sans compter expérimental) qui ont chacun trois composants selon la façon dont les forfaits sont autorisés: principal, contrib et non libre. C'est votre décision de prendre cette partie de la distribution que vous voulez refléter, mais c'est notre devoir de vous avertir: Debian a beaucoup plus de forfait. Il existe de nombreux outils que vous pouvez utiliser pour créer un référentiel personnalisé avec vos propres packages personnalisés, mais nous nous en tiendrons aux packages officiels pour l'instant. Alors, nous reviendrons sur notre configuration pour l'article PXE et créerons un dépôt local pour l'installation. Nous aurons besoin d'un serveur Web, alors installons-le:

 # aptitude installer apache2 

Assurez-vous qu'Apache est configurée et démarrée avant de continuer.

Configuration du serveur

Le répertoire racine par défaut, tout comme dans Fedora, est / var / www, alors créons un répertoire Debian là-dedans:

 # mkdir / var / www / debian 

Les gens debian recommandent FTPSync, une collection de scripts Perl destinés à vous aider à obtenir ce dont vous avez besoin sur votre miroir local. Le l'intérêt particulier est le --exclure Option, puisque vous ne voulez pas obtenir tout le contenu d'une archive Debian (seulement AMD64, uniquement principal et contrib, ne serre que, sans CD, etc.). Si vous souhaitez créer un référentiel à utiliser après l'installation, pointez simplement votre / etc / apt / sources.Liste du répertoire qui contribue aux packages (vous avez déjà un modèle de travail là-bas) et c'est tout. Par exemple:

 deb http: // 192.168.1.2 / Debian Squeeze principale contrib 

Mais voyons en détail ce que vous devez télécharger si vous n'avez pas envie d'utiliser FTPSync. Debian (et Ubuntu, et probablement d'autres dérivés Debian) ont un colis nommé apt-utils, qui offre, entre autres, le apt-ftparchive programme que nous utiliserons pour notre référentiel personnalisé. Donc…

 # aptitude installer apt-utils 

Installera l'outil nécessaire sur votre système. Nous avons déjà le répertoire de base créé sur notre serveur Web, nous aurons donc besoin de sous-répertoires personnalisés pour nos besoins:

 # cd / var / www / debian # mkdir -p pool / main # mkdir pool / contrib # mkdir -p dists / comprese / main / binary-amd64 # mkdir -p dists / comprese / contrib / binary-amd64 # mkdir .cache 

Maintenant que nous avons la structure du répertoire en place, créons les fichiers de configuration nécessaires pour aider à trouver et à indexer notre logiciel. Veuillez noter que vous pouvez utiliser cette configuration pour refléter les packages officiels Debian ou créer un référentiel avec vos propres packages, car les étapes sont les mêmes.

Le premier fichier des deux que nous aurons besoin pour créer (les deux vivront dans / var / www / debian) est nommé APT-libération.confli.

 # CD / var / www / debian # $ Editor APT-Release.confli 

Le contenu, lié à nos besoins, comme indiqué ci-dessus, serait comme ceci:

Apt :: ftParchive :: Release :: CodeName "Squeeze"; Apt :: ftParchive :: Release :: Origin "Linuxcareer.com "; apt :: ftParchive :: Release :: Composants" principal contrib "; apt :: ftParchive :: Release :: Label" LinuxCareer.com debian repo "; apt :: ftparchive :: release :: architectures" AMD64 "; apt :: ftParchive :: release :: Suite" Squeeze "; 

Vous pouvez également utiliser APT-FTPARCHIVE pour générer des fichiers de configuration en fonction des arguments en ligne de commande. Utilisez toute approche que vous préférez.

Le deuxième fichier de configuration est nommé apt-ftparchive.conf et son contenu ressemblerait à ceci:

 Dir archivedir "."; Cachedir"./ /.cache ";; par défaut packages :: compress". gzip bzip2 "; contenu :: compress". gzip bzip2 ";; TreedEfault binCachedB" Packages - $ (section) - $ (arch).db "; répertoire" pool / $ (section) "; packages" $ (dist) / $ (section) / binaire - $ (arch) / packages "; contenu" $ (dist) / contenu - $ (arch) "; ; Tree "Dists / Squee 

Comme vous pouvez le voir, la syntaxe est très explicite concernant les deux fichiers.

Par exemple, nous allons maintenant télécharger un .Deb d'un miroir Debian afin d'illustrer correctement notre idée.

 # cd / var / www / debian / pool / main # wget -c ftp: // ftp.calomane.c'est-à-dire / miroirs / ftp.Debian.org / debian / pool / main / \ p / patch / patch_2.6.1.85-423d-3_amd64.deb 

Générons maintenant le contenu (cela devra être répété à chaque fois que vous ajoutez ou supprimez les packages).

 # CD / var / www / debian # apt-ftparchive Générer apt-ftparchive.Conf # apt-ftparchive -c apt-libérer.confed release Dists / Squeeze> \ Dists / Squeeze / Release 

Ces actions ont fait ce qu'on appelle «construire le référentiel». Maintenant, comme indiqué ci-dessus, ajoutez une ligne à vos sources.Liste et vous pouvez avoir accès à votre référentiel logiciel. Si vous avez besoin de devenir un miroir Debian et que vous n'avez toujours pas envie de FTPSync, utilisez RSYNC avec le répertoire distant nommé Pool / $ Section et allez vous procurer un café ou quelque chose. Utilisez également un miroir, ne surchargez pas FTP.Debian.org, s'il vous plaît.

Signature de package

Si vous souhaitez utiliser une image CD / DVD / Blu-ray pour servir du contenu à vos clients, le fichier de version sur les images de médias optiques n'est pas signé par défaut. Mais si vous servez par Rsync'ing a Mirror's Content, il est probable que vous n'ayez rien à faire. Si vous avez un référentiel personnalisé, voici comment le faire. Tout d'abord, comme dans l'exemple Fedora, générez la clé GPG:

 $ gpg --ge-clé 

Maintenant, en raison du bogue n ° 639204 dans DeBign (dernière mise à jour en août), il semblerait que nous devrons prendre un itinéraire alternatif. Étant donné que les forfaits Debian ne sont essentiellement que des archives AR, nous utiliserons le moyen de niveau inférieur de signer nos paquets:

 $ ar x package_name.Deb $ Cat Debian-Binary Control.le goudron.données GZ.le goudron.gz> tempfile $ gpg -abs -o _gpgorigin tempfile $ ar rc package_name.Deb _gpgorigin Debian-binary Contrôle.le goudron.données GZ.le goudron.gz 

Donc, ce que nous avons fait ici a été d'extraire le .Fichier DEB avec AR, concaténer son contenu dans un fichier temporaire (attendez l'ordre), signez ce fichier puis recompose le .Deb à son état d'origine. Maintenant, nous devons exporter la clé GPG (comme vous pouvez le voir, le processus n'est pas si différent de celui appliqué sur Fedora).

 $ gpg --export -a> mydebsign.ASC 

Extrait maintenant la clé pour une utilisation ultérieure:

 $ gpg - empreinte-doigt 

Rappelez-vous les quatre derniers groupes dans l'empreinte digitale clé (comme vu ci-dessous), car ce sera l'ID clé, que nous utiliserons plus tard.

Sur la machine client, assurez-vous que DeBsig-Verify soit installé, vous pouvez créer une place pour la clé:

 # mkdir / usr / share / debsig / clés / $ key_id 

Comme vous pouvez le voir dans la capture d'écran, notre exemple d'ID de clé est 8760C540B4FC5C21. Importons maintenant la clé:

 # gpg --no-default-keyring - keyring \ / usr / share / debsig / clés / $ key_id / debsign.GPG - Import MyDebSign.ASC 

Maintenant, voici la partie délicate: nous aurons besoin d'un fichier de stratégie pour les clés. La langue utilisée est XML, mais pas à vous inquiéter: dans / usr / share / doc / debisg-verify / exemples vous trouverez un fichier nommé générique.pol qui peut être copié quelque part pour être édité et renommé. Un exemple d'un tel fichier pourrait ressembler:

 xmlns = "http: // www.Debian.org / debsig / 1.0 / ">  Name = "Linux Career" Description = "Package offert par Linux Career"/>   Type = "origine" file = "debsign.gpg "/>   MinOptional = "0">  Type = "origine" file = "debsign.gpg "/>  

Ce que vous voyez ci-dessus n'est que la partie essentielle du fichier de stratégie. Après avoir vérifié avec l'exemple et apporté les modifications nécessaires, enregistrez ce fichier sur / etc / debsig / politiques / $ key_id / $ policy_name.pol. Après cette étape, si vous avez suivi les étapes correctement, vous pouvez utiliser DeBsig-Verify avec le nom du package comme argument pour vérifier vos packages téléchargés. Merci à Purplefloyd pour son article utile à ce sujet.

Configuration du client

Alors, commençons notre machine client, en nous assurant qu'elle est configurée pour démarrer à partir du réseau et, lorsque vous êtes invité à choisir un miroir, sélectionnez «Saisissez les informations manuellement». Entrez l'IP de votre serveur, puis l'emplacement par rapport à / var / www (Debian, dans notre cas) et vous devriez être prêt à installer.

Conclusion

On ne peut jamais souligner suffisamment l'importance de sauver la bande passante, même sur un petit réseau. Bien sûr, il existe d'autres avantages à une approche miroir locale, comme servir un logiciel personnalisé pour votre entreprise (correctifs spéciaux appliqués ou simplement modifier pour répondre aux besoins de l'entreprise) ou servir votre logiciel emballé pour votre distribution préférée.

Tutoriels Linux connexes:

  • Comment configurer un Raspberry Pi en tant que serveur de démarrage PXE
  • Miroirs Ubuntu
  • Exemples RSync dans Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment imprimer l'arbre du répertoire à l'aide de Linux
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Masterring Bash Script Loops
  • Ubuntu 20.04 Guide