Hilarious (?)

Como practicar para exámenes de Red Hat (EX200 y EX300)

Como alguien que ha pasado (y fallado) distintos exámenes de Red Hat, estoy en condiciones de revelar en exclusiva (?) que es lo que hay que tener para lograr la ansiada certificación: mucho culo mucha práctica. Realmente mucha práctica, y este post se trata de facilitar la obtención de esa práctica.

Primero que nada, debido al acuerdo de confidencialidad que aceptan cuando rinden cualquier examen de Red Hat, no pueden brindar detalles sobre los contenidos del mismo. Lo que si se puede hacer es hablar sobre los objetivos de los exámenes, algo que en los casos del EX200 y EX300 (los más populares, ya que brindan las certificaciónes RHCSA y RHCE respectivamente) están disponibles acá:

Antes de comenzar a practicar, resulta fundamental averiguar la versión de sistema operativo en que está basado el examen en que están anotados. De poco sirve practicar network teaming o firewalld (features de RHEL7) si cuando llega el examen te enteras que está basado en RHEL6. El ambiente de práctica que voy a describir a continuación está enteramente basado en CentOS7, así que es compatible con un examen de RHEL7.

Para poder ejecutar todos los objetivos del examen vamos crear la siguiente infraestructura virtual:

network

 

O sea que vamos a:

  • Crear una red interna para poder conectar el ambiente de práctica, sin interferir con la red pública del host, ni tener acceso directo a internet.
  • Crear un servidor de infraestructura de red, que automaticamente proveerá servicios de:
    • DHCP: Prove direcciones IP desde 10.11.1.100 a 10.11.1.109 para los “labos”.
    • DNS: Provee resolución de nombres directa y reversa para la zona example.com (los equipos mencionados en el punto anterior).
    • Kerberos: Un servidor kerberos listo para ser utilizado en autenticación de usuarios y recursos de red, como NFS.
    • LDAP: Servidor que provee información de usuarios y grupos pre-cargados en un DN dc=example,dc=com.
    • Yum: El iso que uso para instalar el server, queda montado y disponible como repositorio yum para instalar el sistema operativo y paquetes adicionales en los labos.
    • PXE: Y lo mejor de todo, al instalar server, éste queda configurado como servidor PXE, así que todos los labos pueden instalarse y reinstalarse en minutos con un kickstart mínimo.

Una aclaración antes de seguir. Saber configurar un server Kerberos, DHCP o LDAP es muy valorable, pero créanme que si no es un objetivo del examen que van a dar (y no lo es en EX200 y EX300), les va a convenir no concentrarse en esa tarea por ahora, es por eso que la instalación del server se encarga de todo a través del kickstart, para que no pierdan tiempo configurando lo mínimo e indispensable. Por otra parte, este proceso permite reinstalar el ambiente completo cuantas veces quieran, dejándolo siempre en el punto de partida.

