jueves, 10 de diciembre de 2015

Configuración de nfs4 en centos 7

Para la configuración del servicio de NFSv4 se deben realizar varias configuraciones que detallare a continuación:

Modificación de los archivos:

/etc/exports
/home/ 192.168.56.100(rw,sync,no_root_squash)

/etc/sysctl.conf

En este archivo agregamos las siguientes lineas:

#TCP port rpc.lockd should listen on.
fs.nfs.nlm_tcpport=32803
#UDP port rpc.lockd should listen on.
fs.nfs.nlm_udpport=32769

/etc/sysconfig/nfs

En este archivo debemos agregar los puertos:

RPCMOUNTDOPTS="892"
STATDARG="662"

Habilitar nml_tcp/udpport

echo 32803 /proc/sys/fs/nfs/nlm_tcpport
echo 32803 /proc/sys/fs/nfs/nlm_udpport


Habilitar puertos en el firewall

# firewall-cmd --add-service=nfs --add-port=32803/tcp --add-port=32769/udp --add-port=892/udp --add-port=892/tcp --add-port=662/tcp --add-port=662/udp --permanent
# firewall-cmd --reload 

Habilitar SELinux 
# setsebool -P use_nfs_home_dirs on

Una vez realizados los cambios reiniciamos el servicio del nfs en el servidor.
systemctl restart nfs


Montaje desde el servidor cliente
mkdir /home/dir_nfs
mount 192.168.56.100:/home /home/dir_nfs



jueves, 26 de noviembre de 2015

Padre Nuestro de Linux

Un poco de humor linuxero


San Torvalds nuestro que estás en http://www.linux.org/
Santificado sea tu Kernel
venga a nosotros tu Free Software,
Tanto de Icaza como de Stallman
Hágase tu download así en el http como en el ftp,
Danos hoy nuestras actualizaciones cada día,
Perdona nuestros bugs
como también nosotros perdonamos a microsoft,
No nos dejes caer en mac-win
y líbranos de los pantallazos azules.
Amén.

Niveles de ejecución o RUN LEVELS

Los niveles de ejecución hacen referencia a los modos en los cuales el sistema operativo puede operar desde que ha sido encendido.

En las versiones de RHEL, CentOS, Fedora, y las demas distros los run levels son los siguientes:


Run Level Nombre Descripción
0 Apagado Procede apagar el sistema operativo
1 Monousuario En este modo solo se habilita el acceso al usuario root no se habilita el acceso de la red
2 Multiusuario En este modo se habilita el acceso a mas usuarios pero no se habilita la red
3 Multiusuario Se habilita la interfaz de red
4 Multiusuario con red Igual que el modo 3
5 Modo Grafico Permite iniciar el sistema operativo con una interfaz de red
6 Reinicio Procede a reiniciar el sistema operativo

Para consultar el run level de un sistema operativo lo haremos con el siguiente comando:

# runlevel

Para cambiar el run level de un sistema operativo lo haremos modificando el siguiente parámetro.

# vim /etc/inittab

Tendremos un contenido similar al siguiente:

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

Para modificar el run level se debe de cambiar el valor descrito en este archivo en la línea des-comentada.

Run levels con systemd
A partir de la versión de RHEL7 los sistemas operativos ya no son manejados por el super demonio initd por lo cual el manejo de los run levels es distinto, en estas nuevas versiones el super demonio es el systemd. Para manejar los run leves se lo hace con el systemctl

Para ver en que nivel esta corriendo el sistema operativo

# systemclt get-default
graphical.target

Como se puede ver ya no se muestra los valores que habíamos identificado anteriormente.

Para ver los niveles de servicio del sistema operativo se lo realiza con el siguiente comando:


