24.2. Instalación automática de imagen de disco

La creación de imágenes de discos y la instalación dentro de ellas puede ser automática, mediante livemedia-creator. Para realizar una instalación, usted necesitará un sistema Red Hat Enterprise Linux instalado y un archivo Kickstart. Las imágenes de disco no necesitan ser creadas de forma manual. Para obtener más información sobre cómo crear y usar archivos Kickstart, consulte el Capítulo 23, Instalaciones Kickstart.

24.2.1. Descripción general de livemedia-creator

La creación de imágenes personalizadas con livemedia-creator es por lo general un proceso que consta de dos etapas. En la primera etapa, se crea un archivo de imagen de disco temporal y Anaconda, el programa de instalación de Red Hat Enterprise Linux, instala un sistema en esta imagen basado en los parámetros que proporciona un archivo Kickstart. Después, en la segunda etapa, livemedia-creator utiliza este sistema temporal para crear la imagen final que se puede arrancar.
Este proceso se puede modificar especificando más opciones. Por ejemplo, es posible realizar solo la primera etapa y el resultado será un archivo de imagen de disco, o bien omitir la primera etapa y utilizar un disco o imagen de sistema de archivos existente para crear la imagen ISO final que se pueda arrancar.

Importante

La creación de imágenes personalizadas con livemedia-creator actualmente solo se admite en sistemas AMD64 e Intel 64 (x86_64).
Además, el proceso de creación solo se admite con Red Hat Enterprise Linux 7. Es posible que también se puedan crear imágenes personalizadas de versiones anteriores, pero no tienen soporte de Red Hat.
El uso de muestra de livemedia-creator se describe en Sección 24.2.4, “Creación de imágenes personalizadas”. En un sistema que tenga el paquete lorax instalado, se puede mostrar una lista de todas las opciones disponibles con el comando livemedia-creator --help. Junto con el paquetelorax, también se instala documentación adicional: la página de manual livemedia-creator(1) y el archivo README.livemedia-creator ubicados en el directorio /usr/share/doc/lorax-version/, donde version es la versión del paquete lorax que ha instalado.

24.2.2. Instalación de livemedia-creator

La herramienta livemedia-creator forma parte del paquete lorax. Para instalar el paquete, ejecute el siguiente comando como raíz:
# yum install lorax 
También necesitará instalar otros paquetes además del propio lorax. Estos paquetes no son dependencias de lorax y por lo tanto no se instalan automáticamente, pero es posible que los necesite, según para qué esté utilizando livemedia-creator. Entre estos paquetes están:
  • virt-install: un paquete con herramientas para crear nuevas máquinas virtuales, que se utiliza en la primera etapa de creación de Live Media, a menos que se especifique la opción --no-virt.
  • libvirt, qemu-kvm, virsh y otras herramientas: al usar virt-install, su sistema debe ser preparado para crear, ejecutar y manejar una máquina virtual. Para obtener más información sobre virtualización en Red Hat Enterprise Linux y para más documentación sobre cómo instalar y trabajar con herramientas de virtualización, consulte la Guía de administración e implementación de virtualización de Red Hat Enterprise Linux 7.
  • anaconda: el programa de instalación de Red Hat Enterprise Linux, que se utiliza en la primera etapa en lugar de virt-install si se utiliza la opción --no-virt.
Es posible que sean necesarias otras aplicaciones, que no abarca este capítulo. Si intenta ejecutar livemedia-creator y falta un paquete necesario con las opciones que ha especificado, el programa se detendrá y aparecerá un mensaje de error para indicarle los paquetes que debe instalar para continuar.

24.2.3. Archivos Kickstart de muestra

Para crear satisfactoriamente una imagen en vivo personalizada, necesitará un archivo de configuración Kickstart válido. Dos muestras se instalan automáticamente junto con lorax. Puede usar estas muestras como referencia cuando cree sus propias imágenes personalizadas o puede copiarlas y modificarlas para adaptarlas al uso que pretende darles. Las dos muestras que se facilitan se encuentran en el directorio /usr/share/doc/lorax-version/, donde version es el número de versión del paquete lorax instalado en su sistema.
Las muestras disponibles son:
  • rhel7-minimal.ks: un archivo de configuración que solo proporciona una instalación mínima (el grupo @core) y otros elementos básicos como el kernel y el cargador de arranque GRUB2). No se crea ningún usuario aparte del raíz y no se instala ninguna interfaz gráfica, ni paquetes adicionales.
  • rhel7-livemedia.ks: un archivo de configuración más avanzado que crea un sistema real con una interfaz gráfica. Se crea un usuario llamado liveuser junto con el raíz.
