viernes 27 de enero de 2012

Restaurar un servidor AIX con código 555 desde NIM y HMC

Bueno, dado que esta información me podrá ser de ayuda en un futuro. La dejaré para la posteridad y uso futuro. Si a alguien más le sirve, adelante, sirvase con confianza.

El problema: Led code 555 en un equipo AIX, o sea, muerto, no arranca

La solución: Entrar en modo mantenimiento, fsck'ear los filesystems y reiniciar

Lo que no les contaron: El equipo está virtualizado y se encuentra en otro lugar del mundo

Con un poco de acceso mediante HMC y un NIM server hay que hacer lo siguiente:

Desde el NIM server:

foo1:foonim:/root# lsnim -l fooserver
fooserver:
   class          = machines
   type           = standalone
   comments       = 2CPU 8GB
   connect        = nimsh
   platform       = chrp
   netboot_kernel = 64
   if1            = foo1_126-254 fooserver.bar.com 0
   cable_type1    = bnc
   mgmt_profile1  = foo-hmc-1 9 Server-9117-570-123ABCDEF
   Cstate         = in the process of booting
   prev_state     = not running
   Mstate         = currently running
   boot           = boot
   spot           = 531105spot
   cpuid          = 12345ABCDEF1
   control        = master


Lo que sigue es actualizar la MAC address en la posición que marqué en amarillo y letra roja:


foo1:foonim:/root# getmacs fooserver
Using an adapter type of "ent".
Attempting to use dsh method to collect MAC addresses.

# Node::adapter_type::interface_name::MAC_address::location::media_speed::adapter_duplex::UNUSED::install_gateway::ping_status::machine_type::netaddr::subnet_mask

fooserver::ent_v::en1::ABCDEF123456::::::::::111.222.333.444::::secondary::111.222.333.444::255.255.254.0


Finalmente hay que actualizar el nim server con la información para bootear al cliente nim desde el nim server

nim -o change -a if1="foo1_126-254 fooserver.bar.com ABCDEF123456" fooserver

El resto se los continuaré en otro post por que ya me dió hueva seguirle... xD

jueves 26 de enero de 2012

Póngale nombre a esta ley

Existen leyes famosas como la ley de la conservación de la energía, la ley de la conservación de la materia, la ley de Murphy, y muchas otras más que rigen nuestra existencia.

Pues bien, he estado meditando seriamente y se requiere un nombre para la siguiente ley.

"La puntualidad de un individuo es inversamente proporcional a la distancia de la cual se encuentre su destino"

Dicho de otra manera:
Si la puntualidad es la variable p, y la distancia que tiene que recorrer desde el punto de partida a su destino es d, entonces tenemos que.

 Distancia(d)       Puntualidad(p)
________________________________
    5km            + 20min retraso
    10km          + 15min retraso
    15km          + 10min retraso
    20km          + 5min retraso
    40km                 0min


Mis propuestas son:
  • Ley puntual del mexicano
  • Ley de puntualidad distante
  • Ley distancia-puntualidad
  • Ley invariable de impuntualidad

miércoles 25 de enero de 2012

En historias que a nadie le importan: algoritmo burbuja

Una vez, me encargaron ordenar un estante lleno de cartitas bibliográficas de una papelería por orden alfabético. Eran aproximadamente 300 cartas diferentes y pues la cosa no se veía nada bien en términos de tiempo para ordenar todo eso.

Eran mis épocas de estudiante de informática y pues creo traía frescos los algoritmos de ordenamiento. Me vino a la mente aplicar el método de la burbuja o bubble sort.

Pues tomé las cartitas y empecé de estante en estante, comparando la primera con la segunda, y así dandole sus barridas a todos los estantes.
Sorprendentemente a pesar de que el método de la burbuja no era precisamente el mas óptimo para una tarea de este tipo, era la que mejor podía aplicar pues aunque parece fácil ordenar 300 bonches cartas, se puede volver un desmadre sin un método y especialmente sin desmadrar el acomodo en los estantes; o sea, sin espacio para maniobrar.

Y así fué como hice un uso práctico de un algoritmo de ordenamiento aprendido en la escuela para una tarea trivial del mundo trivial.

martes 24 de enero de 2012

A falta de envases, cerveza de la casa

En enero de 2011 inicié ese experimento de cerveza artesanal casera, prácticamente todo ese año la pasé preparando diversas recetas, aplicando el ensayo y error para mejorar algunos aspectos de la bebida.


Me resultó relativamente sencillo conseguir envases vacíos para envasarla, aunque eventualmente por conocidos y familiares se dió que hiciera muchas por encargo. Tuve que imprimirle algo de velocidad a la producción y por consiguiente la demanda de insumos, entre ellos los envases vacíos.
Creo que ya había hablado de lo difícil que se volvió comprar envases en algún otro post, y recién envasé el día de ayer un lote de 48 medias me vino a la mente lo siguiente:

Ya no surtiré pedidos por que es un problema conseguir envases.

Así de simple. Así me doy el gusto de quedarme un cartoncito para mi, ya que casi todo lo que estuve produciendo en 2011 fué vendido o compartido con alguien más, cosa que no me desagrada, pero resulta irónico que el maestro cervecero no tenga cerveza de su producción en casa. Así que, a menos que tenga un excedente, haré la excepción de venderla.

Cervecería trollberg cierra sus puertas a la venta en miles de millones de litros al año. ¡La población mexicana colapsa!

viernes 20 de enero de 2012

Habilitar DB2 db2audit

Así se inicia el db2audit de DB2

$ db2audit describe

DB2 AUDIT SETTINGS:

Audit active: "FALSE "
Log errors: "TRUE "
Log success: "FALSE "
Log audit events: "TRUE "
Log checking events: "TRUE "
Log object maintenance events: "TRUE "
Log security maintenance events: "TRUE "
Log system administrator events: "TRUE "
Log validate events: "TRUE "
Log context events: "FALSE "
Return SQLCA on audit error: "FALSE "

$ db2audit start

AUD0000I  Operation succeeded.
itsinst1@b03cxnp01072:/opt/IBM/db2/V9.1> db2audit describe
DB2 AUDIT SETTINGS:

Audit active: "TRUE "
Log errors: "TRUE "
Log success: "FALSE "
Log audit events: "TRUE "
Log checking events: "TRUE "
Log object maintenance events: "TRUE "
Log security maintenance events: "TRUE "
Log system administrator events: "TRUE "
Log validate events: "TRUE "
Log context events: "FALSE "
Return SQLCA on audit error: "FALSE "

AUD0000I  Operation succeeded.


Obtenido de db2nerd - Audit facility para dummies

miércoles 18 de enero de 2012

Generar rpms para distinta arquitectura desde un src.rpm

rpmbuild --rebuild libxml2-2.6.26-2.1.12.el5_7.2.src.rpm (para x86_64)
Para otra arquitectura:
rpm -ivv libxml2-2.6.26-2.1.12.el5_7.2.src.rpm
y luego en la carpeta /usr/src/redhat/SPECS

 
setarch i386 rpmbuild --target i386 -bb bleh.spec


Tip gracias al patrocinio de @paganux