Matrices de certificación VMware

A la hora de abordar un proyecto con Linux, muchas veces resulta dificil de disponer de los equipos que realmente se necesitarían, por lo que nos planteamos usar VMware Server, que en principio es gratuito para el cliente y aporta la suficiente estabilidad como para afrontar el proyecto con garantías, pero siempre que nos apoyemos en versiones certificadas que nos aporten cierta garantía de que aquello funcionará como se espera, y no aparecerán errores raros, como los que suceden en ESX 2.5.2 con los relojes de los sistemas Linux.

Para comprobar las matrices, lo que debemos hacer es lo siguiente:

Las matrices hablan de RedHat Enterprise Linux, pero podemos usar el equivalente de CentOS, si el cliente no quiere pagar soporte. Con CentOS es como si tuvieran RHEL pero legal 100%, y con soporte de actualizaciones gratuito.

Suspender mi HP Compaq nx6110 en Fedora Core 8

Como esta semana me tocaba usar Fedora, y tenía atrasada la tarea en mi TODO, he decidido que el equipo tenía que suspenderse, y he empezado a mirar cómo se hace esto en Fedora Core 8, dado que no tenemos el paquete uswsusp, que teníamos en Ubuntu.
A poco que he buscado en los foros me he encontrado que casi todos hacen referencia a http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html. Y lo que he hecho ha sido lo siguiente: Me leido medio portal y finalmente he decidido descargar el fichero quirk-checker.sh. Lo he ejecutado y he obtenido...

$ bash quirk-checker.sh
Checking your system...

WARNING: You have no quirks!
WARNING: Using broadcom network driver.

Suggestions:

Add 'SUSPEND_MODULES="b44"' to /etc/pm/config.d/unload_modules!

You might want to try the following pm-suspend entries:
pm-suspend --quirk-vbemode-restore
pm-suspend --quirk-vbe-post



Así que, como había leído medio portal, he curiosedado la salida del comando lshal y luego he editado el fichero /usr/share/hal/fdi/information/10freedesktop/20-video-quirk-pm-hp.fdi para añadirle el siguiente bloque XML en la línea 25:

 <match key="system.hardware.product" string="HP Compaq nx6110 (PG827ET#ABE)">
<match key="system.hardware.version" string="F.06">
<merge key="power_management.quirk.vbestate_restore" type="bool">true</merge>
<merge key="power_management.quirk.vbe_post" type="bool">true</merge>
</match>
</match>


Luego he reiniciado el demonio hal
/etc/init.d/haldaemon restart

Y he comprobado que desde GNOME (Sistema->Apagar->Suspender) y desde la consola (como root ejecutar pm-suspend) el equipo se suspendía y recuperaba correctamente. Desde la consola se recuperaba, pero no me muestra el prompt, pero si luego pulsamos CTRL + ALT + F7 accedemos a X11 perfectamente.

Como resulta, que siempre estoy queriendo contribuir con el Software Libre, y que tal y que cual, me he dicho: Voy a mandarles esto, para que otro usuario con el mismo portatil, no se tenga que leer el portal y ya le venga de casa... y eso he hecho:
  1. Instalar el software necesario (y sus dependencias), para poder probar la versión del CVS.
    yum -y install git gcc automake
  2. Cambiar el fichero de hal-info/fdi/information/10freedesktop/20-video-quirk-pm-hp.fdi y en la línea 64 he añadido el bloque.
  3. Luego lo he compilado y probado para ver si había metido la gamba, fijándome si 10freedesktop/20-video-quirk-pm-hp.fdi tenía un ok o no.
    cd hal-info
    ./autogen.sh
    make check
  4. He generado el parche mediante:
    git pull
    git diff master > ../hal-info-quirk-hp-nx6110.patch

Y ya por último he enviado el parche a la lista de correo y con copia al señor Richard Hughsie.
Pues ya he colaborao con otra cosilla... a ver qué me dicen :/

Suspender mi HP Compaq nx6110 en Ubuntu

Hace ya unas semanas conseguí que mi equipo HP Compaq nx6110 se suspendiera correctamente en Ubuntu. Mi primer problema era que la suspensión necesita la swap del sistema, y al tener varios Linux instalados, que comparten la partición, y cuando instalé el último la formateó y cambió el UUID de la partición, por lo que ninguno veía bien la swap: ni Ubuntu ni Fedora.

Para el caso de Ubuntu, me aseguré que al arrancar montaba correctamente la Swap y seguí la recomendación de "Fix suspend and hibernate on laptops", e instalé el paquete uswsusp.

sudo apt-get install uswsusp splashy splashy-themes