Ambas configuraciones de muestra se deben modificar para usar una ubicación válida como fuente de instalación. Para ello, abra el archivo en un editor de texto sin formato como vim, localice el comando url y cambie la dirección incluida por una fuente de instalación válida. Para que estas muestras funcionen, no es necesario realizar ningún otro cambio.

Importante

No modifique las muestras en su ubicación original. En su lugar, cópielas a otro directorio y modifíquelas ahí.

Nota

Cuando especifique la fuente de instalación y repositorios adicionales en el archivo Kickstart, tenga en cuenta que únicamente se admiten los repositorios oficiales proporcionados por Red Hat. Es posible que los repositorios personalizados funcionen, pero no son compatibles.

24.2.4. Creación de imágenes personalizadas

Esta sección describe los patrones de uso comunes para livemedia-creator. No pretende que sea una lista completa de las opciones. Para ver cada opción disponible, ejecute livemedia-creator --help o vea la página de manual livemedia-creator(1).

24.2.4.1. Creación de una imagen en vivo con virt-install

Quizás el uso más común de livemedia-creator implica el uso de virt-install para crear una máquina virtual temporal para ser utilizada para el proceso de creación en vivo. Para crear una imagen ISO en vivo mediante virt-install, necesitará una imagen ISO arrancable que contenga el programa de instalación Anaconda. Dichas imágenes son proporcionadas por Red Hat como medios de "arranque mínimo"; Para obtener más información, consulte Sección 2.2, “Cómo crear medios USB de instalación”.
El siguiente comando es imprescindible para crear una imagen en vivo con virt-install:
# livemedia-creator --make-iso --iso=/path/to/boot.iso --ks=/path/to/valid/kickstart.ks 
Sustituya /path/to/boot.iso por una ruta a una imagen de arranque mínimo y /path/to/valid/kickstart.ks por una ruta a un archivo Kickstart válido para usarla en el proceso de creación de la imagen.
Las opciones adicionales que pueden resultarle útiles para este caso práctico en concreto son:
  • --vnc vnc: esta opción siempre permite ver el proceso de instalación mediante un cliente VNC, tal como TigerVNC. Esta opción se pasa a la opción --graphics de virt-install. Para obtener más información, consulte el Capítulo 22, Instalación mediante VNC.
  • --ram x: le permite especificar la cantidad de RAM para la máquina virtual temporal en megabytes.
  • --vcpus x: la cantidad de procesadores de la máquina virtual.

24.2.4.2. Creación de una imagen en vivo con la instalación de imagen de Anaconda

Otra manera de crear una imagen en vivo es utilizar la función de instalación de imagen de Anaconda. En este caso, no se necesita ninguna imagen que contenga el programa de instalación, pero el paquete anaconda se debe instalar en el sistema. De nuevo, el proceso consta de dos etapas: en la primera, se crea una imagen de disco temporal y en ella se instala un sistema, y después esta imagen se usa para crear el ISO final que se pueda arrancar.

Aviso

La creación de imágenes en vivo con Anaconda puede ser peligrosa, porque utiliza el programa de instalación en el propio sistema en lugar de en el interior de una máquina virtual. Aunque en este momento no se conocen errores que pudieran causar problemas, es posible que este proceso inutilice todo el sistema. Por lo tanto, solo se recomienda ejecutar livemedia-creator con la opción --no-virt en máquinas virtuales (guests) reservadas específicamente para este fin.

Importante

Establezca el modo de seguridad para Linux, (SELinux), al modo permisivo o inhabilitado antes de crear imágenes personalizadas con Anaconda. Consulte la Guía del administrador y usuario Selinix de Red Hat Enterprise Linux 7 para más información sobre configuración de modos SELinux.
Para crear una imagen en vivo con Anaconda, utilice la opción --no-virt. Por ejemplo:
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --no-virt 

