Préface
Cela fait déjà 2 jours que la nouvelle version du système d'exploitation CentOS est sortie, à savoir CentOS 8. Et pour l'instant, il y a relativement peu d'articles sur Internet concernant son utilisation, c'est pourquoi j'ai décidé de combler ce vide. Je vais parler non seulement de l'installation de ces deux programmes, mais aussi de la façon dont j'envisage l'installation de Linux dans un environnement virtuel dans le monde moderne pour des tâches standard, y compris la partition des disques, etc.
Mais d'abord, je veux brièvement expliquer pourquoi il vaut la peine de passer à cette version depuis toutes les précédentes, et il y a deux raisons à cela :
- php7 ! Dans l'ancienne version de CentOS, la "version orthodoxe" php5.4 était installée...
Bon, si on aborde cela de manière un peu plus sérieuse, beaucoup de paquets ont sauté plusieurs versions d'un coup. Nous (les fans des systèmes basés sur redhat) sommes enfin entrés, si ce n'est dans le futur, au moins dans le présent. Et les partisans d'Ubuntu ne se moqueront plus de nous et ne nous désigneront pas du doigt, eh bien... au moins pour un certain temps ;).
- La transition de yum à dnf. La principale différence est qu'il est désormais officiellement possible de travailler avec plusieurs versions de paquets en même temps. Pour l'instant dans la version huit, cela ne m'a pas encore été utile, mais cela semble prometteur.
Création d'une machine virtuelle
Il existe différents hyperviseurs et je n'ai pas pour but de diriger le lecteur vers un en particulier, je vais donc parler des principes généraux.
Mémoire
Tout d'abord… Pour installer le système CentOS à partir de la version 7, c'est certain, et je pense que c'était aussi le cas en 6 (« mais ce n'est pas sûr »), il est nécessaire minimum 2 Go de mémoire vive. Je recommande donc de donner au moins cela au départ.
Mais si besoin, après l'installation, il est possible de réduire la quantité de mémoire. Un système minimal fonctionne tout à fait normalement avec 1 Go, j'ai vérifié.
Disque
Pour une installation correcte, il faut créer un disque virtuel d'une taille de 20 à 30 Go. Cela suffira pour le système. Et un deuxième disque pour les données. Celui-ci peut être ajouté à la fois lors de la création de la machine virtuelle et après. En général, j'ajoute cela plus tard.
Processeur
Avec un seul cœur, le système minimal ne ralentit pas. Et comme les ressources peuvent être facilement redimensionnées, cela n'a pas de sens de donner plus lors de l'installation (sauf si vous connaissez parfaitement les exigences et que vous n'avez pas envie d'accéder à la configuration une fois de plus)
Le reste peut généralement être laissé par défaut.
L'installation proprement dite
Alors… Démarrons l'installateur… Personnellement, cela fait longtemps que je n'installe ce genre de services qu'en tant que machines virtuelles, donc je ne vais pas décrire le processus d'enregistrement d'une distribution sur une clé USB — je monte simplement un ISO comme disque CD dans mon hyperviseur préféré, je démarre et c'est parti.
L'installation de base se déroule de manière assez typique, je vais m'attarder sur quelques points seulement.
Choix de la source
Depuis la sortie de la version huit, le miroir de Yandex est en panne depuis plusieurs jours. En d'autres termes, il remonte périodiquement, puis recommence à afficher une erreur. Je suis sûr que c'est à cause de la surcharge du service. Par conséquent, pour indiquer la source, j'ai personnellement dû choisir un miroir qui me convient et entrer manuellement l'adresse dans la fenêtre de l'installateur. Il est important de se rappeler que vous devez indiquer le chemin vers le dossier où se trouve le répertoire repodata. Par exemple, .
Partitionnement du disque
Cette question est plutôt religieuse à mon avis. Chaque administrateur a sa propre position à ce sujet. Mais je vais quand même partager mon point de vue sur la question.
Oui, en principe, on peut allouer tout l'espace à la racine et cela fonctionnera, la plupart du temps assez bien. Alors pourquoi faire compliqué avec différentes partitions ? Les principales raisons à cela, selon moi, sont 2 : les quotas et la portabilité.
Par exemple, si quelque chose ne va pas et qu'il y a des erreurs sur la partition principale de données, on veut pouvoir démarrer le système et procéder à des opérations de récupération. C'est pourquoi j'alloue une partition séparée pour /boot. C'est là que se trouvent le noyau et le chargeur de démarrage. En général, 500 mégaoctets suffisent, mais dans de rares cas, cela peut nécessiter plus, et considérant que nous avons pris l'habitude de mesurer l'espace en téraoctets, j'alloue 2 Go à cette partition. Et il est important de ne pas en faire un lvm.
Ensuite vient la racine du système. Pour une installation normale, je n'ai jamais eu besoin de plus de 4 Go pour le système, mais lors des opérations planifiées, j'utilise souvent le répertoire /tmp pour décompresser les distributions, et je ne vois pas l'intérêt de le partager en tant que partition séparée — dans les systèmes modernes, il est nettoyé automatiquement, donc il ne se remplit pas. Donc, pour la racine, j'alloue 8 Go.
Swap… En réalité, il a peu d'utilité pratique. Si votre serveur commence à utiliser le swap, cela signifie simplement qu'il faut ajouter plus de mémoire vive. Sinon, des problèmes de performance sont garantis (ou il y a une fuite de mémoire dans un programme). Par conséquent, cette section est uniquement utile pour le diagnostic. Ainsi, 2 Go est un chiffre excellent. Oui, peu importe combien de mémoire il y a sur le serveur. Oui, j'ai lu tous ces articles qui parlent de la relation entre la taille de la mémoire et celle du swap… À mon avis, ils sont obsolètes. En 10 ans de pratique, cela ne m'est jamais venu à l'esprit. Je les utilisais il y a 15 ans, cependant.
Chacun peut décider s'il convient de séparer /home. Si quelqu'un utilise activement ce répertoire sur le serveur, il vaut mieux le séparer. S'il n'est pas utilisé, ce n'est pas nécessaire.
Ensuite, /var. À mon avis, il faut absolument le séparer. Pour commencer, on peut se limiter à 4 Go, et après, on verra. Et oui, par "on verra", je veux dire que
- D'une part, on peut toujours monter un autre disque dans le sous-répertoire /var (ce que je montrerai plus loin en exemple)
- D'autre part, nous avons l'lvm — on peut toujours ajouter. Et on doit généralement ajouter lorsque trop de journaux commencent à y être écrits. Mais je n'ai jamais réussi à prédire ce chiffre à l'avance, donc je commence avec 2 Go et ensuite j'observe.
L'espace non alloué restera libre dans le groupe de volumes, et on pourra toujours l'utiliser plus tard.
LVM
Tous les partitions, à part /boot, ont un sens à faire en LVM. Oui, y compris le swap. Oui, selon tous les conseils, le swap doit être au début du disque, mais dans le cas de LVM, sa position ne peut en principe pas être déterminée. Mais comme je l'ai déjà dit, votre système ne devrait pas n'utilise pas vraiment le swap. Et donc, peu importe où il se situe. Nous ne vivons pas en 95, honnêtement !
Ensuite, dans LVM, il y a plusieurs entités de base avec lesquelles il faut savoir vivre :
- volume physique
- groupe de volumes
- volume logique
Les volumes physiques sont regroupés, chaque volume physique ne peut appartenir qu'à un seul groupe, tandis qu'un groupe peut résider sur plusieurs volumes physiques.
Et les volumes logiques se trouvent chacun dans un seul groupe.
Mais... Bon sang, nous sommes au 21e siècle. Et les serveurs sont virtuels. Il n'a pas de sens d'appliquer les mêmes mécanismes qu'à des serveurs physiques. Et pour les serveurs virtuels, il est essentiel de séparer les données du système ! Cela est très important notamment pour la possibilité de transférer rapidement les données vers une autre machine virtuelle (par exemple lors d'un passage à un nouveau système d'exploitation) et d'autres fonctionnalités utiles (comme des sauvegardes distinctes par volume en utilisant les outils de l'hyperviseur, par exemple). C'est pourquoi un groupe de volumes est utilisé pour le système et un autre pour les données ! Cette séparation logique aide énormément dans la vie !
Si vous avez créé une seule disque dur virtuel lors de la création de la machine virtuelle, la configuration s'arrête là. Mais si vous en avez créé deux, ne définissez pas encore le second.
Lançons l'installation.
Post-installation
Enfin, le système fraîchement installé a démarré. La première chose à vérifier est la connexion Internet.
ping ya.ru Y a-t-il une réponse ? — Super, appuyez sur Ctrl-C.
S'il n'y en a pas, allez configurer le réseau, sans cela, pas de vie, mais mon article ne parle pas de ça.
Maintenant, si nous ne sommes pas en tant que root, connectons-nous en tant que root, car taper comme ça trop de commandes avec sudo ne me plaît pas (et que les administrateurs paranoïaques me pardonnent) :
sudo -iMaintenant, d'abord, tapez
dnf -y updateEt si vous lisez cet article en 2019, il est probable que rien ne se passe, mais cela valait la peine d'essayer.
Maintenant, configurons le disque restant
Supposons que la partition système était xvda, alors le disque de données sera xvdb. Ok.
La plupart des conseils commenceront par les mots « Lancez fdisk et créez une partition… »
Eh bien, c'est faux!
Je le répète encore une fois, car c'est important ! Dans ce cas, pour travailler avec LVM, créer des partitions sur un disque entier, même s'il est virtuel, est nuisible ! Dans cette phrase, chaque mot est important. Si nous travaillons sans LVM — il faut le faire. Si nous avons sur le disque, disons, le système et les données — il faut le faire. Si nous avons besoin de laisser la moitié du disque vide pour une raison quelconque — il faut aussi le faire. Mais généralement, toutes ces hypothèses sont purement théoriques. Car si nous décidons d’ajouter de l’espace à la partition existante, il est plus simple de le faire précisément dans cette configuration. Et la commodité dans l'administration l'emporte tellement sur de nombreux aspects que nous cherchons délibérément à avoir cette configuration.
L'avantage est que si vous souhaitez étendre la partition de données, il vous suffit d'ajouter de l'espace au volume logique, puis d'étendre le groupe avec vgextend, et voilà ! Dans de rares cas, quelque chose d'autre peut être nécessaire, mais au moins il n'est pas nécessaire d'étendre le volume logique au départ, ce qui est déjà agréable. Pour étendre ce volume, il est recommandé de d'abord supprimer l'existant, puis de créer un nouveau par-dessus... Ce qui n'est pas très agréable et ne peut pas être fait à chaud, alors que l'extension selon le scénario que j'ai mentionné peut être réalisée
En résumé, nous créons le volume physique, puis le groupe de volumes qui l'inclut, et ensuite la partition pour notre serveur :
pvcreate /dev/xvdb
vgcreate data /dev/xvdb
lvcreate -n www -L40G data
mke2fs -t ext4 /dev/mapper/data-www
Ici, au lieu de mettre une majuscule « L » (et une taille en Go), vous pouvez mettre une minuscule et alors au lieu de la taille absolue, spécifier relative, par exemple, pour utiliser la moitié de l'espace libre actuellement dans le groupe de volumes, vous devez indiquer « -l +50%FREE »
La dernière commande formate la partition dans le système de fichiers ext4 (qui jusqu'à présent dans ma pratique montre la plus grande stabilité en cas de défaillance, c'est pourquoi je la préfère).
Nous montons maintenant la partition au bon endroit. Pour cela, nous ajoutons la bonne ligne dans /etc/fstab :
/dev/mapper/data-www /var/www ext4 defaults 1 2Et nous tapons
mount /var/wwwSi une erreur survient, alarmons-nous ! Car cela signifie qu'il y a une erreur dans /etc/fstab. Et qu'au prochain redémarrage, nous aurons de très gros problèmes. Le système risque même de ne pas démarrer, ce qui est souvent très pénible pour les services cloud. C'est pourquoi il faut soit corriger d'urgence la dernière ligne ajoutée, soit la supprimer entièrement ! C'est précisément pourquoi nous n'avons pas inscrit la commande de montage manuellement — sinon nous n'aurions pas eu cette belle opportunité de vérifier la configuration tout de suite.
Maintenant, installons tout ce que nous voulions et ouvrons les ports pour le web :
dnf groupinstall "Development Tools"
dnf -y install httpd @nodejs @redis php
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent
Si vous le souhaitez, vous pouvez également installer la base de données ici, mais personnellement, j'essaie de la garder séparée du serveur web. Bien que la garder à proximité soit plus rapide, c'est vrai. La vitesse des adaptateurs réseau virtuels est généralement autour d'un gigabit, et lorsque vous travaillez sur la même machine, les accès se font presque instantanément. Mais c'est moins sûr. Chacun a ses priorités.
Nous ajoutons maintenant un paramètre dans le fichier de configuration (nous créons un nouveau fichier, la moderne idéologie de CentOS est ainsi faite)
echo "vm.overcommit_memory = 1" > /etc/sysctl.d/98-sysctl.conf Nous redémarrons le serveur.
Dans les commentaires, on m'a reproché de conseiller de désactiver SeLinux, donc je vais rectifier et écrire qu'après cela, il ne faut pas oublier de configurer SeLinux.
En fait, c'est le profit ! 🙂
Source : habr.com