Cuando dpkg pregunte, aceptar todas las opciones por defecto que nos propone. El primer paquete nos provee de software de suspensión en espacio de usuario, mientras el segundo nos permite ver una imagen mientras se recupera, sin tener que ver un log con todo lo que está haciendo, aunque creo que esto es para versiones antiguas, porque yo no veo ningún log ni nunguna imagen después de configurar Splashy como se describe en http://www.gisa-elkartea.org/documentacion/recetas/splashy-arranque-grafico

splashy_config -s ubuntusplashy

Instalación del Cliente ICAweb en FedoraCore 8

No hace mucho comenté aquí cómo instalar el cliente Citrix ICAweb en Ubuntu. Con esta manía mía de trabajar una semana con Ubuntu y otra con Fedora, para realizar, lo que en educación llaman evaluación contínua, me encuentro que el procedimiento no aplica igual en Fedora, así que procederemos de la siguiente forma:

  1. Ir a la página web de Citrix y descargar el cliente: http://www.citrix.com/download/
  2. En la parte derecha, probablemente tendremos en el "Top Download - Linux ICA Clients". Pinchar en él paquete RPM.
  3. Igual que en Ubuntu necesitaremos OpenMotif. Lo buscamos en google y podremos descargarlo de ftp.pbone.net.
  4. Instalar el paquete libXp de X11, que tiene dependencias con OpenMotif...
    sudo yum install libXp
  5. Ahora instalaremos el paquete OpenMotif que descargamos...
    sudo rpm -ivh openmotif-2.3.0-0.3.fc8.ccrma.i386.rpm
  6. Crearemos el enlace simbólico que necesita el cliente ICA mediante...
    sudo ln -s /usr/lib/libXm.so.4.0.0 /usr/lib/libXm.so.3
  7. Y por último, instalar el cliente Citrix sin comprobar las dependencias:
    sudo rpm --nodeps -ivh ICAClient-10.6-1.i386.rpm
Igual que para Ubuntu, deberíamos configurar el acceso al disco local ejecutando /usr/lib/ICAClient/wfcmgr. En la ventana que nos aparecerá, ir a Tools -> Settings. Luego seleccionar "Drive Mapping". Buscar la Y: y marcarla escribiendo en el campo de texto el directorio que queremos quede accesible en nuestras conexiones. Pulsar el botón Apply y luego OK. Cerrar la ventana. Descargar el certificado raíz de la FNMT, en http://www.cert.fnmt.es/content/pages_std/certificados/FNMTClase2CA.cer., y luego llevarlo al almacén ICA. Instalar el certificado raíz en Firefox y nuestro certificado cliente. Si al abrir nuestra primera aplicación en el CSG, Firefox nos preguntara con qué programa queremos abrir launch.ica le diremos que siempre use /usr/lib/ICAClient/wfica.

Actualización de VMware Server a 1.0.4, y problemas colaterales

Desde que instalé y configuré el servidor de casa, he estado funcionando con VMware Server 1.0.1 sobre Debian Etch. El otro día intentaba instalar una versión moderna de CentOS (por no hacerlo de RHEL, y ser legal) y revisé las matrices de compatibilidad en VMware. Necesitaba irme a la última para llegar a poder instalar CentOS 4 Update3. La última es 1.0.4, así que lo primero será ir a la Web de VMware y descargar el software para Linux. Necesitaremos al menos los siguientes paquetes:

  • vmware-server-distrib, que contiene la distribución del servidor VMware server 3
  • vmware-mui-distrib, que contiene la distribución del paquete de administración remota vía web.
Yo los descargaré a /media/software/Linux/VMware-server3/1.0.4. Crearemos el directorio para poder descomprimir el software.

mkdir /opt/vmware_1.0.4/
cd /opt/vmware_1.0.4/
tar -xzvf /media/software/Linux/VMware-server3/1.0.4/VMware-server-1.0.4-56528.tar.gz

Para empezar la actualización de software, lo primero será parar el Server que tenemos corriendo, y después lanzar el instalador. Para hacerlo todo, podemos ejecutar:

/etc/init.d/httpd.vmware stop
/etc/init.d/vmware stop
cd vmware-server-distrib/
./vmware-install.pl


No complicarnos con las respuestas del instalador: Yo siempre seleccioné la opción que proponía por defecto sin contemplaciones, lo que sería en Windows Siguiente, Siguiente... hasta la última pregunta que decía algo tal que así:

Setup found that the VMware Management Interface is installed on your machine.
The VMware Management Interface configurator (/usr/bin/vmware-config-mui.pl)
needs to be run. Do you want to run this program now? [yes]