24.2.4.3. Creación de un disco o imagen de sistema de archivos

También puede utilizar livemedia-creator para crear un disco o una imagen de sistema de archivos. Esto quiere decir que únicamente hay que realizar la primera etapa del proceso de creación de imágenes. El ISO final no se creará y el programa se detendrá cuando finalice el proceso de instalación en el disco o en el archivo de imagen del sistema de archivos temporal. Después, puede montar y examinar la imagen para comprobar si tiene errores, lo cual puede resultar útil a la hora de resolver problemas de un archivo Kickstart modificado, y también puede guardarlo para utilizarlo en el futuro para ahorrarse tiempo cuando cree imágenes.
Hay varias maneras de detener el proceso de creación tras la primera etapa. Puede usar la opción --image-only tal y como ilustra el siguiente ejemplo:
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso --image-only 
De forma alternativa, puede utilizar la opción --make-disk en lugar de --make-iso:
# livemedia-creator --make-disk --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
También puede crear una imagen de sistema de archivos en lugar de una imagen de disco particionado con la opción --make-fsimage:
# livemedia-creator --make-fsimage --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 

Nota

También es posible usar la opción --no-virt en todos los ejemplos de esta sección.
En todos los casos, el resultado será una imagen de disco particionado o una imagen de sistema de archivos ubicado de forma predeterminada en el directorio /var/tmp/. Para cambiar la ubicación del resultado, use la opción --tmp /path/to/temporary/directory/, donde /path/to/temporary/directory/ es la ruta al directorio de destino.

24.2.4.4. Uso de un disco o imagen de sistema de archivos creado previamente

Si usted ya tiene una imagen de disco o sistema de archivos (vea la Sección 24.2.4.3, “Creación de un disco o imagen de sistema de archivos”), puede proporcionarla con livemedia-creator para producir la imagen ISO final arrancable. En este caso no se requiere el archivo Kickstart o la imagen de instalación Anaconda ; solo se necesitan en la primera etapa del proceso de creación, el cual se ignora en este caso.
Para crear una imagen final a partir de un archivo existente de imagen de disco particionado, utilice la opción --disk-image. Por ejemplo:
# livemedia-creator --make-iso --disk-image=/path/to/disk/image.img 
Si desea utilizar una imagen de sistema de archivos en lugar de una imagen de disco, utilice en su lugar la opción --fs-image:
# livemedia-creator --make-iso --fs-image=/path/to/filesystem/image.img 

24.2.4.5. Creación de un dispositivo

Otra utilidad de livemedia-creator es crear imágenes de dispositivo (imágenes de disco particionado), que incluyan un archivo XML con su descripción, generadas con una plantilla. En este caso se admiten instalaciones de máquina virtual, así como instalaciones de imagen. Para crear una imagen y una descripción de dispositivo, use la opción --make-appliance en lugar de --make-iso. Por ejemplo:
# livemedia-creator --make-appliance --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
Tanto la imagen como el archivo XML de descripción se guardan en el directorio /var/tmp/, a menos que se especifique otro con la opción--resultdir.
Otras opciones específicas para la creación de dispositivos son:
  • --app-name name: especifica el nombre del dispositivo, que aparecerá en el archivo XML de descripción marcado con la etiqueta <name>. El valor predeterminado es None.
  • --app-template /path/to/template.tmpl: indica la plantilla que se va a utilizar. De forma predeterminada es /usr/share/lorax/appliance/libvirt.tmpl.
  • --app-file /path/to/app/file.xml: especifica el nombre del archivo XML de descripción generado. El valor predeterminado es appliance.xml.

24.2.4.6. Creación de una imagen de máquina Amazon (AMI)

Para crear una imagen de máquina Amazon (AMI) para usar en la nube de computación elástica de Amazon (EC2), utilice la opción --make-ami. Se admiten tanto las instalaciones virtualizadas como las de imagen.
# livemedia-creator --make-ami --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
El resultado será un archivo de imagen llamado ami-root.img ubicado en el directorio /var/tmp/, a menos que haya utilizado la opción --resultdir para indicar otro destino.

