Instale CentOS 8 en VDS 256

CentOS 8 finalmente vio la luz del día, nos guste o no, en un futuro cercano los seguidores del sistema operativo corporativo de la comunidad tendrán que hacerse amigos de él.

Después de haber decidido probar los ocho en la "naturaleza", descubrí que mis proveedores de alojamiento no tenían prisa por crear una imagen de servidor virtual en CentOS 8. Y la idea con un "ISO nativo" y "consola VNC" no inspiraba confianza debido a las características modestas de VDS y la gula. anaconda moderna (anaconda).

Quedaba por copiar la imagen desplegada del nuevo CentOS directamente en el disco duro VDS, descargando el servidor "a través de la red". El método no brilla con novedad, sin embargo, por ejemplo, no pude encontrar instrucciones detalladas y completas para su implementación. Por lo tanto, quería llenar rápidamente este vacío y hablar sobre la instalación de CentOS 8 en tal VDS:
KVM, 256 MB de RAM, HDD de 2 GB, sin consola e ISO



Por cierto, de esta manera puede instalar o reinstalar no solo CentOS y no necesariamente en un entorno virtual.

0. Características de VDS


Como se dijo al comienzo del artículo:


Por cierto, los proveedores de alojamiento ahora en sus tarifas más presupuestarias ofrecen VDS con características más potentes. Deje que CentOS 7 sea el sistema operativo preinstalado. Creo que ahora es posible para casi todos los proveedores de virtualización.

1. Tres archivos atesorados


En primer lugar, necesitará un "donante" : un servidor adicional con CentOS 8. instalado. Aunque esto no es importante, pero si las características técnicas del donante se corresponderán con las de VDS, habrá muchos menos problemas con la configuración.

La cantidad de memoria y el tamaño del disco donante no son importantes, lo principal es instalar un sistema operativo en él. Aconsejo categóricamente marcar el disco del donante con una partición raíz.

Dado que en este caso hay KVM VDS, el donante se puede hornear en casa, en cualquier distribución de Linux con libvirt . Prefiero la configuración inicial mínima adicional, que en el contexto de la tarea será de gran ayuda. En este artículo, hablé sobre la forma estándar de hacer una pequeña imagen de CentOS. Debajo del spoiler, el archivo kickstart correspondiente y cómo usarlo:

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 

Puede colocar este archivo en cualquier recurso web disponible y especificarlo al comienzo de la instalación:

imagen

Estoy prestando atención a la contraseña de root: recomiendo encarecidamente que dificulte el archivado para no tener problemas con los hooligans que escanean Internet en las próximas etapas en busca de entretenimiento.

Después de hacer el donante, debe llevar todos los archivos de su disco a un archivo, digamos centos8.tgz . Puede hacerlo de diferentes maneras: conecte el disco del donante a otra máquina virtual, móntelo en el hipervisor o empaquete todos sus archivos en el donante, excluyendo los directorios virtuales (/ dev, / proc, etc.)

Además, se necesitarán dos archivos más del donante: el kernel ( vmlinuz ) y el ramdrive modificado ( initrd ). El núcleo puede tomarse en el directorio / boot del donante (vmlinuz-something-there), y la unidad de disco debe hacerse especial al incluir la capacidad de arrancar a través de la red desde el servidor NFS. Para hacer esto, en un sistema operativo de donante que funcione, debe hacer lo siguiente:

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

y recoja el initrd necesario de la raíz del disco.

Como resultado, se necesitarán tres archivos en el futuro:

  • centos8.tgz - archivo con todos los archivos de CentOS 8 instalado
  • initrd : un sistema de archivos temporal con soporte NFS
  • vmlinuz - núcleo del sistema operativo

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

El donante ya no es necesario, aunque puede ser útil (ver más abajo)

2. servidor NFS


Para descargar VDS a través de una red sin usar un disco local, necesitará un servidor con un recurso NFS. Tal servidor puede ser cualquier cosa, lo principal es su disponibilidad de red desde la dirección IP de VDS. Puede probar el equipo doméstico (con un posible "reenvío de puertos en el enrutador") o cualquier otro VDS, tomado, por ejemplo, para una prueba. Finalmente, use el "donante" si puede administrarlo con NFS (es broma). Después de instalar CentOS 8, el servidor NFS, como el donante, ya no será necesario.

El recurso NFS exportado debe contener el archivo centos8.tgz y su contenido desempaquetado en su raíz. Aquí hay una guía de producción rápida que usa CentOS 7 como ejemplo:

 # 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 es, por supuesto, la dirección IP de VDS con el futuro CentOS 8.

3. Descargue VDS "a través de la red" (NFSroot)


En primer lugar, debe copiar los archivos ramdrive ( initrd ) y kernel ( vmlinuz ) obtenidos en el primer paso a la raíz VDS. Luego, configure 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 - La dirección IP del servidor NFS.

/ etc / default / grub

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

Y reinicie VDS:

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

Si todo va bien, VDS cargará el donante CentOS 8 y la unidad local se desmontará por completo:



4. "Instalación" CentOS 8


Ahora puede volver a formatear y formatear el disco VDS local, copiar archivos del sistema operativo, instalar el gestor de arranque y configurar la red. Una breve descripción de las acciones necesarias:

 # 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 

En VDS pequeño, prefiero esta configuración de disco:

 # 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 

Formatear, eliminar una reserva y establecer el valor de UUID en "donante":

 # 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 

Copiar archivos del sistema operativo e instalar el gestor de arranque:

 # 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. 

Dado que Network Manager comprende el legado , puede crear un archivo ifcfg apropiado para configurar la red. El nombre de la interfaz se puede encontrar:

 # 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 

Eso es todo, puede reiniciar VDS desde su disco local.

5. Conclusión


VDS con CentOS 8 mínimo instalado:



Enlaces utiles:

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

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


All Articles