[root@dark ~]# systemctl list-units --type=target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
cryptsetup.target loaded active active Encrypted Volumes
getty.target loaded active active Login Prompts
graphical.target loaded active active Graphical Interface
local-fs-pre.target loaded active active Local File Systems (Pre)
local-fs.target loaded active active Local File Systems
multi-user.target loaded active active Multi-User System
network-online.target loaded active active Network is Online
network.target loaded active active Network
nfs-client.target loaded active active NFS client services
nss-lookup.target loaded active active Host and Network Name Lookups
nss-user-lookup.target loaded active active User and Group Name Lookups
paths.target loaded active active Paths
remote-fs-pre.target loaded active active Remote File Systems (Pre)
remote-fs.target loaded active active Remote File Systems
rpcbind.target loaded active active RPC Port Mapper
slices.target loaded active active Slices
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
timers.target loaded active active Timers

LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.

22 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

Para cambiar el nivel de ejecución por defecto utilizaremos el parámetro set-default seguido del “UNIT” asociado

# systemctl set-default  multi-user.target


Formato de paquetes RPM

Muchas de las veces me han preguntado que significan los números que siguen del nombre de un paquete pues hoy quiero esclarecer esa inquietud con todos ustedes.Vamos a tomar como ejemplo un paquete que muchos administradores conocen y por lo menos alguna vez lo han visto el famoso webmin.

Para la descarga de el webmin deben dirigirse al sitio oficial y proceder a descargarlo
http://www.webmin.com/rpm.html

En el momento del desarrollo de este post la versión del webmin es webmin-1.770-1.x86_64.rpm

Vamos analizar que significan los parámetros que siguen después del nombre, estos parámetros son una convención así que siempre vamos a encontrar los mismos para todos los rpms de la siguiente forma:

nombre-version-publicación.arquitectura.rpm

  • Nombre: Es una descripción del paquete. El nombre sera la entrada base para el indice de paquetes en la base de datos de paquetes disponibles en el sistema operativo.
  • Versión: Es la versión del paquete con la que sera liberado.
  • Publicación: Es el numero de veces que esta versión del paquete ha sido empaquetada. Por lo general incrementa cuando se hacen correcciones o mejoras sobre la misma versión del paquete.
  • Arquitectura: Es una descripción del paquete que indica para que tipo de CPU fue empaquetado este rpm.
Como ejemplo tomamos el paquete: webmin-1.770-1.x86_64.rpm donde:
  • Nombre: Webmin
  • Versión: 1.770
  • Publicación: 1
  • Arquitectura: x86_64
Como información adicional para manejo de los rpms dejare una breve explicación.

Directorio de la base de los rpm /var/lib/rpm, los archivos que se encuentran en este directorio continen la información relacionada con los paquetes instalados en el Sistema Operativo.

Para saber si un paquete esta instalado:

# rpm -q webmin webmin-1.770-1x86_64.rpm

Para saber todos los rpms instalados en el sistema operativo:

# rpm -qa 

Para tener información del paquete RPM

# rpm -qi webmin

[root@dark ~]# rpm -qi webmin 
Name        : webmin
Version     : 1.770
Release     : 1
Architecture: noarch
Install Date: mié 25 nov 2015 13:05:37 ECT
Group       : System/Tools
Size        : 73745404
License     : Freeware
Signature   : DSA/SHA1, dom 04 oct 2015 00:50:08 ECT, Key ID d97a3ae911f63c51
Source RPM  : webmin-1.770-1.src.rpm
Build Date  : dom 04 oct 2015 00:49:38 ECT
Build Host  : fudu.home
Relocations : (not relocatable)
Vendor      : Jamie Cameron
Summary     : A web-based administration interface for Unix systems.
Description :
A web-based administration interface for Unix systems. Using Webmin you can
configure DNS, Samba, NFS, local/remote filesystems and more using your
web browser.

After installation, enter the URL http://localhost:10000/ into your
browser and login as root with your root password.

Para des-instalar un rpm 

# rpm -e webmin




miércoles, 11 de noviembre de 2015

Montar ISOs en el fstab.

Para realizar el montaje de una imagen de un DVD y que esta sea persistente al inicio del servidor se debe agregar el punto de montaje del mismo en el archivo /etc/fstab.