Ahora sí, suponiendo que arrancan casi de cero, y solo tienen un servidor físico corriendo RHEL/CentOS 6 o 7, éste es el procedimiento completo para usar este ambiente de práctica:

  1. Instalar la plataforma de virtualización:
    virthost[/opt/centos7]# yum group install "Virtualization Host"
  2. Iniciar libvirtd:
    virthost[/opt/centos7]# systemctl enable libvirtd
    ln -s '/usr/lib/systemd/system/libvirtd.service' '/etc/systemd/system/multi-user.target.wants/libvirtd.service'
    virthost[/opt/centos7]# systemctl enable libvirt-guests
    ln -s '/usr/lib/systemd/system/libvirt-guests.service' '/etc/systemd/system/multi-user.target.wants/libvirt-guests.service'
    
    virthost[/opt/centos7]# systemctl start libvirtd
    virthost[/opt/centos7]#

    Notarán que libvirtd inició, por defecto, un bridge llamado virbr0:

    virthost[/opt/centos7]# ip addr show virbr0
     27: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
     link/ether 52:54:00:12:a4:47 brd ff:ff:ff:ff:ff:ff
     inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
     valid_lft forever preferred_lft forever

    Esa red sirve para conectar las maquinas virtuales con la red pública del equipo, por lo que no queremos usarla en nuestros servidores “labo”.

  3. Descargar la imágen iso de CentOS7 de acá, y guardarla en /opt/centos7
  4. Descargar el archivo tar que contiene el kickstart de instalación, la definición de los equipos virtuales y la red interna de acá. Luego de descomprimirlo en /opt/centos7, deberían tener estos archivos:
    virthost[/opt/centos7]# wget -q -O Example.tgz http://bit.ly/1GunC4m
    virthost[/opt/centos7]# tar -xzf Example.tgz
    virthost[/opt/centos7]# ll
    total 4209696 
    -rw-r--r--. 1 root root 4310695936 Apr 20 16:01 CentOS-7-x86_64-DVD-1503-01.iso 
    -rw-r--r--. 1 root root 215 Apr 20 16:00 internal.xml 
    -rw-r--r--. 1 root root 2355 Apr 20 18:59 labo100.xml 
    -rw-r--r--. 1 root root 16360 Apr 23 15:57 server.ks 
    -rw-r--r--. 1 root root 2941 Apr 20 16:13 server.xml 
    virthost[/opt/centos7]#
  5. Crear la red interna, a la que server.example.com va a dar los servicios básicos:
    virthost[/opt/centos7]# cat ./internal.xml
    <network>
       <name>internal</name>
       <bridge name='virbr1' stp='on' delay='0' />
       <mac address='52:54:00:05:4e:d3'/>
       <domain name='internal'/>
       <ip address='10.11.1.1' netmask='255.255.255.0'></ip>
    </network>
    virthost[/opt/centos7]# virsh net-define ./internal.xml
    Network internal defined from ./internal.xml
    virthost[/opt/centos7]# virsh net-autostart internal
    Network internal marked as autostarted
    virthost[/opt/centos7]# virsh net-start internal
    Network internal started
    virthost[/opt/centos7]# ip addr show virbr1
    72: virbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
     link/ether 52:54:00:05:4e:d3 brd ff:ff:ff:ff:ff:ff
     inet 10.11.1.1/24 brd 10.11.1.255 scope global virbr1
     valid_lft forever preferred_lft forever
    
  6. Al igual que con la red, defino el server, y al menos un labo, con archivos xml previamente creados. Luego para crear otros labo pueden clonar el primero desde virt-manager.
    virthost[/opt/centos7]# virsh define ./server.xml
    Domain server defined from ./server.xml
    virthost[/opt/centos7]# virsh define ./labo100.xml
    Domain labo100 defined from ./labo100.xml
  7. También debo crear los archivos que van a ser el disco rígido de cada máquina:
    virthost[/opt/centos7]# qemu-img create -f raw /var/lib/libvirt/images/server.img 10G
    Formatting '/var/lib/libvirt/images/server.img', fmt=raw size=10737418240
    virthost[/opt/centos7]# qemu-img create -f raw /var/lib/libvirt/images/labo100.img 10G
    Formatting '/var/lib/libvirt/images/labo100.img', fmt=raw size=10737418240
  8. Voy a exportar el directorio /opt/centos7, donde estoy trabajando, de manera que Anaconda pueda usar el kickstart que tengo preparado:
    virthost[/opt/centos7]# cat /etc/exports
    /opt/centos7 *(ro)
    virthost[/opt/centos7]#
    virthost[/opt/centos7]# systemctl start nfs
    virthost[/opt/centos7]# exportfs -a
  9. Finalmente, en virt-manager, enciendo el server, y al iniciar desde el iso, voy a modificar la entrada que dice “Install CentOS7” de la siguiente manera, para que apunte al kickstart:
    install-nfs-kickstartLuego le dan enter y esperan a que el kickstart haga lo suyo. Cuando vean en la consola el prompt, ya pueden instalar un labo.
  10. Para instalar el labo definido anteriormente, simplemente le dan virsh start, o lo encienden desde virt-manager, y lo dejan iniciar por red, mostrando este menú:pxe-menu

Eso es todo! Ya pueden practicar todos los objetivos de los exámenes. Recuerden que para reinstalar un labo, solo tienen que volver a bootear por PXE. Para reinstalar el server, vuelven al paso 9 de este proceso. Así de simple. Por si las necesitan, todas las claves están en texto plano en el kickstart del server.

Y para finalizar, algunas recomendaciones sobre tareas que deberían probar en cada labo:

  • Crear un archivo de configuración de repositorio en Yum, apuntando a http://server.example.com/pub/centos7/repo/
  • Agregar una nueva placa de red y configurar teaming/bonding
  • Configurar autenticación de usuarios usando LDAP y Kerberos
  • Restringir el acceso al labo mediante firewalld (o iptables)
  • Compartir directorios en server mediante NFS y/o Samba y configurarlos en labo usando Kerberos
  • Y todo lo que diga la página de objetivos de cada exámen!

Éxito en los exámenes, y si tienen algún comentario o duda, no duden en contactarme.

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

17 thoughts on “Como practicar para exámenes de Red Hat (EX200 y EX300)”