Teclearemos no y pulsaremos enter con el fin de que no configure la interfaz Web que hay instalada, la que debería corresponderse a la de la versión 1.0.1. Así, una vez en el prompt teclearemos el siguiente bloque, para lanzar el instalador de la versión 1.0.4, y tener actualizada la consola de administración:


cd /opt/vmware_1.0.4/
tar -xzvf /media/software/Linux/VMware-server3/1.0.4/VMware-mui-1.0.4-56528.tar.gz
cd vmware-mui-distrib/
./vmware-install.pl


Igual que antes, responder a todo con la opción por defecto que nos propone, sin contemplaciones. Sé que la instalación de VMware Server tiene sus más y sus menos en Debian con los paquetes del kernel, porque en su día me dieron mucho follón, pero para la actualización no se requerirá nada especial, aunque indico los paquetes que yo tengo instalados:


# dpkg -l | grep kernel
ii kernel-image-2.6-k7 2.6.18+6etch2 Linux 2.6 image on AMD K7 - transition
ii libdrm2 2.0.2-0.1 Userspace interface to kernel DRM services
ii linux-image-2.6-k7 2.6.18+6etch2 Linux kernel 2.6 image on AMD K7
ii linux-kernel-headers 2.6.18-7 Linux Kernel Headers for development
ii linux-source-2.6.18 2.6.18.dfsg.1-17 Linux kernel source for version 2.6.18 with
ii module-init-tools 3.3-pre4-2 tools for managing Linux kernel modules


Y los enlaces que deberíamos tener creados son los siguientes:

# ls /lib/modules/`uname -r` -l
lrwxrwxrwx 1 root root 34 2008-01-19 12:08 build -> /usr/src/linux-headers-2.6.18-5-k7
lrwxrwxrwx 1 root root 34 2007-11-01 12:51 build.save -> /usr/src/linux-headers-2.6.18-5-k7


Con esto ya deberíamos poder acceder a la consola VMware del servidor mediante https://servidor:8333/,(con login root, y passwd la del root del sistema, si no se personalizaron los usuarios) y poder crear máquinas virtuales, etc, comprobando que se trata de la versión 1.0.4. Este procedimiento en general debe ser análogo para una instalación nueva, porque lo primero que hace el instalador es eliminar las versiones previas de VMware Server.

Una vez realizamos la acutalización, deberíamos actualizar las VMware Tools de todas las máquinas que ya teníamos instaladas. Esto es lo que hice con una máquina Windows XP que yo tenía configurada, pero cuando la reinicié después de haber actualizado los drivers, me encontré con el error c000021a en Windows, y la máquina no iniciaba.




La solución fue arrancar el disco de esa máquina virtual en otra máquina Windows XP similar, que no le había actualizado todavía las VMware Tools, y reemplazar el fichero C:\Windows\System32\msvcrt.dll de la máquina que no arrancaba por el mismo archivo de la máquina que sí funcionaba. Desmonté los discos, arranqué la máquina rota y todo volvió a la normalidad.

También tendremos que actualizar los clientes VMware-Server-Console de los equipos que usábamos para conectar a la anterior versión.

Instalación de la consola VMware Server en Linux

Otra de las cosas que suele sucederme cuando me pongo delante de un nuevo Linux, es que tengo que instalar la consola del cliente VMWare Server o ESX, para poder acceder a las máquinas virtuales. Me pongo a ello.

Lo primero será acceder a la consola a través del navegador Web, por ejemplo: https://casa.tecnoquia.com:8333/vmware/en. Nos autenticamos y accedemos.

Ya en la consola, después del listado de máquinas virtuales deberíamos encontrarnos los enlaces para descargar la consola. Voy hacerlo descargando la versión TGZ. Para ello, en Ubuntu pincho en el link "Linux (tar.gz)", en FedoraCore, descargaremos la versión RPM. Cuando la hayamos descargado, la descomprimiremos mediante "tar xzvf NOMBRE" y accederemos al subdirectorio que se nos habrá creado vmware-server-console-distrib. Ya en este directorio, ejecutamos (en FedoraCore, usaremos sudo rpm -Uvh VMware-server-console-*rpm):

sudo ./vmware-install.pl

...y ante eso nos preguntará:
In which directory do you want to install the binary files? [/usr/bin]

Pulsaremos la tecla Enter. Seguido, volverá a preguntar:

In which directory do you want to install the library files? [/usr/lib/vmware-server-console]
Volveremos a pulsar enter.

The path "/usr/lib/vmware-server-console" does not exist currently. This
program is going to create it, including needed parent directories. Is this
what you want? [yes]

Otra vez enter.

In which directory do you want to install the manual files?
[/usr/share/man]