#
/dev/mapper/luks-5c96c7a3-4ffe-4132-9bd9-dd6d5d9669ac /                       ext4    defaults,x-systemd.device-timeout=0 1 1
UUID=a818315b-c29d-41fb-8358-589a1977f5b5 /boot                   ext4    defaults        1 2
/dev/mapper/fedora-swap swap                    swap    defaults        0 0
/home/dark/html/isos/rhel/rhel5/rhel-server-5.11-x86_64-dvd.iso /home/dark/html/imagenes/rhel5/ iso9660 loop 0 0
/home/dark/html/isos/rhel/rhel6/rhel-server-6.7-x86_64-dvd.iso /home/dark/html/imagenes/rhel6/ iso9660 loop 0 0
/home/dark/html/isos/rhel/rhel7/rhel-server-7.1-x86_64-dvd.iso /home/dark/html/imagenes/rhel7/ iso9660 loop 0 0
/home/dark/html/isos/centOS/CentOS-7-x86_64-DVD-1503-01.iso /home/dark/html/imagenes/centos7/ iso9660 loop 0 0
/home/dark/html/isos/rhel/rhev-h/rhev3.5/rhevh-7.1-20150603.0.el7ev.iso /home/dark/html/imagenes/rhevh7/ iso9660 loop 0 0

Como sabemos debemos tener disponibles en el disco local la imagen dvd del medio que debemos de montar para montar los dvds o los cds el formato es iso9660 no olvidar incluir esta linea en el punto de montaje definido.




Manejo de Procesos

Manejo de Procesos

Para el manejo de Procesos en GNU/Linux podemos utilizar las herramientas de top,htop,ps las cuales nos permiten visualizar el PID de un proceso el PPID de un proceso, etc.

Para comprender los procesos en GNU/Linux debemos comprender los siguientes conceptos:

Proceso padre

El proceso padre es el cual contiene bajo su poder procesos hijos.
El proceso padre en las versiones de RHEL5,6 es el init
El proceso padre en las versiones de RHEL7 y posteriores es el systemd

El init y el systemd se encargan de manejar los demás procesos en el sistema operativo.

Posteriormente agregaré un blog explicando las características de cada uno de ellos.

Proceso hijo

El proceso hijo va a depender de la supervivencia de un proceso padre.
Todos los procesos que se ejecuten por debajo del init y del systemd se consideran procesos hijos.

Como todo en GNU/Linux los procesos tiene características similares a los archivos o directorios de esa forma un proceso tiene:

  • ID del usuario dueno del proceso
  • ID del proceso
  • ID del proceso padre
  • variables
  • directorios de configuración
  • archivos de ejecución
Una vez claros los conceptos basicos de procesos podemos empezar a manejarlos.
Tomaremos como ejemplo el proceso mas elemental en GNU/Linux el interprete de comandos el "bash"

Para identificar el PID el PPID el ID del proceso vamos a usar el comando ps

Si es de nuestro interes el conocer el  PID/PGID/PPID/SID de un determinado proceso podemos ejecutar lo siguiente en un terminal.


Para listar los procesos 

ps -efj | less

ps -efj | grep process
ps -efj | grep pid
Si deseamos tener mas información de los procesos podemos intentar los siguientes comandos.
ps -ejf | egrep 'STIME | nombre_proceso'
ps -ejf | egrep 'STIME | pid_del_proceso'
Ejemplos:
ps -ejf | egrep 'STIME | bash'
ps -ejf | egrep 'STIME | 1234' Suponiendo que el proceso 1234 es equivalente a uno conocido.






lunes, 24 de agosto de 2015

Servidor DNS Principal y Secundario

El servicio de DNS (Domain Name System o Sistema de Nombres de Dominio) es un sistema de nomenclatura que nos permite acceder a varios sitios Web de una forma mas fácil y rápida.

Los Servidores DNS utilizan el protocolo UDP, en el puerto 53 para responder las consultas. Casi todas las consultas consisten de una sola solicitud UDP desde un Cliente DNS, seguida por una sola respuesta UDP del servidor.

