lunes, 16 de marzo de 2015

HOW TO: Citrix XenServer error: Storage repository unplugged.

Citrix XenServer error: Storage repository unplugged. No inician las máquinas vurtuales.  El storage repository donde se encuentran las VMs se ha desconectado.  Con estos sencillos pasos lo adjuntarmenos nuevamente:

Desde la linea de comandos de nuestra instalación Citrix XenServer, ejecutamos el comando "xe sr-list" (sin comillas) para que se muestren todos los "Storage repository" de nuestra instalación en el servidor:

En este ejemplo, el storage repository que deseo "re-montar" (ya que por un problema en mi disco duro local el mismo se deconectó) es el Local Storage con uuid 6e1168c2-b3f9-2fbc-cf5a-1bd0449c04d6 (1er resultado de la salida del comando).
Seguido, ejecutamos el comando "xe pbd-list UUID-ST" (sin comillas) donde UUID_ST será el uuid resultado del comando anterior (en mi caso xe pbd-list sr-uuid=6e1168c2-b3f9-2fbc-cf5a-1bd0449c04d6). Si queremos ver todos los pbd ejecutamos el comando "xe pbd-list".

En un Citrix XenServer, un dispositivo de bloque físico (PBD) "Physical Block Device" es un objeto de conector que representa la interfaz entre un host físico y un repositorio de almacenamiento conectado.
 

Ahora, identificados el uuid de nuestra salida del comando "xe pbd-list".  En mi caso, el uuid asociado a mi storage repository es 757674d7-76a8-d446-6489-fc5eaf2d16dc.  Este es el pbd del storage repository que quiero montar.  Para realizarlo, ejecutamos el comando "xe pbd-plug UUID-PBD-ST" (en mi caso xe pbd-plug uuid=757674d7-76a8-d446-6489-fc5eaf2d16dc):