Enter.
In which directory do you want to install the documentation files? [/usr/share/doc/vmware-server-console]

Enter otra vez.

The path "/usr/share/doc/vmware-server-console" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes]

Enter.

Before running VMware Server Console for the first time, you need to configure
it by invoking the following command:
"/usr/bin/vmware-config-server-console.pl". Do you want this program to invoke
the command for you now? [yes]


Enter, y nos pedirá que pulsemos Enter para que nos muestre la licencia de usuario. En FedoraCore, deberemos lanzar el configurador a mano mediante sudo vmware-config-server-console.pl). Una vez ante la licencia de usuario, nos la leemos entera y asimilamos lo que nos está diciendo. Cuando queramos continuar con la instalación pulsamos la tecla "q" , y nos preguntará


Do you accept? (yes/no)

En mi caso tecleo yes, porque estoy de acuerdo. Para terminar nos mostrará:

Thank you. Configuring fallback GTK+ 2.4 libraries. The configuration of VMware Server Console completed successfully.

Con la versión VMware Server 1.0.1 build-29996 que tengo instalada, he encontrado que al ejecutar "Attach Console..." se descarga un fichero vmware-console pero que no tiene extensión, por lo que no puedo asociarle la acción predeterminada a Firefox de que me abra la consola. Para abrirla, de momento lo hago lanzándola de forma manual:

/usr/bin/vmware-server-console

y cuando abre ya le introduzco yo los parámetros de conexión al servidor.

Instalación del Cliente ICAweb en Ubuntu

He decido de una vez, dejarme escrito esto para evitarme tener que recordarlo: Cómo configurar el cliente ICAweb para el acceso a las aplicaciones Citrix a través del CSG (Citrix Secure Gateway) en Linux, y con el certificado de la Fábrica Nacional de Moneda y Timbre, que es la CA de los certificados con los que trabajamos por aquí.

  1. Ir a la página web de Citrix y descargar el cliente: http://www.citrix.com/download/
  2. En la parte derecha, probablemente tendremos en el "Top Download - Linux ICA Clients". Pinchar en él.
  3. Con las nuevas versiones de Cairo/Compiz y demás, nos encontramos que ya no es normal encontrar el soporte para OpenMotif
    sudo apt-get install libmotif3 motif-clients
  4. Descargar la última que haya. Para Ubuntu 7.10 descargo el tar.gz, para Fedora 8 el RPM.
    mkdir /tmp/citrix
    cd /tmp/citrix
    tar -xzvf ~/en.linuxx86.tar.gz
    sudo ./setupwfc

Con esto habremos lanzado el instalados y nos pregunatará lo siguiente,

Select a setup option:

1. Install Citrix Presentation Server Client 10.6
2. Remove Citrix Presentation Server Client 10.6
3. Quit Citrix Presentation Server Client 10.6 setup

Enter option number 1-3 [1]: 1

Pulsaremos obviamente 1 y enter para continuar. Luego nos preguntará:

Please enter the directory in which Citrix Presentation Server Client is to be installed.
[default /usr/lib/ICAClient]
or type "quit" to abandon the installation:


Teclearemos ENTER para continuar. Y ahora,

You have chosen to install Citrix Presentation Server Client 10.6 in /usr/lib/ICAClient.

Proceed with installation? [default n]:

Pulsaremos y seguida de Enter. Luego...

Select an option:

1. I accept
2. I do not accept

Enter option number 1-2 [2]:


Pulsar 1 y enter. Cuando pregunte:

Integration complete.
Do you want to integrate the Citrix client with KDE and GNOME? [default y]:


Pulsar y seguida de enter, para que configure firefox y configure los menús del sistema. Volverá a la pantalla inicial, y saldremos de ella, pulsando el 3 y luego Enter.

El siguiente paso será configurar el acceso al disco local. Para ello ejecutar /usr/lib/ICAClient/wfcmgr. En la ventana que nos aparecerá, ir a Tools -> Settings. Luego seleccionar "Drive Mapping". Buscar la Y: y marcarla escribiendo en el campo de texto el directorio que queremos quede accesible en nuestras conexiones. Pulsar el botón Apply y luego OK. Cerrar la ventana.

Lo siguiente será descargar el certificado raíz de la FNMT, en http://www.cert.fnmt.es/content/pages_std/certificados/FNMTClase2CA.cer. Una vez lo hayamos descargado, lo copiaremos al directorio almacén de cliente ICA mediante.

sudo cp FNMTClase2CA.cer /usr/lib/ICAClient/keystore/cacerts/