El servicio de DNS nos permite la Configuración de un equipo principal y un secundario esta configuración nos permite tener un esquema de alta disponibilidad en la cual el servicio esta disponible 24 x 7

En este blog vamos a revisar la configuración del Servidor Principal y del Servidor Secundario, previo a esto tenemos que identificar cuales son los valores principales a configurar, el grupo de archivos a configurar y las opciones que debemos habilitar en cada uno de los servidores.

Grupo de Archivos a configurar.
  • Archivo de configuración /etc/named.conf
  • Archivo de zona directa /var/named/fw.zone
  • Archivo de zona inversa /var/named/100.168.192.zone
Este grupo de archivos son los que vamos a configurar para iniciar un servicio de DNS.

Para este ejemplo vamos a configurar un servidor DNS Principal y Secundario

Servidor DNS Principal : 192.168.100.1
Servidor DNS Secundario: 192.168.100.2

Las siguientes Redes se van a permitir hacer solicitudes al servidor DNS:

1.- 192.168.57.0
2.- 192.168.1.0
3.- 192.168.100.0

Configuración para el Servidor Principal.

Archivo de configuracion /etc/named.conf

options {
# Puerto y direcciones de IP donde el Servicio DNS escuchara las peticiones 
listen-on port 53 { 127.0.0.1; 192.168.100.1; };
# Configuracion para IPV6
# listen-on-v6 port 53 { ::1; };
# Directorio para alojar los archvios de zonas.
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
# Permitir las consultas de las n redes al servicio del DNS.
allow-query     { localhost; 192.168.57.0/24; 192.168.100.0/24; 192.168.1.0/24; };
# Esta opcion es importante cuando se tiene un servidor DNS secundario
allow-transfer  { 192.168.1.102; };

recursion no;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
        category lame-servers { null; };
};

