Implementación de FTP en un entorno Kickstart

Preparación inicial

1.1 Arquitectura completa: Kickstart + DHCP + VSFTP + TFTP + PXE

1.2 Componentes utilizados

IP del servidor Kickstart: 172.24.8.12DHCP: Asigna IPs, puerta de enlace y rutas de imagen;TFTP: Comparte archivos como pxelinux.0, initrd.img, vmlinux, isolinux.cfg, boot.msg, vesamenu.c32, splash.pngFTP: Distribuye el archivo ks.cfg y todos los contenidos del disco ISONota: El archivo ks.cfg y los archivos del disco también pueden ser compartidos mediante HTTP o FTP.### 1.3 Instalación de componentes

[root@server ~]# yum -y install dhcp* tftp* vsftpd
[root@server ~]# yum -y install xinetd		# Necesario para el servicio TFTP

1.4 Montaje del disco ISO del sistema

[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/

1.5 Deshabilitar firewall y SELinux

[root@server ~]# systemctl stop firewalld.service
[root@server ~]# systemctl disable firewalld.service
[root@server ~]# setenforce 0
[root@server ~]# vi /etc/selinux/config				# Desactivar SELinux permanentemente
SELINUX=disabled

Configuración del servidor

2.1 Configurar DHCP

[root@server ~]# vi /etc/dhcp/dhcpd.conf
option domain-name-servers 223.5.5.5,223.6.6.6; 		# DNS global
default-lease-time 600;						# Tiempo de concesión por defecto
max-lease-time 7200;						# Máximo tiempo de concesión
subnet 172.24.8.0 netmask 255.255.255.0 {			# Rango de red
range 172.24.8.13 172.24.8.50;					# Rango de direcciones disponibles
option routers 172.24.8.2;					# Puerta de enlace predeterminada
next-server 172.24.8.12; 					# IP del servidor TFTP
filename "pxelinux.0";}						# Archivo de arranque PXE
[root@server ~]# systemctl start dhcpd.service			# Iniciar servicio DHCP
[root@server ~]# systemctl enable dhcpd.service			# Activar inicio automático

2.2 Configurar TFTP

[root@localhost ~]# vi /etc/xinetd.d/tftp
service tftp
{
   ……
    server		= /usr/sbin/in.tftpd
    server_args	= -s /var/lib/tftpboot				# Directorio raíz del servicio TFTP
    disable		= no                              	# Habilitar TFTP
    ……
}
[root@server ~]# systemctl start xinetd.service			# Iniciar xinetd, que gestiona TFTP
[root@server ~]# systemctl enable xinetd.service		# Iniciar automáticamente al arrancar

2.3 Configuración de archivos TFTP

# Copiar archivos necesarios para PXE desde el directorio de syslinux
[root@server ~]# yum -y install syslinux			# Herramienta de arranque de Linux
[root@server ~]# find / -name pxelinux.0
/usr/share/syslinux/pxelinux.0					# Ubicación del archivo pxelinux.0
[root@server ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# Copiar pxelinux.0 al directorio TFTP para que los clientes puedan accederlo
[root@server ~]# cp /mnt/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
# Copiar archivos vmlinuz e initrd.img desde el disco ISO
[root@server ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@server ~]# cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
# Crear directorio pxelinux.cfg y copiar el archivo de configuración
[root@server ~]# cp /mnt/cdrom/isolinux/{boot.msg,splash.png} /var/lib/tftpboot/
# Copiar archivos auxiliares para la interfaz de arranque
# Si se usa una imagen de CentOS 6.8, splash.png puede tener formato JPG

2.4 Configuración de FTP

[root@server ~]# cp -r /mnt/cdrom/* /var/ftp/pub
[root@localhost ~]# systemctl start vsftpd.service
[root@localhost ~]# systemctl enable vsftpd.service

2.5 Modificación del archivo ks.cfg

Nota: Este archivo es el archivo de respuesta automática durante la instalación. Puede basarse en el archivo anaconda-ks.cfg o generarse gráficamente (ver nota 006).``` [root@server ~]# cp /root/anaconda-ks.cfg /var/ftp/ks.cfg [root@server ~]# chmod 755 /var/ftp/ks.cfg [root@server ~]# vi /var/ftp/ks.cfg auth --enableshadow --passalgo=sha512 url --url=ftp://172.24.8.12/pub graphical firstboot --enable keyboard --vckeymap=us --xlayouts='us' lang en_US.UTF-8 --addsupport=zh_CN.UTF-8 # Soporte de idiomas adicional reboot network --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto --activate network --hostname=localhost.localdomain rootpw --iscrypted $6$LgafQJ7F1rcyRCpk$ZteQKXvywjifMoPbAnhm7nESFx4fuROoxVYie4YvP04DGiUGpjEW2mA.m0TUQyq1ZoOUv.EF9vMWUaBjGyowW. services --disabled="chronyd" timezone Asia/Shanghai --isUtc --nontp bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda clearpart --none --initlabel part /boot --fstype="xfs" --ondisk=sda --size=300 part pv.195 --fstype="lvmpv" --ondisk=sda --size=30419 volgroup centos --pesize=4096 pv.195 logvol / --fstype="xfs" --size=1 --name=root --vgname=centos --grow logvol swap --fstype="swap" --size=2148 --name=swap --vgname=centos logvol /home --fstype="xfs" --size=10340 --name=home --vgname=centos %packages @^minimal @core kexec-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end


**Importante:****1: key --skip: Omite la entrada de clave en Red Hat; en CentOS puede omitirse;****2: reboot: Es obligatorio y debe estar en esta posición para reiniciar automáticamente después de la instalación;****3: clearpart --all --initlabel: Limpia todo el disco sin intervención manual.**```
[root@server ~]# systemctl restart xinetd				# Reiniciar servicio TFTP

2.6 Configuración de Kickstart

[root@server ~]# chmod 755 /var/lib/tftpboot/pxelinux.cfg/default
# Dar permisos de edición al archivo
[root@server ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default linux								# Opción de inicio por defecto
timeout 1								# Tiempo de espera
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  menu default
 append initrd=initrd.img inst.ks=ftp://172.24.8.12/ks.cfg quiet
#timeout 1: Espera de 1 segundo antes de iniciar
#172.24.8.12: Dirección del servidor Kickstart
#append: Parámetros de arranque, incluyendo ubicación del archivo ks.cfg
#Formatos para diferentes servidores:
#HTTP: ks=http://server_ip:port/path/kickstart_file
#HTTPS: ks=https://server_ip:port/path/kickstart_file
#FTP: ks=ftp://serverip:port/path/kickstart_file
#NFS: ks=nfs:server_ip:/path/kickstart_file

Prueba en máquina cliente

Instalación automática al encender la máquina cliente# Nota: La máquina cliente debe estar en la misma red o poder obtener IP y archivos del servidor.

Etiquetas: Kickstart DHCP TFTP VSFTP PXE

Publicado el 7-31 19:03