En Firefox, ir a Editar->Preferencias->Avanzado->Pestaña Cifrado, botón "Ver Certificados", y en la Pestaña "Autoridades" pulsar "Importar" y luego elegir el fichero que acabamos de descargar FNMTClase2CA.cer. Seleccionar al menos que el certificado permita "identificar sitios web". También es un buen momento para instalar el certificado de usuario de la FNMT.

Para probar todo lo que hemos hecho deberíamos abrir algún site con CSG como https://extranet.carm.es o https://pasaext.carm.es.

Identificar TTFs en imágenes

¿Cuántas veces he visto un logo, o una imagen del que me ha gustado un tipo de fuente en concreto?. Vía Designios/Entrebits he descubierto la siguiente aplicación http://www.myfonts.com/WhatTheFont/. Lo que se debe hacer es lo siguiente:

  1. Localizar la imagen que tiene la fuente que nos mola. Recortarla si es necesario con el GIMP para evitar que nos cante el parser (que es bastante delicado, en tamaño y nº de elementos).
  2. Acceder a la página http://www.myfonts.com/WhatTheFont/, y subir la imagen retocada.
  3. El parser identificará las letras y nos propondrá una transcripción. Lo corregiremos.
  4. Et Voilá... las fuentes localizadas.
Lo que estoy haciendo ahora mismo, en vez de estar con las prácticas de Agentes Software de se llama procrastinar, y debería dejármelo.

Nautilus-Actions y repositorio subversion

Ya tenía ganas, de escribir y configurar esto, desde que estuviera en la GUADEC de 2006, cuando viera las primeras pruebas. En aquellas fechas, ví cómo la comunidad GNOME había realizado un esfuerzo importante por permitir a sus usuarios ampliar funcionalidades a las aplicaciones mediante pequeños pluggins. Los ejemplos que vimos por allí fueron Gedit y Nautilus, y en concreto para ete último, vi un ejemplo de cómo currarse una especie de TortoiseSVN sin llegar a serlo claro.Bien, pues la forma normal de hacerlo en ubuntu sería mediante:
sudo apt-get install nautilus-script-collection-svn
nautilus-script-manager enable Subversion
killall nautilus


El proyecto es Nautilus-Actions, y podemos encontrar más paquetes mediante
sudo aptitude search nautilus-script

En el proyecto G-Scripts podremos encontrar más scripts. Los scripts para Subversion han sido desarrollados por Marius Scurtescu y se encuentran disponibles en su cuenta Google Code mariuss-nautilus-scripts. El comentarlo es porque no he encontrado hasta la fecha, una versión del paquete para Fedora Core, por lo que tendremos que realizar la instalación de forma manual, descargando nosotros el TGZ del paquete desde Google Code. En Fedora procederemos de la siguiente forma:
sudo yum install nautilus-actions
cd ~/.gnome2/nautilus-scripts/
tar -xzvf ~/nautilus-svn-scripts-0.9.2.tar.gz nautilus-svn-scripts-0.9.2/Subversion
mv nautilus-svn-scripts-0.9.2/Subversion .
rmdir nautilus-svn-scripts-0.9.2
killall nautilus


Finalmente lo que hace es crearnos scripts en nuestro directorio ~/.gnome2/nautilus-scripts/. Podemos hacernos uno rápido, mediante...
echo -e '#!/bin/sh\ngnome-terminal\n' > ~/.gnome2/nautilus-scripts/terminal
chmod a+x ~/.gnome2/nautilus-scripts/terminal

Aunque lo interesante es hacerlo con Python, y que interactúe con el usuario.

mkisofs aún se usa desde la consola

Bueno, este es el primer post de 2008. Esta mañana he tenido que recuperar un FileSystem de un servidor SAP XI, sobre RHEL3U2 y me encontrado con un problemilla. Los directorios /usr/lib/ y /usr/kerberos estaban dañados, imagino que por no haber hecho un fsck.ext3 en su momento, y dado que me aparecían los enlaces simbólicos en /usr/lost+found. El problema era que no tenía los paquetes CDs de la distribución, y por supuesto no podía copiar los ficheros por red, porque casi todos los clientes usan las librerías de kerberos.

ldd /usr/bin/scp

Desde otro equipo con la misma versión de RedHat he hecho un TGZ con los directorios, y he creado un fichero ISO. Este fichero lo he usado para montar desde la iLO el CD virtual y finalmente poder acceder al TGZ y recuperar las librerías. Es bastante accidentado pero ha funcionado bien, y en 15 minutos, pero lo más importante de todo, es no olvidar que con el comando mkisofs, podemos crear nuestras isos:

mkisofs -r -J -o toni.iso ll/

en general

mkisofs -r -J -o [iso_image] [source directory]