Installez CentOS 8 sur VDS 256

CentOS 8 a enfin vu le jour, que cela nous plaise ou non, dans un proche avenir, les adeptes du système d'exploitation d'entreprise de la communauté devront se faire des amis.

Ayant décidé d'essayer les huit à l'état «sauvage», j'ai trouvé que mes hébergeurs n'étaient pas pressés de créer une image de serveur virtuel sur CentOS 8. Et l'idée d'une «ISO native» et d'une «console VNC» n'a pas inspiré la confiance en raison des modestes caractéristiques du VDS et de la gourmandise. anaconda moderne (anaconda).

Il restait à copier l'image déployée du nouveau CentOS directement sur le disque dur VDS, en téléchargeant le serveur «sur le réseau». La méthode ne brille pas de nouveauté, cependant, par exemple, je n'ai pas pu trouver d'instructions détaillées et complètes pour sa mise en œuvre. Par conséquent, je voulais combler rapidement cette lacune et parler de l'installation de CentOS 8 sur un tel VDS:
KVM, 256 Mo de RAM, 2 Go de disque dur, sans console et ISO



Soit dit en passant, de cette façon, vous pouvez installer ou réinstaller non seulement CentOS et pas nécessairement dans un environnement virtuel.

0. Caractéristiques du VDS


Comme il a été dit au début de l'article:


Soit dit en passant, les hébergeurs proposent désormais dans leurs tarifs les plus budgétaires des VDS avec des fonctionnalités plus puissantes. Que CentOS 7 soit le système d'exploitation préinstallé, je pense que maintenant c'est possible pour presque tous les fournisseurs de virtualisation.

1. Trois fichiers précieux


Tout d'abord, vous aurez besoin d'un "donneur" - un serveur supplémentaire avec CentOS 8. installé. Bien que cela ne soit pas important, mais si les caractéristiques techniques du donateur correspondent à celles de VDS, la configuration sera alors beaucoup moins difficile.

La quantité de mémoire et la taille du disque donneur ne sont pas importantes, l'essentiel est d'y installer un système d'exploitation. Je conseille catégoriquement de marquer le disque donneur avec une partition racine.

Comme dans ce cas il y a KVM VDS, le donateur peut être cuit à la maison - sur n'importe quelle distribution Linux avec libvirt . Je préfère le réglage initial minimal supplémentaire, qui dans le contexte de la tâche sera d'une aide significative. Dans cet article, j'ai parlé de la façon standard de créer une petite image CentOS. Sous le spoiler, le fichier kickstart correspondant et comment l'utiliser:

CentOS 8 Tiny
install text url --url="https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/" eula --agreed firstboot --disable keyboard --vckeymap=us --xlayouts='us' lang en_US.UTF-8 timezone Africa/Abidjan auth --enableshadow --passalgo=sha512 rootpw --plaintext very-strong-password-see-below #ignoredisk --only-use=vda zerombr bootloader --location=mbr clearpart --all --initlabel part / --fstype="ext4" --size=1 --grow network --bootproto=dhcp --hostname=localhost --onboot=on --activate #reboot poweroff %packages --nocore dnf NetworkManager openssh-server %end %addon com_redhat_kdump --disable %end 

Vous pouvez placer ce fichier sur n'importe quelle ressource Web disponible et le spécifier au début de l'installation:

image

Je fais attention au mot de passe root: je vous recommande fortement de rendre l'archivage difficile afin de ne pas avoir de problèmes avec les hooligans qui scannent Internet dans les prochaines étapes à la recherche de divertissement.

Après avoir créé le donateur, vous devez prendre tous les fichiers de son disque dans une archive, par exemple centos8.tgz . Vous pouvez le faire de différentes manières: connectez le disque donneur à une autre machine virtuelle, montez-le sur l'hyperviseur ou emballez tous ses fichiers dans le donneur lui-même, à l'exception des répertoires virtuels (/ dev, / proc, etc.)

De plus, deux fichiers supplémentaires seront nécessaires du donateur: le noyau ( vmlinuz ) et le ramdrive modifié ( initrd ). Le noyau peut être pris dans le répertoire / boot du donateur (vmlinuz-something-there), et le ramdrive doit être rendu spécial en incluant la possibilité de démarrer sur le réseau depuis le serveur NFS. Pour ce faire, dans un système d'exploitation donneur fonctionnel, vous devez faire:

 # dnf install dracut-network nfs-utils # echo 'add_dracutmodules+="nfs"' >> /etc/dracut.conf # dracut -f /initrd 

et récupérez l'initrd nécessaire à la racine du disque.

En conséquence, trois fichiers seront nécessaires à l'avenir:

  • centos8.tgz - archive avec tous les fichiers de CentOS 8 installé
  • initrd - un système de fichiers temporaire avec support NFS
  • vmlinuz - noyau OS

 # ls -l | awk '{print $9,$5}' centos8.tgz 320712609 initrd 21916741 vmlinuz 7876856 