zone "dominio.com" IN { 
type master; 
file "fw.dominio.zone";
allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
                type master;
                file "1.168.192.in-addr.arpa.zone";
                allow-update { none; };
};
zone "57.168.192.in-addr.arpa" IN {
                type master;
                file "1.168.192.in-addr.arpa.zone";
                allow-update { none; };
};
zone "100.168.192.in-addr.arpa" IN {
                type master;
                file "1.168.192.in-addr.arpa.zone";
                allow-update { none; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";

Ahora debemos definir las zonas descritas en el archivo de configuración.

Zona principal /var/named/fw.dominio.zone

$TTL 86400
@               IN      SOA     dark.dominio.com.       root.dominio.com. (

201501311300        ; número de serie se prefiere poner la fecha año mes dia hora 
                1D       ; tiempo de refresco
                1H       ; tiempo entre reintentos de consulta
                1W       ; tiempo tras el cual expira la zona



                3H )  
@       IN      NS      dark.domino.com.
dark             IN  A          192.168.1.105
instructor       IN  A          192.168.1.102
pruebas          IN  A          192.168.1.103

Zona principal /var/named/fw.dominio.zone

$TTL 86400
@               IN      SOA     dark.dominio.com.       root.dominio.com. (

201501311300        ; número de serie se prefiere poner la fecha año mes dia hora 
                1D       ; tiempo de refresco
                1H       ; tiempo entre reintentos de consulta
                1W       ; tiempo tras el cual expira la zona
                3H )       ; tiempo total de vida
    
@               IN      NS      dark.dominio.com.

21              IN      PTR     dark.dominio.com.
22              IN      PTR     instructor.dominio.com.
23              IN      PTR     pruebas.dominio.com.

Configuración para el Servidor Secundario.

Archivo de configuracion /etc/named.conf

options {
# Puerto y direcciones de IP donde el Servicio DNS secundario escuchara las peticiones 
listen-on port 53 { 127.0.0.1; 192.168.100.2; };
# Configuracion para IPV6
# listen-on-v6 port 53 { ::1; };
# Directorio para alojar los archvios de zonas.
directory  "/var/named";
dump-file  "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
# Permitir las consultas de las n redes al servicio del DNS.
allow-query     { localhost; 192.168.57.0/24; 192.168.100.0/24; 192.168.1.0/24; };

recursion no;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
        category lame-servers { null; };
};

zone "dominio.com" IN { 
type slave; 
file "slaves/fw.dominio.zone";
  masters { 192.168.100.110; };
};

zone "1.168.192.in-addr.arpa" IN {
                type slave;
             file "slaves/1.168.192.in-addr.arpa.zone";
             masters { 192.168.100.110; };
};
zone "57.168.192.in-addr.arpa" IN {
             type slave;
                file "slaves/1.168.192.in-addr.arpa.zone";
             masters { 192.168.100.110; };
};
zone "100.168.192.in-addr.arpa" IN {
             type slaves;
             file "slaves/1.168.192.in-addr.arpa.zone";


             masters { 192.168.100.110; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";

Seguramente se preguntaran los archivos de zonas como se los configura. Pues al realizar el reinicio del servicio del named estos archivos son sincronizados del servidor principal.


jueves, 6 de agosto de 2015

Instalación y configuración de Joomla

Para la Instalación y configuración de Joomla se debe tener instalado los servicios del apache y del mariadb.
Referirse al post anterior donde se muestra ese procedimiento.

Para la instalación de joomla se necesita validar que los siguientes paquetes estén instalados.

# yum install httpd mariadb-server mariadb php php-mysql php-curl php-gd php-pear php-memcache php-pspell php-snmp php-xmlrpc

Creación de usuario, permisios y base de datos para joomla

Entrar por linea de comandos al motor de la base de datos

# mysql -u root -p 

CREATE DATABASE JoomlaDB;

CREATE USER JoomlaDBUser@localhost IDENTIFIED BY 'password_here';

GRANT ALL ON JoomlaDB.* TO JoomlaDBUser@localhost;

Descarga de la versión mas reciente de joomla desde el sitio web oficial. http://www.joomlaspanish.org/

Al momento de la creación de este post la versión de joomla es:

# cd /tmp/ && http://joomlacode.org/gf/download/frsrelease/19948/161880/Joomla_3.3.6-Spanish-Pack_Completo.zip


Descomprimir el archivo zip descargado 

sudo unzip -q Joomla*.zip -d /var/www/html

Cambiar permisos del directorio descomprimido

sudo chown -R apache:apache /var/www/html

Cambiar el dueño de los archivos 

sudo chmod -R 755 /var/www/html

Reiniciar el servicio del apache 

sudo systemctl restart httpd.service

Ingresar a la dirección ip del equipo donde se instalo el joomla y seguir el procedimiento de instalación

Configurar base de datos Mariadb y phpMyAdmin

Para la configuración de la base de datos de Mariadb se deben realizar los siguientes pasos:

Instalación de mariadb

# yum install mariadb-server mariadb

Configuración del servicio al inicio del sistema operativo

# systemctl start mariadb

Configuración inicial para acceso a la base mariadb

# mysql_secure_installation

En esta sección se define el password para el usuario root y los permisos que se aplicaran.

Para ingresar por consola a el motor de mariadb

# mysql -u root -p 'Password_configurado'

Instalación de PhpMyAdmin

# yum install phpmyadmin

Una vez que esta instalado y las dependencias correspondientes se debe editar el archivo de configuración

Editar el archivo de configuración del /etc/httpd/conf.d/phpMyAdmin 

Se debe reemplazar las lineas 127.0.0.1 por la direccion IP que se tenga al momento en el servidor

. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .

Para que pueda ser visible se debe de reiniciar el servicio del apache.

# systemctl restart httpd.service

Para acceder al phpmyadmin para administrar la base de datos de mysql se debe abrir en un borwser y poner la direccion IP del equipo y el contexto de phpmyadmin

http://IP_del_equipo/phpMyAdmin



martes, 4 de agosto de 2015

Configurar pxboot

Cuando se necesita hacer la instalación masiva de equipos Linux  la mejor forma es por medio del plantillas de Instalación (Kickstart)
Las distribuciones que se podrían configurar RHEL, CentOS, Fedora, Ubuntu etc.

Para iniciar con la configuración de la Instalación desatendida por medio de boteo en la Red se debe de contar con dos servicios (dhcpd y tftp)

Configuración del dhcpd 

En el archivo de configuración /etc/dhcpd/dhcpd.conf debe tener las siguientes opciones para poder iniciar el booteo por red del instalador de la distribución.

# Red-Virtual-box
subnet 192.168.57.0 netmask 255.255.255.0 {
DHCPDARGS="vboxnet0";
         ddns-updates on;
         range 192.168.57.15 192.168.57.20;
         option subnet-mask 255.255.255.0;
         option broadcast-address 192.168.57.255;
         option domain-name "dark.com";
         option domain-search "dark.com";
         option domain-name-servers 192.168.57.1;
         option netbios-name-servers 192.168.57.1;
         option routers 192.168.57.1;
         default-lease-time 21600;
         max-lease-time 43200;
         #permite hacer el pxe server
         authoritative;
         allow unknown-clients;
         allow booting;
         allow bootp;
         ddns-update-style none;
         ignore client-updates;
         next-server 192.168.57.1;
         filename "pxelinux.0";
         }

yum install -y syslinux

Crear el directorio para el bootloader 

mkdir -p /var/lib/tftpboot/pxelinux.cfg 

Copiar los archivos para iniciar la configuracion del tftpboot

cp /usr/share/syslinux/{pxelinux.0,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/

Configuración del menu de instalación desatendida de las distribuciones Linux

Se debe crear el archivo "dafult" en el directorio /var/lib/tftpboot/pxelinux.cfg/ y su contenido debe ser :

#menu background
   menu background splashdona-02.png
   #encabezado.
   menu title Menu de instalacion Servidores LINUX
   ##bordes
   menu color border 0 #ffffffff #00000000
   menu color sel 7 #ffffffff #ff000000
   menu color title 0 #ffffffff #00000000
   menu color tabmsg 0 #ffffffff #00000000
   menu color unsel 0 #ffffffff #00000000
   menu color hotsel 0 #ff000000 #ffffffff
   menu color hotkey 7 #ffffffff #ff000000
   menu color scrollbar 0 #ffffffff #00000000
   default vesamenu.c32
   prompt 1
   timeout 50
   ###DECLARACION DE MENUS DE INSTALACION
   #Para iniciar desde el dico local
   label booteo desde el disco
     menu label Booteo desde el ^disco local
    menu default
    localboot 0xffff
  ############## Instalacion con el uso de Kickstart
  menu label ^Red Hat Enterprise Linux
   menu default
   kernel rhel7/vmlinuz
   append initrd=rhel7/initrd.img network ks=http://192.168.57.1/ks/rhel7.ks ip=dhcp

  ############## Instalacion con el uso del DVD abierto en un directorio
  menu label ^Red Hat Enterprise Linux
   menu default
   kernel rhel7/vmlinuz


   append initrd=rhel7/initrd.img network stage2=http://192.168.57.1/imagenes/rhel7/ ip=dhcp

Creando el directorio para los Kernel y los initrd

mkdir -p /var/lib/tftpboot/rhel{5,6,7}
mkdir -p /var/lib/tftpboot/debian{5,6,7}
mkdir -p /var/lib/tftpboot/ubuntu10.04
mkdir -p /var/lib/tftpboot/fedora22

En el directorio /var/lib/tftpboot se debe de almacenar las imágenes de 460*680 para que se puedan desplegar correctamente en el menú de instalación.

Copiar de los DVDS de instalacion el initrd.img y el vmlinuz deacuerdo a cada una de las distribuciones

Para la versiones de RHEL estan en el Directorio "isolinux" dentro del dvd de instalación.

Para iniciar los servicios

systemctl dhcpd start
systemctl tftpboot start