24.2.4.7. Argumentos adicionales

Las siguientes opciones se pueden utilizar en todos los casos prácticos mencionados anteriormente (instalaciones virtuales, instalaciones de imagen de Anaconda, entre otras).
  • --keep-image: al elegir esta opción, no se elimina el archivo de imagen de disco temporal utilizado en la primera etapa de la instalación. Se guarda en el directorio /var/tmp/ y se le asigna un nombre generado aleatoriamente, como diskgU42Cq.img.
  • --image-only: si utiliza esta opción, solo se ejecutará la primera etapa del proceso de creación de imágenes. En lugar de producir una imagen ISO final que se pueda arrancar , livemedia-creator creará únicamente el archivo de imagen de disco temporal y realizará en él la instalación. Esta opción le permite ahorrar tiempo cuando pruebe modificaciones realizadas en el archivo Kickstart, porque puede omitir la larga segunda etapa y analizar el archivo de imagen de disco temporal.
  • --image-name name: le permite especificar un nombre personalizado para el archivo de imagen de disco temporal. El nombre predeterminado se general aleatoriamente (por ejemplo, disk1Fac8G.img).
  • --tmp /path/to/temporary/directory/: especifica el directorio temporal de nivel superior. El valor predeterminado es /var/tmp/. Cuando utilice esta opción, debe especificar un directorio que ya exista.
  • --resultdir /path/to/results/directory/: especifica el directorio donde aparecerán los resultados (la imagen ISO que se pueda arrancar) después de que termine livemedia-creator. No se puede especificar un directorio que ya exista. De forma predeterminada es /var/tmp/. Esta opción solo se aplica a la imagen ISO final; si está creando un disco o una imagen de sistema de archivos y desea guardarla en una ubicación específica, utilice la opción --tmp.
  • --logfile /path/to/log/file/: especifica la ubicación del archivo de registro del programa.

24.2.5. Resolución de problemas de livemedia-creator

Esta sección propone sugerencias para resolver diversos problemas que comúnmente surgen cuando se utiliza livemedia-creator. Si tiene un problema que no se describa aquí, puede consultar los archivos de registro del programa, que se generan automáticamente durante cada ejecución y se guardan en el directorio desde el que ejecuta la herramienta, a menos que haya especificado un directorio distinto con la opción --logfile. Los archivos de registro variarán según las opciones que haya utilizado — por ejemplo, virt-install.log no se generará si utiliza la opción --no-virt (en su lugar, obtendrá archivos de registro de Anaconda, situados en el directorio anaconda/). Otros archivos, en concreto livemedia.log y program.log, se generan siempre.
Otra forma de descubrir y resolver problemas es utilizar la opción --image-only cuando ejecute la utilidad. Esta opción detendrá el programa después de la primera etapa, de modo que solo se generará un archivo de imagen de disco en lugar del ISO final que se pueda arrancar. Después, podrá montar el archivo de imagen de disco y examinar su contenido sin tener que esperar a que termine la segunda etapa. También puede utilizar la opción --keep-image, que ejecutará ambas etapas pero mantendrá la imagen de disco temporal para un análisis posterior.
Al usar la opción --vnc se recomienda cuando se prueban los cambios para el archivo Kickstart. Esta opción le permitirá usar el cliente VNC para conectarse a la máquina virtual y observar el progreso de instalación. Para obtener más información, consulte el Capítulo 22, Instalación mediante VNC .

24.2.5.1. Atasco de la instalación mediante máquina virtual

Si el programa de instalación se atasca por alguna razón durante la primera etapa de una instalación virtual, livemedia-creator también se atascará, pues se quedará esperando a que la instalación finalice. En este caso puede interrumpir el programa directamente o bien solucionar el problema deteniendo la máquina virtual temporal. Livemedia-creator detectará que el sistema operativo guest se ha detenido, eliminará los archivos temporales y saldrá.
Para detener la máquina virtual temporal, siga este procedimiento:

