Instalación e Configuración dun Servidor PXE: Diferenzas entre revisións
| Liña 425: | Liña 425: | ||
</source>  | 
  </source>  | 
||
<center>  | 
  |||
<TABLE ALIGN="CENTER" BORDER CELLSPACING="0" CELLPADDING="0">  | 
  <TABLE ALIGN="CENTER" BORDER CELLSPACING="0" CELLPADDING="0">  | 
||
 <TR ALIGN="CENTER">  | 
   <TR ALIGN="CENTER">  | 
||
| Liña 439: | Liña 439: | ||
  </TD>  | 
    </TD>  | 
||
</TABLE>  | 
  </TABLE>  | 
||
</center>  | 
  |||
===Melloras visuais no arquivo de configuración===  | 
|||
Introducimos as seguintes modificacións:  | 
|||
*Cambiamos a imaxe de fondo  | 
|||
<source lang='bash'>  | 
|||
MENU BACKGROUND libs/splash.png.1  | 
|||
</source>  | 
|||
**Obtivémola de [[https://www.plop.at/images/ploplinux/splash.png aquí]] , pero vale calquera imaxe 640x480   | 
|||
*Teclas aceleradoras:  | 
|||
<source lang='bash'>  | 
|||
 MENU COLOR HOTKEY      1;36;44    #fc0000 #00000000   | 
|||
 MENU LABEL ^Debian Stretch 64  | 
|||
</source>  | 
|||
**Definimos a cor vermella  | 
|||
**O premer D xa se selecciona esta opción  | 
|||
*Mensaxe de axuda o seleccionar a opción  | 
|||
<source lang='bash'>  | 
|||
TEXT HELP  | 
|||
         Instala Debian Stretch 64 bits.  | 
|||
ENDTEXT  | 
|||
</source>  | 
|||
Revisión como estaba o 16 de marzo de 2016 ás 11:17
Introducción
Un Servidor PXE (Preboot eXecution Environment), permite a un equipo cliente arrancar un SO a travé da rede. Isto pode ser útil nos seguintes casos:
- O equipo cliente non ten unidade de CD e queremos arrancar dende un CD-Live.
 - O equipo cliente non ten disco duro e queremos que colla o SO dende a rede
 - Ter diferentes utilidades, como memtest ou antivirus, preparadas para ser executadas sobre un equipo independentemente do que teña instalado.
 
Funcionamento
- No equipo cliente escollemos arrancar por PXE
 - O Cliente PXE busca un servidor DHCP na rede
 - Unha vez localizado, o servidor asignalle á máquina cliente unha IP, netmask, gw
 - Mediante o protocolo TFTP o servidor envía á máquina cliente o SO
 - O cliente co que lle manda o servidor é capaz de arrancar un minisistema na RAM.
 
Para instalar un Servidor PXE precisamos instalar:
- Servidor DHCP
 - Servidor TFTP
 
Proceso de arranque do Servidor PXE en Detalle
- O cliente envía por broadcast unha menaxe DHCPDISCOVER
 - O Servidor DHCP responde coa IP, next-server, filename
 - O Cliente solicita unha petición TFTP a next-server solicitando filename.
 - O Servidor TFTP responde e envía o filename o cliente.
 
Configuracións de Rede Iniciais
- Empregaremos Virtualbox para simular ambos equipos.
 - O Servidor terá instalado un sistema Debian Jessie actualizado
 - O Servidor terá dúas tarxetas de rede, A configuración da rede do servidor será
 
| Conexión de Área Local 1 | Conexión de Área Local 2 | 
  | 
  
  | 
- A rede interna intnet, non proporciona DHCP.
 - Se arrancamos unha 2º MV conectada a intnet co SystemRescueCd e lle asignamos unha ip compatible
 
ifconfig enp0s3 172.20.4.1 netmask 255.255.0.0
- Veremos que ten rede co servidor
 
ping 172.20.4.100
Acceso dende o equipo real á MV con NAT
A 1º tarxeta de rede da MV está configurada por NAT, polo que non podemos comunicar o equipo real coa MV.
Para facelo podemos empregar redireccionamento de portos (port forwarding). Redireccionaremos o porto TCP/2222 da máquina real o porto TCP/22 (SSH) da máquina virtual.
| 
 Como deixamos host IP baleiro, calquera máquina que se conecte o porto 2222 da nosa máquina comunicarase coa MV  | 
Na máquina real comprobamos que temos o porto aberto
root@debianRojas:/home/rojas# netstat -nap | grep 2222 
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      9967/VirtualBox
Para que a configuración sexa efectiva é preciso apagar a máquina e o virtualbox. Logo reiniciamos a máquina.
Na nosa máquina temos que instalar un servidor ssh
apt-get install ssh
E permitir o acceso ssh do root
/etc/ssh/sshd_config 
PermitRootLogin yes
Conectámonos dende o equipo real
ssh -p 2222 root@127.0.0.1
Instalación do Servidor PXE
Instalamos un servidor dhcp
- Instalamos o paquete necesario
 
apt-get install isc-dhcp-server
- Modificamos os arquivos de configuración correspondentes
 
/etc/default/isc-dhcp-server
INTERFACES=”eth1”
/etc/dhcp/dhcpd.conf
# Ocomentamos para que non espere un timeout
#option domain-name "example.org"; 
#option domain-name-servers ns1.example.org, ns2.example.org;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;    # O descomentamos
# Definimos un rango de direccións a asignar entre 10 e 20.
subnet 172.20.0.0 netmask 255.255.0.0 {
        range 172.20.2.10 172.20.2.20;
	 # Servidor PXE
	 next-server 172.20.4.100;
	 filename “pxelinux.0”;
        }
- Iniciamos o Servicio DHCP
 
	
	/etc/init.d/isc-dhcp-server restart
- Arrancamos o cliente co SRCD e colle a IP 172.20.2.10
 
Instalando o servidor tftp
	
apt-get install tfptd-hpa
- O seu arquivo de configuración é
 
	
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
- Iniciamos o servidor
 
	
/etc/init.d/tftpd-hpa start
- Os directorio onde serviremos as imaxes de arranque é /srv/tfp
 - Descargamos a imaxe de instalación de Debian strecth 64 bits para arrancar pola rede
 
	
cd /srv/tftp
wget http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar xzf netboot.tar.gz
- Aparecen as seguines carpetas e arquivos
 
	
debian-installer  ldlinux.c32  pxelinux.0  pxelinux.cfg  version.info
- O seu significado é o seguinte:
- debian-installer: Contén o núcleo do sistema
 - pxelinux.0: É o cargador de arranque a través da rede, forma parte do proxecto syslinux
 - pxelinux.cfg/default: É o arquivo de configuración de pxelinux, onde lle indica que kernel arrancar. Posteriormente empregaremos este arquivo para crear menús.
 
 
Comprobamos
- Iniciamos a máquina cliente coa súa tarxeta configurada na rede interna e arrancamos
 
| 
 Como deixamos host IP baleiro, calquera máquina que se conecte o porto 2222 da nosa máquina comunicarase coa MV  | 
- Comeza o proceso de instalación de Debian correctamente
 - Problema: Non temos acceso a Internet.
 - Solución: Temos que facer que o servidor PXE enrute a eth1 a eth0 para que así a rede interna teña acceso a Internet.
 
Configurar Enrutamento no Servidor PXE
- En /etc/sysctl.conf descomentamos
 
net.ipv4.ip_forward=1
- Creamos un script coa nosa configuración personalizada
 
/etc/iptables-script.sh
#Configuración para enmascarar os paquetes recibidos da rede interna
iptables -t nat -A POSTROUTING -s 172.20.0.0/16 -o eth0 -j MASQUERADE
- Dámoslle permiso de execución
 
chmod +x /etc/iptables-script.sh
- Facemos que se execute o inicio
 
vi /etc/rc.local
#Cargamos a configuración de iptables
/etc/iptables-script.sh
- Modificamos a configuración do servidor DHCP
 
option domain-name-servers 8.8.8.8; # DNS
subnet 172.20.0.0 netmask 255.255.0.0 {
  range 172.20.2.10 172.20.2.20;
  option routers 172.20.4.100; #Porta de enlace (Ten que ser o servidor PXE)
 …..
}
Creando unha configuración Mulitidistro
Agora xa temos un servidor PXE funcional que nos permite arrancar por rede a instalación de Debian, pero queremos que nos apareza un menú que nos permitar arrancar a nosa máquina con varias imaxes a través da rede.
Reconfiguracion do instalador de Debian
Para elo imos a deixar o noso /srv/tftp como sigue:
- Creamos unha carpeta boot onde teremos unha carpeta por cada sistema arrancable.
 - Creamos dentro de boot a carpeta strecht64 (A nosa distribución debian). Movemos todo o contido da instalación de Debian a /srv/tftp/boot/stretch64.
 - Para poder arrancar pola rede, necesitamos algúns arquivos de inicio, que forman parte do paqute syslinux
- Poderíamos descargalos de aquí e descomprimir os que necesitásemos
 - En vez diso, imos a reempregar os que xa veñen coa instalación por rede do Debian que temos descargado.
 
 - Creamos unha carpeta para os arquivos necesarios para o arranque
 
mkdir /srv/tftp/libs
- Copiamos os seguintes arquivos
 
cp strecht64/debian-installer/amd64/pxelinux.0 /srv/tftp
cd strecht64/debian-installer/amd64/boot-screens/
cp libcom32.c32 /srv/tftp/libs
cp libutil.c32 /srv/tftp/libs
cp vesamenu.c32 /srv/tftp/libs
cp splash.png /srv/tftp/libs
cp ldlinux.c32 /srv/tftp
- Creamos un arquivo baleiro para o menú
 
touch pxelinux.cfg/default
- A estructura de arquivos quedaría como sigue
 
usuario@debian:/srv/tftp# tree 
.
├── boot
│   └── stretch64
│      └── debian-installer
│          └── amd64
│               │   ├── boot-screens
│               └── grub
├── libs
│   ├── libcom32.c32
│   ├── libutil.c32
│   ├── vesamenu.c32
│   └── splash.png
├── ldlinux.c32
├── pxelinux.0
└── pxelinux.cfg
    └── default
Editamos o arquivo pxelinux.cfg/default e creamos un menú para o noso debian
#Ruta onde se almacenan as librerias necesarias para o arranque
path ../libs
#Menu de arranque grafico
default libs/vesamenu.c32
prompt 0
timeout 300
#imaxe de fondo 640x480 pixels
MENU BACKGROUND libs/splash.png
MENU TITLE Benvido a PXE
LABEL Debian Stretch 64
    MENU LABEL Debian Stretch 64
      KERNEL boot/stretch64/debian-installer/amd64/linux
      APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz
Pasándolle parámetros o instalador Debian
De este xeito xa non teremos que escoller o idioma de instalación
LABEL Debian Stretch 64
        MENU LABEL Debian Stretch 64
        KERNEL boot/stretch64/debian-installer/amd64/linux
        APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz locale=gl_ES.UTF-8 keymap=es language=es country=ES supported-locales=es_ES.UTF-8
Engadindo o System Rescue CD
Queremos ter un menú multinivel coas seguintes opcións
- Instaladores
- Debian Stretch 64
 
 - Live-CD
- System Rescue CD
 
 
O SRCD non é tan sinxelo de configurar como a imaxe netboot de Debian. Nese caso, todo o que necesitaba para arrancar era o núcleo, pero o SRCD necesita durante o seu arranque acceder o arquivo sysrcd.dat. Por iso será necesario instalar un servidor NFS para compartilo na rede.
Instalación dun servidor NFS
- Instalamos o paquete necesario
 
apt-get install nfs-kernel-server
- No arquivo de configuración compartimos unha carpeta como só lectura
 
/etc/exports
/srv/nfs/srcd   172.20.0.0/255.255.0.0(ro,sync)
- Reiniciamos o servicio
 
/etc/init.d/ssh restart
Preparación dos arquivos do SRCD
- Primeiro creamos a carpeta onde se almacenará o arranque do SRCD.
 
mkdir /srv/tftp/boot/srcd
- Descargamos unha iso do SRCD e montámola na máquina virtual.
 
mount /dev/sr0 /media/cdrom
- Copiamos os arquivos necesarios para o arranque á carpeta /srv/tftp/boot/srcd
 
cp /media/cdrom/isolinux/initram.igz /srv/tftp/boot/srcd
cp /media/cdrom/isolinux/rescue* /srv/tftp/boot/srcd
- Copiamos o resto de arquivos necesarios a /srv/nfs/srcd
 
cp /media/cdrom/sysrcd.dat /srv/nfs/srcd
cp /media/cdrom/sysrcd.md5 /srv/nfs/srcd
Modificamos o arquivo de configuración
Modificamos o menú de arranque pxelinux.cfg/default
######################
# Opcións Xerais
######################
#Ruta onde se almacenan as librerias necesarias para o arranque
path ../libs
#Menu de arranque grafico
default libs/vesamenu.c32 
prompt 0
timeout 300
#imaxe de fondo 640x480 pixels
MENU BACKGROUND libs/splash.png.1
MENU COLOR HOTKEY      1;36;44    #fc0000 #00000000 
MENU TITLE Benvido a PXE
#####################
# Definición do menú
#####################
MENU BEGIN INSTALADORES
 MENU TITLE INSTALADORES
  LABEL Debian Stretch 64
 	MENU LABEL ^Debian Stretch 64
        KERNEL boot/stretch64/debian-installer/amd64/linux
	APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz locale=gl_ES.UTF-8 keymap=es language=es country=ES supported-locales=es_ES.UTF-8
   	TEXT HELP
  		Instala Debian Stretch 64 bits.
   	ENDTEXT
   LABEL volver
 	MENU LABEL ^Volver
 	MENU EXIT
   
        TEXT HELP
  		Volta o menu principal.
   	ENDTEXT
MENU END
   
MENU BEGIN LIVE-CD
 MENU TITLE LIVE-CD
    LABEL SystemRescueCD
	 MENU LABEL ^System Rescue Cd 64
	 KERNEL boot/srcd/rescue64 setkmap=es
	 APPEND initrd=boot/srcd/initram.igz netboot=nfs://172.20.4.100:/srv/nfs/srcd
         TEXT HELP
		Inicia o System Rescue CD con idioma castelan.
         ENDTEXT
    LABEL volver
 	MENU LABEL ^Volver
 	MENU EXIT
        TEXT HELP
  		Volta o menu principal.
   	ENDTEXT
   MENU END
| 
 Menú Principal  | 
  
 Menú Live-CD  | 
Melloras visuais no arquivo de configuración
Introducimos as seguintes modificacións:
- Cambiamos a imaxe de fondo
 
MENU BACKGROUND libs/splash.png.1
- Obtivémola de [aquí] , pero vale calquera imaxe 640x480
 
- Teclas aceleradoras:
 
 MENU COLOR HOTKEY      1;36;44    #fc0000 #00000000 
 MENU LABEL ^Debian Stretch 64
- Definimos a cor vermella
 - O premer D xa se selecciona esta opción
 
- Mensaxe de axuda o seleccionar a opción
 
TEXT HELP
         Instala Debian Stretch 64 bits.
ENDTEXT




