Non connecté au réseau mondial du point de vue de la sécurité tel que l'environnement de production, Il existe des serveurs dits autonomes.
Lorsque vous souhaitez installer des bibliothèques et des packages supplémentaires sur un tel serveur Comment puis-je l'installer?
J'ai été accro à mes travaux précédents et j'aimerais écrire un petit résumé des solutions à ce moment-là. J'espère que cela sera utile à n'importe qui.
À la fin de l'article, j'introduis un script qui exécute automatiquement cette méthode. (Avec image Gif) Puisqu'il a été créé par moi personnellement, je ne garantis pas l'opération, mais si vous avez une chance, veuillez l'utiliser.
Définissez les mots utilisés dans l'article comme suit:
mot | Définition |
---|---|
Environnement autonome | Un serveur qui ne se connecte pas au réseau global. Lieu d'installation. |
PC local | Mon PC de travail. Il est connecté au réseau. |
Nom | OS | version | Remarques |
---|---|---|---|
Environnement autonome | CentOS | 7 | AWS EC2 (Pour vérification) |
PC local | macOS | Catalina | |
Conteneur Docker | CentOS | 7 |
Suivez la procédure ci-dessous.
Plus loin dans l'article, j'expliquerai la procédure détaillée ci-dessus.
Si vous ne disposez pas d'un environnement Docker, vous pourrez peut-être l'exécuter sur votre PC local. Cependant, il peut y avoir des cas où cela ne fonctionne pas en fonction de la dépendance. Nous vous recommandons d'utiliser un environnement propre avec presque rien.
rpm
.Faisons-le réellement!
Nous avons préparé AWS EC2 en tant que serveur autonome à utiliser dans l'environnement de vérification. Afin de l'isoler du réseau global, toute communication autre que ssh (port 22) est interdite.
↓ Résultat de l'exécution de yum update
dans un environnement autonome
Lancez autant que possible un conteneur Docker dans le même environnement que l'environnement autonome. Cette fois, nous allons lancer le conteneur CentOS 7. Lorsque vous vous levez, accédons au conteneur.
$ docker run -itd --name centos7 centos:centos7
$ docker exec -it centos7 bash
Commencez par créer un répertoire pour télécharger le package.
# mkdir standalone_install
Dans le répertoire créé, téléchargez tous les packages requis pour l'environnement autonome.
Cette fois, nous téléchargerons ensemble git
et ʻiproute2` (assortiment de commandes réseau).
En ajoutant l'option --downloadonly
, il est possible d'exécuter uniquement le téléchargement sans installer.
# yum install -y --downloadonly --downloaddir=standalone_install git iproute2
yum install --downloadonly --downloaddir=<directory> <package> [^1]
Si vous regardez à l'intérieur du répertoire téléchargé, vous verrez qu'il contient un grand nombre de fichiers rpm
.
Installez la commande de création de référentiel createrepo
.
# yum install -y createrepo
Créez un référentiel en utilisant la commande create repo
que vous venez d'installer.
Spécifiez simplement le répertoire et exécutez-le pour créer les métadonnées et agir comme un référentiel.
# createrepo standalone_install
↓ repodata
est les métadonnées créées par la commande create repo
.
Les étapes suivantes déplaceront le fichier vers un environnement autonome, assurez-vous donc de compresser le fichier si nécessaire.
Déplacez le dossier du référentiel créé par la commande createrepo
vers l'environnement autonome.
Cette fois, c'est un peu gênant, mais déplacez-le selon la procédure suivante.
#exit ← Quitter le conteneur. Ctrl+D est également OK.
$ docker cp centos7:/standalone_install/ ./
$ scp -r standalone_install standalone_ec2:/home/centos/
Il ne reste plus qu'à travailler dans un environnement autonome.
Créez un fichier .repo
et configurez le référentiel déplacé.
Les éléments de réglage sont les suivants.
nom de l'article | Éléments de réglage |
---|---|
name | Le nom du référentiel |
baseurl | Le chemin du répertoire où se trouve le référentiel réel |
gpgcheck | ~~Chèque Guppigu~~S'il faut confirmer la signature GPG. 0=false,1=true |
$ sudo vi /etc/yum.repo.d/standalone_install.repo
[standalone_repo]
name=standalone_repo
baseurl=file:///home/centos/standalone_install/
gpgcheck=0
/
dans file: ///
.Spécifiez le référentiel avec l'option --enablerepo
pour installer le package.
A ce moment, --disablerepo = *
est défini pour ne pas aller chercher un référentiel externe.
(L'option --disablerepo
doit être définie avant le --enablerepo
)
$ sudo yum install -y --disablerepo=* --enablerepo=standalone_repo git iproute2
J'ai pu l'installer de cette manière même dans l'environnement de vérification (EC2)! (Cette image ne le prouve pas du tout ... lol)
Les points clés de cette méthode d'installation sont les suivants.
--Utilisez le même système d'exploitation et la même version du conteneur Docker que l'environnement autonome
--Téléchargement du fichier rpm
à l'aide de l'option --downloadonly
--Création d'un référentiel avec la commande create repo
--Créez un fichier .repo
et configurez le référentiel
--Spécifiez le référentiel avec --enablerepo
et installez
Comme je l'ai mentionné au début de l'article, j'ai personnellement créé un script qui exécute automatiquement cette méthode d'installation. Le Readme décrit comment l'utiliser, veuillez donc l'utiliser si vous en avez l'occasion. https://github.com/hesma2/standalone_install
↓ Image d'opération (les étapes 1 à 3 sont exécutées par un script)
[^ 1]: Utilisez yum pour télécharger sans installer de packages
Recommended Posts