Al finalizar la ejecución del comando (tomará algo de tiempo dependiendo del tamaño del storage repository "mientras mas tamaño del ST más tiempo tardará la ejecución del comando), podemos entonces ir a la consola de xenserver (con el comando "xsconsole" y validamos siguiendo la ruta Disks and Storage Repositories --> Current Storage Repositories --> Local storage (default) (En mi caso):

Tenemos nuevamente nuestro Storage Repository operativo. Lo que nos queda es iniciar todas las máquinas virtuales que allí se encuentren y listo.



viernes, 13 de marzo de 2015

HOW TO: Configurar servidor ssh en Microsoft Windows con Cygwin.


PASO 1: Instalar Cygwin.

Descargar desde el sitio oficial de cygwin https://cygwin.com/install.html el archivo .exe que corresponda a su arquitectura del sistema operativo (32 o 64 bits).

Crear en C la carpeta cygwin y colocar aquí el instalador descargado. En esta carpeta instalaremos el programa cygwin.  Al descargar, iniciamos la instalación:

Seleccionar la opción "Install from Internet". Pulsar Siguiente:

Seleccionar la ruta de instalación por defecto. Pulsar Siguiente:

Seleccionar la ruta de instalación por defecto. Pulsar Siguiente:

Seleccionar la configuración de internet que se ajuste a su infraestructura de trabajo. Para mi caso, seleccionaré "Direct Connection". Pulsar Siguiente:

Seleccionar algún sitio de la lista para descargas los paquetes necesarios para la instalación. Pulsar Siguiente:
 
En el campo "Search" ingresar openssh e instalar los paquetes que resulten de la busqueda (Presionar sobre la palabra "default" de la columna "New". Al pulsar acá pasará de "Default" a "Install" ). Pulsar Siguiente:

Pulsar Siguiente:




Inicio del proceso de instalación de Cygwin. Acá vemos la ventana de progreso de la instalación:

Fin de la instalación:


PASO 2: Configurar la ruta del Cygwin en el PATH de Windows:

Click derecho en Equipo -> Propiedades:

Configuración avanzada del sistema --> Opciones avanzadas --> Variables de entorno:

Buscamos y seleccionamos la palabra Path y click en botón Editar:

Al final del texto agregamos la ruta de la siguiente forma ;C:cygwin al final aceptamos todos los cambios:

PASO 3: Configurar Cygwin.
Ejecutar cygwin como administrador:

Se abrirá entonces, la consola de trabajo de Cygwin:

Crear los archivos /etc/passwd y /etc/group (si no existen). Para ello, ejecute los siguientes comandos:

mkpasswd -l > /etc/passwd
mkpasswd -l > /etc/group

Seguido,ejecutar los siguientes comandos (en orden). estos cambiaran los permisos de los archivos que vamos a usar y crearan el archivo sshd.log:

chmod +r /etc/passwd
chmod u+w /etc/passwd
chmod +r /etc/group
chmod u+w /etc/group
chmod 755 /var
touch /var/log/sshd.log
chmod 664 /var/log/sshd.log

Ejecutamos ahora el comando ssh-host-config enseguida nos creara las diversas llaves que vamos a utilizar e iniciara una serie de preguntas:

*** Query: Should StrictModes be used? (yes/no) yes yes
*** Query: Should privilege separation be used? (yes/no) yes yes
*** Query: new local account 'sshd'? (yes/no) yes
 Do you want to install sshd as a service? yes
*** Query: Enter the value of CYGWIN for the daemon: [] Presionar enter.
*** Query: Do you want to use a different name? (yes/no) no
 
Create new privileged user account 'XXX\cyg_server' (Cygwin name: 'cyg_server')? (yes/no) yes

Please enter the password: {INGRESAR ACÁ EL PASSWORD}
Reenter: {INGRESAR ACÁ EL PASSWORD}

Terminará la configuración. Ahora tenemos que iniciar el servicio con net start sshd:

Veremos ahora el servicio de Windows iniciado:


PASO 3: Probar Cygwin:
Prueba de conexión local.  Ejecutar el comando ssh localhost. Seguido, se nos pedirá el password, colocarlo y presionar enter:
Prueba de conexión remota.  Ejecutar el comando whoami para ver el usuario con el cual estamos conectados en el sistema operativo:

Desde una consola remota ejecutamos: ssh NOMBRE-USUARIO@IP (ejemplo: ssh MBFILESERVER+Administrador@192.168.8.246) y presionamos enter. Aceptamos la autenticidad del host e ingresar luego el password del equipo remoto cuando se nos solicite:

PASO 4: Crear y configurar un usuario para permitir conexiones ssh:

Crear un usuario el el servidor con Sistema Operativo Windows (para este ejemplo Windows Server 2008):

Inicio -> Ejecutar -> %windir%\system32\compmgmt.msc

En el Administrador de equipos seleccionar Usuarios y grupos locales -> Usuarios. Click derecho y seleccionar "Usuario nuevo":

 Ingresar los datos del usuario. Pulsar botón crear para finalizar:
Usuario creado:

Crear el usuario en cygwin. Ejecutar los siguientes comandos: 
  • cd /etc
  • cp passwd passwd_backup (hago una copia del archivo passwd).
  • mkpasswd.exe -l > passwd (genero el nuevo archivo passwd con los usuarios creados en Windows).
  • cat /etc/passwd (para ver cual es el nombre del usuario a crear, en mi caso MBFILESERVER+sshuser es el usuario a crear). 
  • net stop sshd (detengo el servicio ssh).
  • net start sshd (inicio el servicio ssh).
 
Iniciar sesión local ssh con el usuario creado.  Esto nos creará en forma automática los archivos dentro de /home/usuario:

Nuevamente, desde una consola remota y con el nuevo usuario creado ejecutamos ssh nombre-usuario@ip
(ejemplo: MBFILESERVER+Administrador@192.168.8.246) y presionamos enter. Aceptamos la autenticidad del host e ingresar luego el password del equipo remoto cuando se nos solicite:

Ya estamos entonces vía ssh, en el servidor remoto que acabamos de configurar.

jueves, 12 de marzo de 2015

HOW TO: Solución al error al intentar ejecutar smitty en AIX 6.1: "Unable to create temp file."

Si al intentar ingresar ejecutar el comando smitty en AIX (para este ejemplo, AIX 6.1), aparece el error "Unable to create temp file.", lo podemos resolver con estos sencillos pasos:

Este error se refiere a que posiblemente tenemos problemas con escribir en el directorio /tmp, bien sea porque el filesystem donde se encuentra la partición está lleno o porque tenemos un error adicional que podemos chequear y solucionar ejecutando un chequeo a la partición donde se encuentra el directorio /tmp.  En todo caso, los pasos a realizar a continuación:

1. Verificar si tenemos espacio suficiente en la partición donde se encuentra /tmp.  Ejecuntando el comando df (como root):

Si el directorio se encuentra full, podemos identificar algún programa de nuestro sistema operativo que esté utilizando el directorio /tmp tomando de acá archivos temporales, detenerlo, borrar algunos archivos del /tmp y volver a intentar ejecutar el comando smitty.  De igual manera, quedaría subir nuevamente el servicio que previamente hemos detenido.  

Nota: Si intentamos borrar de /tmp algún archivo que esté usándose en nuestro S.O, posiblemente no lo podamos borrar.

Por el contrario, si tenemos algo de espacio libre en /tmp y persiste el error, pasemos al paso 2.
 

2. Validar que podemos escribir y/o borrar en el directorio.  Intentemos entonces crear un archivo dentro de /tmp (podemos utilizar el comando touch /tmp/nombre_archivo).  En este punto, con espacio suficiente para escribir o borrar e intentando escribir en /tmp algún archivo de prueba recibimos algún mensaje de que no podemos realizar la operación (acá les muestro un ejemplo al intentar borrar un archivo llamado "sdcdbg.151" que se encontraba en /tmp), procedemos a hacer un chequeo de la partición donde se encuentra el directorio /tmp. Para realizarlo, pasemos al paso 3.

3. Chequear la partición donde está /etc.
3.1. Con el comando mount podemos ver el dispositivo y el punto de montaje que coresponde a /tmp. En mi caso, existe un filesystem exclusivo para el punto de montaje /tmp (filesystem /dev/hd3 montado sobre /tmp):

3.2. Identificado el punto de montaje que corresponde a /tmp, procedemos a desmontarlo. Podemos utilizar el comando mount -f como se muestra a continuación.
Para verificar que el filesystem /tmp se haya desmontado en forma satisfactoria ejecutamos nuevamente el comando df; no deberá aparecer el punto de montaje correspondiente a /tmp:

3.3. Con el volumen desmontado, procedemos a ejecutar el comando fsck /tmp.  En este ejemplo, mi volumen /dev/hd3 que corresponde al punto de montaje /tmp tenía un error; en la Phase 4 "File system inode map is corrupt; FIX?" y en la Phase 5 "Superblock is marked dirty; FIX?  ingresamos "y" para confirmar el chequeo del filesystem.  Al finalizar el proceso, se nos indica que el todas las inconsistencias encontradas han sido reparadas:

3.4. Para finalizar, volvemos a montar el volumen desmontado con el comando mount /filesystem /punto-montaje (ejemplo mount /dev/hd3 /tmp).  Para verificar que el filesystem /tmp se haya montado en forma satisfactoria ejecutamos nuevamente el comando df; deberá aparecer el punto de montaje correspondiente a /tmp:

Listo, ahora podemos ejecutar el comando smitty sin inconvenientes: