Tema anterior: Instalaciones de distribución

Tema siguiente: Instalación del kit para dispositivos para distribuciones de RedHat y CentOS Linux

Instalación del dispositivo para distribuciones de Ubuntu Linux

Archivos
Compatibilidad

Las versiones de apk-*-linux-ub son compatibles con las distros de los SO siguientes:

Para instalar el kit para dispositivos (APK) necesita uno de los siguientes elementos:

La imagen debe estar con el sistema de archivos ext3, si se van a utilizar el kernel proporcionado por el APK y los archivos initrd.

Preparación de la imagen

Las versiones para Linux del APK admiten el arranque HVM para los dos hipervisores de VMWare y XEN. El kernel de PVM proporcionado por CA AppLogic es opcional.

Sistemas operativos compatibles con Red Hat

Si el kernel proporcionado por CA 3Tera AppLogic se desempaqueta antes de ejecutar la instalación del APK, se configurará automáticamente como kernel para el arranque cuando se arranque el dispositivo en modo PVM; se crea para ello un nuevo archivo boot/grub/menu.lst. El kernel proporcionado por el SO instalado se utilizará en el arranque HVM (el archivo de configuración de GRUB del SO predeterminado para sistemas operativos compatibles con Red Hat es boot/grub/grub.conf).

Otros sistemas operativos basados en Linux

Si el kernel proporcionado por CA 3Tera AppLogic se desempaqueta antes de instalar el APK, se configurará como kernel de arranque en boot/grub/menu.lst. Se realizará una copia del archivo de configuración de GRUB original, en boot/grub/menu.lst.apkbk. El autor del dispositivo puede cambiar el nombre de la copia de seguridad guardada y volver a configurar el cargador de arranque de GRUB a fin de utilizar el nombre de archivo alternativo como archivo de configuración, de tal forma que se seleccione cuando el dispositivo arranque en modo HVM. Cuando se arranca en modo paravirtualizado (PV), se utiliza siempre boot/grub/menu.lst.

Si la instalación del APK se ejecuta sin desempaquetar el kernel proporcionado por CA 3Tera AppLogic, la configuración de GRUB permanecerá intacta. Se da por hecho que el dispositivo se ejecutará en modo HVM, o bien que el kernel proporcionado por el SO es capaz de arrancar en modo XEN PV (muchas de las distros de SO más recientes proporcionan una compilación del kernel de XEN-PV, que se puede instalar y configurar como predeterminado).

Los pasos siguientes pueden variar, en función de cómo se instaló el SO originalmente. El script de instalación del APK no los lleva a cabo, sino que su realización se efectúa según el criterio del administrador, porque algunos de ellos son invasivos y pueden ser destructivos si accidentalmente se llevan a cabo en un sistema en vivo (en lugar de en la imagen que se está preparando); por lo tanto, no se aconseja ejecutarlos en un script automatizado. Omita los pasos que no sean apropiados.

Para preparar la imagen

  1. Compruebe que la imagen de disco es un sistema de archivos ext3. Si el SO se ha instalado como ext2, ejecute el comando siguiente para convertir la imagen en ext3.
    run tune2fs -j
    

    Para utilizar ext2 (o cualquier sistema de archivos distinto de ext3), es preciso volver a generar el archivo initrd que se distribuye con el APK.

  2. Edite el archivo de configuración de red (/etc/network/interfaces) y elimine todas las interfaces excepto lo.
  3. Edite el archivo etc/fstab y cambie el nombre del dispositivo raíz por el siguiente:
    /dev/hda1
    

    El instalador también comprueba e imprime una advertencia si detecta que el dispositivo raíz se ha especificado mediante etiqueta o UUID.

  4. (Opcional) Suprima el paquete del kernel, pasando por alto las dependencias (para ahorrar espacio en disco en el volumen de arranque).
  5. Compruebe que el paquete iproute está instalado en las distros de Debian y Ubuntu anteriores.
  6. Desinstale todos los servicios del SO que no se vayan a usar.
  7. (Distribuciones de 64 bits) Instale el paquete libc6-i386 y sus dependencias (apt-get install libc6-i386). Los binarios del APK son de 32 bits, no se ejecutarán sin las bibliotecas de 32 bits.

    Nota: Si es necesario ejecutar otros archivos ejecutables de 32 bits aparte de los contenidos en el propio APK, puede ser interesante instalar el metapaquete ia32-libs. El metapaquete instala todos los paquetes que contienen bibliotecas de 32 bits.

Importante: Desinstale o desactive NetworkManager. Este programa interferirá en la configuración de red de CA 3Tera AppLogic. Excepción: si va a configurar un servidor VPS con interfaz gráfica de usuario, se puede usar la applet Network Manager para realizar configuración de IP manual (pero se tiene que configurar en modo manual antes de arrancar la nueva instalación del SO en CA 3Tera AppLogic).

Nota: Después de limpiarse, el volumen se puede encoger para producir una imagen de volumen de inicio más pequeña para el dispositivo; sin embargo, hay que comprobar que se dejan al menos 10-15 MB de espacio libre, de modo que haya espacio para instalar el APK y el kernel de XEN DomU y para los archivos de registro, archivos temporales, etc.

Nota sobre el archivo Initrd

APK utiliza una imagen de unidad RAM inicial sencilla (initrd) creada con el programa de arranque "nash" de Red Hat. No carga ningún módulo del kernel y su única finalidad es configurar el directorio /dev/ basado en la unidad RAM para el programa udev y rellenarlo.

Funciona bien al arrancar un dispositivo virtual basado en Ubuntu y no es preciso crear una imagen de initrd de tipo Ubuntu para el dispositivo. Las imágenes de initrd de Ubuntu 6/7 son mayores y presentan una funcionalidad más avanzada, que no es necesaria en la mayor parte de los dispositivos. Si se desea, se puede crear y utilizar un archivo de initrd específico para Ubuntu. Basta con editar el archivo /boot/grub/menu.lst de modo que señale a una imagen de initrd alternativa. Observe que este cambio se tendrá que volver a aplicar si el APK se vuelve a instalar en el futuro.

Instalación del APK

En las instrucciones de instalación que se facilitan aquí se da por hecho que la instalación del APK se lleva a cabo en una imagen del SO que no está realmente en ejecución pero se ha preparado con antelación, ya sea instalando un SO limpio, cerrándolo y tomando la imagen del disco de arranque, o bien actualizando un dispositivo de CA 3Tera AppLogic existente con una nueva versión del APK.

También se puede realizar la instalación en vivo (en un SO en ejecución) y se puede utilizar con la utilidad iso2class suministrada en CA 3Tera AppLogic Service Pack 2.4.5 y posteriores. Para instalar en un sistema en vivo, siga los pasos siguientes, pero utilice / como directorio actual para todas las operaciones. Esto se hace mejor en una máquina virtual XEN (por ejemplo, utilizando iso2class). Si el APK se instala únicamente con el kernel de XEN PV de CA 3Tera AppLogic, esto dará lugar a una máquina no de arranque.

Monte la imagen del SO en el archivo system.gm. Si la imagen ya está instalada como un volumen en un grid de CA 3Tera AppLogic, se puede acceder a ella mediante el comando vol manage. Copie los archivos del APK en el directorio /tmp de la propia imagen o en un directorio provisional en el host donde se monta la imagen. Si la imagen ya está en un grid, copie los archivos en la propia imagen utilizando la interfaz Web. (Si el proceso no se lleva a cabo en un grid: tenga en cuenta que las operaciones siguientes se deberán ejecutar como raíz de usuario).

Para instalar wget

  1. Desempaquete el kernel de DomU y el archivo de archivado binario del APK en el directorio raíz de la imagen. A continuación se muestra un ejemplo de los comandos que se deben ejecutar:
    cd /mnt/vol 
    tar -zxf tmp/domu-linux-2.6.18.8.i386.tar.gz 
    tar -zxf tmp/apk-2.0.14-ub.tar.gz 
    

    El script de instalación se desempaquetará en el directorio ./tmp.

    Importante: Use el archivo de archivado de domu-linux correcto para su arquitectura de distro. La instalación de un kernel de 32 bits no funcionará con una distro de 64 bits.

  2. Ejecute el script de instalación:
    tmp/apk-install 
    

    Nota: Los scripts de init proporcionados por el APK ya no son compatibles con los scripts específicos del dispositivo instalados en /appliance. Si está presente, el script de instalación se detendrá y solicitará información al usuario. Si no se ha llevado a cabo ninguna personalización específica del dispositivo en este directorio (esto es, su contenido es el mismo o similar al de LUX), se puede suprimir sin riesgo. Toda la funcionalidad estándar que se solía instalar allí la proporciona ahora el APK. De lo contrario, haga clic en guardar para guardarlo en /tmp y continuar con la instalación.

    El script de instalación (y los archivos tar, si se copiaron en la propia imagen) se pueden eliminar ahora:

    rm tmp/apk-install =  =tmp/domu-linux-*.tar.gz = tmp/apk-*.tar.gz=

  3. Desmonte la imagen e impórtela a su grid de CA 3Tera AppLogic (o bien, sencillamente, cierre el shell de vol manage, si la imagen estaba ya en su grid y se ha editado mediante vol manage).
  4. Si la imagen era la de un dispositivo existente, realice lo siguiente:
    1. Edite la clase (mediante el editor de GUI) y elimine los nombres de archivo initrd y del kernel.
    2. Establezca el modo de configuración como dhcp.
Personalización del comportamiento del dispositivo: referencia rápida

Para obtener información detallada, consulte el Manual del usuario.

Configuración del dispositivo init

Si el archivo /etc/sysconfig/applogic_init está presente, el script init del APK lo interpreta como un shell que incluye un script (con el comando "."). Los parámetros siguientes se pueden definir en /etc/sysconfig/applogic_init:

APK_AUTH_KEY_PATH

Ubicación en la que se almacenan la clave pública de acceso de SSH del dispositivo. El comando 3t comp ssh se conecta a los dispositivos mediante la clave privada correspondiente. El valor predeterminado es /root/.ssh. Si se establece como una cadena vacía, la clave no se almacenará en ningún sitio.
Si la ubicación especificada es un archivo existente, se conservarán el propietario y los permisos. De lo contrario, el archivo se creará con el propietario "raíz".

APK_CONFIG_FILES

Lista de archivos separados por espacios a los que se aplican propiedades de dispositivo. Sustituye la lista de archivos de configuración especificada en el cuadro de diálogo Modificar límite de la GUI (para los dispositivos que no están utilizando APK). Un dispositivo equipado con el APK utilizará la lista APK_CONFIG_FILES que se encuentra en el propio dispositivo, y no la lista especificada en la GUI.
Importante: Si se instala el APK en un dispositivo existente, compruebe en el descriptor de clase (mediante el editor de GUI) la presencia de archivos de configuración en la ficha Archivos de configuración del cuadro de diálogo Ver clase / Modificar límite. Transfiera la lista de archivos a la configuración APK_CONFIG_FILES en el dispositivo.

Importante: El archivo /etc/sysconfig/applogic_init se ejecuta antes de recuperar o aplicar cualquier dato de configuración, por lo tanto el script no puede confiar en la presencia de ninguno de los archivos de configuración del dispositivo. No utilice este archivo para ejecutar código de inicialización, solamente para las variables de configuración definidas anteriormente.

Ejemplo /etc/sysconfig/applogic_init:

APK_CONFIG_FILES=/etc/httpd/conf.d/myconfig.conf 
APK_AUTH_KEY_PATH=/root/.ssh/alternate_keys 
Comprobación del dispositivo después del inicio

Si el archivo /etc/sysconfig/applogic_appliance está presente, el script late init del APK lo interpreta como un shell que incluye un script (con el comando "."), después de que todos los servicios del dispositivo se hayan iniciado. El estado de retorno del script indica si se considerará que el dispositivo se ha iniciado correctamente (started OK) o no se pudo iniciar (failed). Si el script imprime un mensaje en stderr y devuelve un error, la última línea de este mensaje se utilizará como el mensaje de error que se envíe al controlador.

Ejemplo de un archivo de comprobación después del inicio para un dispositivo de servidor Web; comprueba que el servidor está en funcionamiento y responde a HTTP GET a la página principal:

if ! wget -q -O /dev/null http://localhost/ ; then
echo "start failed - web server is not responding" >&2
return 1
fi
return 0

Importante: Algunos dispositivos del catálogo del sistema usan un script personalizado que se encuentra en /appliance para inicializar servicios. Esto ya no se admite. Este directorio se suprime cuando se instala APK, para conservar limpia la estructura de directorios root!! y que sea compatible con el Estándar de Jerarquía de Sistema de Archivos. Se puede mover el código de estos scripts a /etc/sysconfig/applogic_appliance, a fin de emular el comportamiento anterior, pero no es intención del archivo de comprobación después del inicio y no se recomienda. En cambio, un servicio instalado debería tener su propio script init y en general debería ser capaz de funcionar completamente fuera de CA 3Tera AppLogic.