Procedimiento 24.1. Detención de la máquina virtual temporal

  1. Use virsh para enumerar todas las máquinas virtuales (guests) disponibles actualmente en el sistema. El resultado será algo similar a esto:
    # virsh list --all Id Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off 
    Identifique la máquina virtual temporal. Su nombre siempre empezará por LiveOS, seguido por una cadena de números y caracteres aleatorios.
  2. Cuando haya identificado la máquina virtual temporal, deténgala con el comando virsh destroy name, donde name es el nombre de la máquina virtual:
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed 

24.2.5.2. Instalación mediante máquina virtual abortada

Si estaba realizando una instalación virtual y el proceso se interrumpió por alguna razón (como fallo del hardware, fallo del suministro eléctrico o una interrupción del teclado) durante la primera etapa, virt-install no podrá iniciarse de nuevo hasta que se eliminen la imagen de disco temporal y la máquina virtual previamente creadas. El siguiente procedimiento explica cómo hacerlo.
Es posible que no todos los pasos sean siempre necesarios. Por ejemplo, si se está recuperando después de un fallo del sistema, no podrá detener la máquina virtual temporal, solo dejar de definirla. También puede seguir los pasos 4 y 5 si solo desea limpiar los archivos temporales creados por livemedia-creator y nada más.

Procedimiento 24.2. Eliminación de guests y archivos de imagen de disco temporales

  1. Use virsh para enumerar todas las máquinas virtuales (guests) disponibles actualmente en el sistema. El resultado será algo similar a esto:
    # virsh list --all Id Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off 
    Identifique la máquina virtual temporal. Su nombre siempre empezará por LiveOS, seguido por una cadena de números y caracteres aleatorios.
  2. Cuando haya identificado la máquina virtual temporal, deténgala con el comando virsh destroy name, donde name es el nombre de la máquina virtual:
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed 
  3. Elimine la máquina virtual temporal con virsh undefine name, usando el mismo nombre que en el paso anterior.
    # virsh undefine LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 has been undefined 
  4. Busque el montaje del sistema de archivos temporal. Se habrá guardado en el directorio /var/tmp/ y su nombre será lorax.imgutils seguido por seis números o caracteres aleatorios.
    # findmnt -T /var/tmp/lorax.imgutils* TARGET SOURCE FSTYPE OPTIONS /var/tmp/lorax.imgutils.bg6iPJ /dev/loop1 iso9660 ro,relatime 
    A continuación, desmóntelo con el comando umount:
     # umount /var/tmp/lorax.imgutils.bg6iPJ 
  5. Busque la imagen de disco temporal creada por virt-install en el directorio /var/tmp. El nombre de este archivo figura en la línea de comandos al principio del proceso de instalación y se genera aleatoriamente, a menos que especifique un nombre con la opción --image-name. Por ejemplo:
     2013-10-30 09:53:03,161: disk_size = 5GB 2013-10-30 09:53:03,161: disk_img = /var/tmp/diskQBkzRz.img 2013-10-30 09:53:03,161: install_log = /home/pbokoc/lorax/virt-install.log mount: /dev/loop1 is write-protected, mounting read-only 
    En el ejemplo anterior, la imagen de disco temporal es /var/tmp/diskQBkzRz.img.
    Si no puede encontrar los mensajes iniciales, puede identificar los archivos temporales manualmente. Enumere todo el contenido del directorio /var/tmp con el comando ls y filtre el resultado buscando archivos que contengan disk en sus nombres:
    # ls /var/tmp/ | grep disk diskQBkzRz.img 
    Después, elimine la imagen de disco temporal:
    # rm -f /var/tmp/diskQBkzRz.img 
Si ha seguido todos los pasos de este procedimiento, podrá iniciar una nueva instalación con virt-install.

24.2.5.3. Instalación fallida con --no-virt

Puede conseguir recuperarse de una instalación interrumpida con la función de instalación de imagen de Anaconda (la opción --no-virt) ejecutando el script anaconda-cleanup, que se instala junto con el paquete anaconda. Este script se encuentra en el directorio /usr/bin/.
Utilice el siguiente comando para ejecutar el script de limpieza. Para hacerlo, necesitará privilegios de raíz.
# anaconda-cleanup