Le donateur n'est plus nécessaire, bien qu'il puisse être utile (voir ci-dessous)

2. Serveur NFS


Pour télécharger VDS sur un réseau sans utiliser de disque local, vous aurez besoin d'un serveur avec une ressource NFS. Un tel serveur peut être n'importe quoi, l'essentiel est sa disponibilité réseau à partir de l'adresse IP de VDS. Vous pouvez essayer un équipement domestique (avec un éventuel "redirection de port sur le routeur") ou tout autre VDS, pris par exemple pour un test. Enfin, utilisez le «donateur» si vous pouvez le gérer avec NFS (je plaisante). Après l'installation de CentOS 8, le serveur NFS, comme le donateur, ne sera plus nécessaire.

La ressource NFS exportée doit contenir le fichier centos8.tgz et son contenu décompressé dans sa racine. Voici un guide de production rapide utilisant CentOS 7 comme exemple:

 # mkdir /nfsroot # cp .../centos8.tgz /nfsroot # tar xzf /nfsroot/centos8.tgz -C /nfsroot # yum install nfs-utils # systemctl enable rpcbind nfs-server # echo '/nfsroot 100.100.100.100/32(rw,sync,no_root_squash,no_all_squash)'>/etc/exports # systemctl restart rpcbind nfs-server 

100.100.100.100 est, bien sûr, l'adresse IP VDS avec le futur CentOS 8.

3. Téléchargez VDS "sur le réseau" (NFSroot)


Tout d'abord, vous devez copier les fichiers ramdrive ( initrd ) et noyau ( vmlinuz ) obtenus lors de la première étape vers la racine VDS. Ensuite, configurez GRUB:

/etc/grub.d/40_custom

 #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "NFSRoot" { linux /vmlinuz root=/dev/nfs rw nfsroot=200.200.200.200:/nfsroot \ ip=100.100.100.100::100.100.100.1:255.255.255.0:::off initrd /initrd } 

200.200.200.200 - L'adresse IP du serveur NFS.

/ etc / default / grub

 . . . GRUB_TIMEOUT=0 . . . GRUB_DEFAULT="NFSRoot" . . . 

Et redémarrez VDS:

 # grub2-mkconfig --output=/boot/grub2/grub.cfg # reboot 

Si tout se passe bien, VDS chargera le donneur CentOS 8 et le disque local sera complètement démonté:



4. "Installation" CentOS 8


Vous pouvez maintenant reformater et formater le disque VDS local, y copier les fichiers du système d'exploitation, installer le chargeur de démarrage et configurer le réseau. Une brève description des actions nécessaires:

 # dnf install parted tar # parted /dev/vda unit s print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 526335s 524288s primary linux-swap(v1) 2 526336s 4194303s 3667968s primary xfs boot # dd if=/dev/zero of=/dev/vda count=3000 

Sur le petit VDS, je préfère cette configuration de disque:

 # parted /dev/vda unit s print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 2s 2047s 2046s Free Space 1 2048s 4194303s 4192256s primary boot 

Formatage, suppression d'une réservation et définition de la valeur UUID sur «donneur»:

 # mkfs.ext4 /dev/vda1 # cat /etc/fstab | grep UUID UUID=1f944e86-c590-4af7-b651-3c1783c15d79 / ext4 defaults 1 1 # tune2fs -m 0 -U 1f944e86-c590-4af7-b651-3c1783c15d79 /dev/vda1 tune2fs 1.44.3 (10-July-2018) Setting reserved blocks percentage to 0% (0 blocks) Setting UUID on a checksummed filesystem could take some time. Proceed anyway (or wait 5 seconds to proceed) ? (y,N) y 

Copie des fichiers du système d'exploitation et installation du chargeur de démarrage:

 # mount /dev/vda1 /mnt # tar xzf /centos8.tgz -C /mnt # grub2-install --boot-directory=/mnt/boot /dev/vda Installing for i386-pc platform. Installation finished. No error reported. 

Étant donné que Network Manager comprend l' héritage , vous pouvez créer un fichier ifcfg approprié pour configurer le réseau. Le nom de l'interface peut être trouvé:

 # ls /sys/class/net/ enp1s0 lo 

 # cat > /etc/sysconfig/network-scripts/ifcfg-enp1s0 << EOF > DEVICE=enp1s0 > NAME=enp1s0 > TYPE=Ethernet > ONBOOT=y > BOOTPROTO=none > IPADDR=100.100.100.100 > NETMASK=255.255.255.0 > GATEWAY=100.100.100.1 > EOF 

C'est tout, vous pouvez redémarrer VDS à partir de son lecteur local.

5. Conclusion


VDS avec CentOS 8 minimum installé:



Liens utiles:

www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt
access.redhat.com/documentation

Source: https://habr.com/ru/post/fr474392/


All Articles