linux

Arreglar un raid por software degradado

Arreglar un raid por software degradado

Introducción

En este artículo vamos a explicar como cambiar un disco duro que esta fallando en un raid por software hecho con mdadm.

Procedimiento

Cuando tenemos un raid degradado nos podemos encontrar con dos situaciones dependiendo del estado del disco duro que esta dando problemas:

  • El disco duro esta completamente roto y no lo detecta el ordenador.
  • El disco duro falla pero el ordenador lo detecta.

Si nuestro caso es que aun lo detecta, antes de quitar el viejo disco duro tenemos que sacarlo del raid.

Lo primero será identificar cual es disco. Para ello nos pueden ser útiles los siguientes comandos:

  • Para ver los discos duros que detecta nuestro ordenador lo podemos saber con el siguiente comando:
>> ls -l /dev/sd?
  • Para saber el número serie de un disco duro:
>> sudo apt-get install smartmontools
>> sudo smartctl -i /dev/DISPOSITIVO
  • Ver los miembros del raid y su estado:
>> sudo mdadm -detail /dev/mdX

Una vez que ya sabemos cual es el dispositivo que está fallando, lo eliminamos del raid ejecutando los siguientes comandos:

>> sudo mdadm --manage /dev/mdX --fail /dev/DISPOSITIVO
>> sudo mdadm --manage /dev/mdX --remove /dev/DISPOSITIVO

Para añadir un nuevo dispositivo al raid por software, tendremos que crear una partición de igual o mayor tamaño que las demás que están añadidas al raid. En otro artículo os explico como hacer una partición del tamaño exacto.

Una vez creada la partición la añadimos con el siguiente comando:

>> sudo madam --manage /dev/mdX --add /dev/DISPOSITIVO

Comprobamos como va el proceso de reconstrucción con este otro comando:

>> sudo mdadm --detail /dev/mdX

Esperamos a que termine de reconstruirse el raid.

Si en este raid tenémos instalado el sistema operativo, tendremos que instalar nuestro cargador de arranque en el nuevo disco duro y tambien activar el bit de arranque que corresponda con el tipo de tabla de particiones que tenga. Si usamos Grub lo haremos con el siguiente comando (Cuidado con el comando "set" ya que se indica el número de la partición, si solo hay una será el 1 pero si hay más tendremos qeu poner el correcto):

>> parted /dev/DISPOSITIVO
>> set 1 bios_grub on
>> quit
>> sudo grub-install /dev/DISPOSITIVO

Ya tenemos nuestro raid preparado ante cualquier fallo.

 

temas: 

Instalar Fastboot en Ubuntu

Fastboot

Introducción

Fastboot es una herramienta que nos permite interaccionar con nuestro teléfono Android cuando este se encuentra en un estado en el que no se ha inciiado el sistema operativo (Por ejemplo es util para instalar una rom).

Instalación

Por suerte el programa está en el repositorio de Ubuntu, por lo que es tan facil como instalar el paquete de nombre fastboot desde nuestro gestor de paquetes favorito o a través del siguiente comando:

>> sudo apt-get install fastboot

Configuración

Puede ser que para que el programa Fastboot nos detecte el movil tengamos que hacer unas configuraciones. Para comprobar que nos lo detecte podemos ejecutar el siguiente comando:

>> fastboot devices

Si no lo detecta tenemos que encontrar el identificador del fabricante del movil. Lo primero que tendremos que hacer es conectar nuestro teléfono movil al ordenador con un cable usb. Ahora miraremos el listado de dispositivos conectados por usb con el siguiente comando y buscaremos el teléfono (Si no lo encontramos podemos desconectarlo, mirar los que hay, conectarlo y mirar cual es el nuevo):

>> lsusb
Bus 001 Device 010: ID 18d1:d003 Google Inc.

Una vez lo sabemos, tenemos que editar el fichero /etc/udev/rules.d/99-android.rules (o crearlo si no existe) y añadimos la siguiente línea, sustituyendo las XXXX por el identificador del fabricante (Por ejemplo para un dispositivo usb de id 18d1:d003 será lo que hay después de los dos puntos: d003):

# Mywigo Excite GIII
SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0666", GROUP="plugdev"

Reiniciaremos el servicio udev (con el teléfono desconectado del ordenador) con el siguiente comando:

>> sudo service udev restart

Ahora ya podremos conectar el teléfono y Fastboot nos lo detectará.

Listado de fabricantes

Listado de varios fabricandes de móviles y tablets Android:

#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev"
#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666", GROUP="plugdev"
#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666", GROUP="plugdev"
#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666", GROUP="plugdev"
#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666", GROUP="plugdev"
#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666", GROUP="plugdev"
#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666", GROUP="plugdev"
#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666", GROUP="plugdev"
#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"
#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666", GROUP="plugdev"

 

 

Instalar Ubuntu Tweak

Ubuntu Tweak

Introducción

Ubuntu Tweak es un programa que permite a cualquiera configurar Ubuntu a su gusto. Nos permite configurar una multitud de parámetros del escritorio que por defecto en ningún lado se pueden cambiar. En este artículo os voy a explicar como instalar esta magnífica herramienta.

Proceso

Lo primero de todo es añadir el repositorio oficial de Tweak para Ubuntu ejecutando los siguientes comandos:

>> sudo add-apt-repository ppa:tualatrix/ppa
>> sudo apt-get update

Y ahora instalamos el paquete ubuntu-tweak desde nuestro gestor de paquetes favoritos o con el siguiente comando:

>> sudo apt-get install ubuntu-tweak

Ahora ya podremos empezar a configurar todo a nuestro gusto.

Mis recomendaciones

Poco a poco iré poniendo que parámetros suelo modificar yo, por si os resultan interesante a alguno.

 

Actualizar automáticamente la ip de los dominios que tengamos en DynDns

DynDns

Introducción

Atención!!!! Dyndns ya no ofrece servicios gratuitos. Ahora recomiendo usar No-IP.

Para acceder a cualquier servicio de una máquina remotamente necesitamos saber su ip o un nombre de dominio que apunte a su ip. El problema está en que hay casos en que la ip de nuestro equipo puede cambiar a lo largo del tiempo (por ejemplo la ip que nos asigna nuestro proveedor de adsl). Por suerte existen los DNS dinámicos que actualizan la ip que apunta un dominio en tiempo real.

Hoy en día hay varias webs que te dan un subdominio que lo puedes actualizar dinámicamente. La que yo uso se llama DnyDns. El problema esta ahora en actualizar esta información automáticamente. Hasta ahora tenía suerte y podía configurar mi router para que hiciera esto, pero desde hace un tiempo ha dejado de funcionar. Pero no es la única manera de hacerlo y DynDns proporciona clientes que hacen esto en la mayoría de sistemas operativos. En este artículo os voy a explicar como hacer esto en una máquina con linux.

Instalación

Vamos a instalar el cliente que se conectará a los servidores de DynDns para decir cual es nuestra ip y así los dominios que tengamos apuntarán a nuestrá máquina. Instalamos el paquete de nombre "ddclient" a través de nuestro gestor de paquetes favoritos o ejecutando el siguiente comando:

>> sudo apt-get install ddclient

En la instalación nos preguntará diversos datos:

  • En la primera nos pedirá que seleccionemos el servicio de dns dinámico que utilizamos. En nuestro caso seleccionaremos "www.dyndns.org" y le damos a "Aceptar".
  • En la siguiente pantalla nos pedirá el nombre de usuario de la cuenta que tenemos en este servicio. Lo escribimos y le damos a "Aceptar".
  • Luego nos pedirá la contraseña. La ponemos y le damos al botón "Aceptar".
  • Ahora nos preguntará si queremos usar la interfaz web de DynDns para saber nuestra ip. Le decimos que "Si".
  • En la siguiente pantalla nos preguntará si queremos añadir los dominios que queremos actualizar, eligiéndolos de los de nuestra cuenta en DynDns o escribiéndolos manuálmente. Elegimos "Manualmente" y le damos a "Aceptar".
  • Escribimos los dominios que queramos actualizar separándolos por comas. (Por ejemplo: manuel.dyndns.org,maria.dyndns.org). Una vez escritos le damos al botón "Aceptar".

Y ya lo tenemos configurado. A partir de ahora los dominios que hayamos indicado apuntaran siempre a nuestra máquina.

Configurar Thunderbird

Configurar Thunderbird

Introducción

En este artículo iré recopilando todas las cosas que hago para configurar el cliente de correo electrónico Thunderbird a mi gusto. Además de añadirle las funcionalidades que más útiles veo a través de sus extensiones.

Configuración

Configuración general

Vamos al menú "Editar" y entramos en la opción "Preferencias". Le damos al icono "Redacción":

  • En la pestaña "Destinatario", desactivamos la opción "Añadir automáticamente las direcciones de correo saliente a mi(s)".
  • En la pestaña "Ortografía" en el campo "Idioma" seleccionamos "Español/España".

Por último le damos al botón "Cerrar".

Añadir una cuenta de email

Vamos a ver como añadir una cuenta de correo electrónico. Para ello tendremos que seguir los siguientes pasos:

  • Vamos al menú "Archivo", luego en "Nuevo" y elegimos "Cuenta de correo existente ...".
  • Se abrirá una ventana en la que se nos pedirá el nombre (que se utilizará en el campo "Remitente" cuando enviemos un correo), la dirección de email y la contraseña de la cuenta. Una vez rellenemos todo le damos al botón "Continuar".
  • Thunderbird buscará la configuración para el servidor de correo de nuestro email en su base de datos. Si nos la detecta no tendremos que hacer nada más, sino tendremos que darle al botón "Config.manual" y poner los datos a mano. Si ya tenemos la configuración puesta, seleccionamos la opción "IMAP" (para que se mantengan los correos tanto en el servidor como en nuestra máquina) y le damos al botón "Hecho".

Ya hemos añadido la cuenta y ahora pasamos a configurarla:

  • Vamos al menú "Editar" y seleccionamos "Configuración de las cuentas ...".
  • En la configuración "Copias y carpetas" de la cuenta que hemos creado. Hacemos las siguientes acciones en la sección "Al enviar mensajes, automáticamente":
    • Activar la opción "Bcc a estas direcciones de correo:" y ponemos el email de la cuenta.
    • Activar la opción "Colocar respuestas en la carpeta en la carpeta del mensaje al que se responde".
  • En la configuración "Sincronización y almacenamiento" de la cuenta que hemos creado. En la sección "Sincronización de mensajes" desactivamos la opción "Conservar mensajes de esta cuenta en este equipo".

Con esta configuración tendremos en las conversaciones que tengamos no solo los emails que envían los demás, sino también los nuestros y así nos será más fácil seguir las conversaciones.

Configuración de calendarios

Thunderbird además de ser un cliente de correo, tiene extensiones que amplían su funcionalidad y una de las que más útiles veo es la posibilidad de añadir la gestión de calendarios a este. Vamos a ver como añadirla.

Lo primero que tenemos que hacer es instalar estas dos extensiones:

  • Provider for Google Calendar: Extensión que nos permite acceder a los calendarios que tengamos en nuestra cuenta de Google a través de su servicio "Google Calendar".
  • Lightning: Extensión que añade la posibilidad de ver y usar calendarios en Thunderbird.

Una vez tenemos estas dos extensiones instaladas pasamos a configurarlas.

Vamos al menú "Editar" y entramos en la opción "Preferencias". Le damos al icono "Calendarios" y luego a la pestaña "Vistas". En la sección "General" ponemos "Comenzar la semana en:" con el valor "Lunes". Por último le damos al botón "Cerrar".

Añadir un calendario

  • En el menú "Eventos y tareas" le damos a la opción "Calendario" para que se abra la pestaña con el calendario.
  • Una vez abierta, en la columna de la izquierda nos aparecerá una lista de nuestros calendarios (solo aparecerá el de por defecto). En el fondo blanco de esta lista, le damos al botón derecho del ratón y elegimos la opción "Nuevo calendario ...".
  • Se nos abrirá una ventana preguntándonos donde estará el calendario que vamos a añadir. Seleccionamos "En la red" y le damos al botón "Siguiente".
  • Antes de seguir tendremos que ir a la página web de Google Calendar para coger la dirección del calendario que vamos a añadir:
    • Abrimos un navegador web y vamos a la página https://www.google.com/calendar.
    • Nos autentificamos con nuestra cuenta de Google si aún no lo estábamos.
    • Movemos el ratón encima de uno de los calendarios de nuestra cuenta y le damos al botón de opciones que habrá aparecido. Entre las opciones que nos da elegimos "Configuración del calendario".
    • Se mostrará la página de configuración de ese calendario. Nos movemos a la sección "Dirección del calendario" y copiamos la dirección del icono que pone "xml" (botón derecho sobre el icono y "Copiar la ruta del enlace").
    • Nos guardamos bien esta dirección ya que la utilizaremos en el siguiente apartado.
    • Ya podemos salir del navegador web.
  • Volvemos a la ventana en que nos quedamos y donde se muestran los diferentes formatos. Elegimos "Google Calendar" y en el campo "Lugar" ponemos la dirección que nos guardamos en el paso anterior. Marcamos la opción "Compatible con el modo sin conexión" por si algún día lo necesitamos y le damos al botón "Siguiente".
  • Ahora nos pedirá que nos autentifiquemos con nuestra cuenta de Google para poder acceder a nuestro calendario. Metemos nuestro email (incluido @gmail.com), contraseña y marcamos la opción "Use el administrador de contraseñas para recordar esta contraseña" para que no nos la este preguntando todo el rato. Por último le damos al botón "Aceptar".
  • La ultima cosa que nos preguntará es el nombre y color con el que queremos que nos aparezca en Thunderbird. Ponemos el que queramos y le damos al botón "Siguiente".
  • Hemos terminado el proceso y le damos al botón "Finalizar" para que se cierre la ventana.

Optimizar Unity

Optimizar Unity

Introducción

Ubuntu es el sistema operativo basado en linux más usado del momento y hace un tiempo adoptó Unity como sistema de escritorio. Unity no es nada ligero (no se si será porque el proyecto es muy joven) y para equipos no muy potentes de deja notar.

En este artículo os voy a explicar que podemos hacer para optimizar Unity que funcione mejor en equipos no muy potentes.

Proceso

Lo primero que tenemos que hacer es instalar el programa "Administrador de Opciones CompizConfig" que nos permitirá configurar parámetros de las opciones gráficas así como activar y desactivar plugins de estos. Para ello tendremos que instalar el paquete compizconfig-settings-manager desde nuestro gestor de paquetes preferido o si lo queremos, ejecutando el siguiente comando:

>> sudo apt-get install compizconfig-settings-manager

Una vez lo tenemos instalado abrimos el programa y hacemos los siguientes pasos.

En la sección "General" entramos en el módulo "OpenGL". En la pestaña "General", la opción "Filtro de Textura" la ponemos en "Rápida".

En la sección "Administrador de ventanas" desactivamos los siguientes módulos:

  • Grid: este plugin lo que hace es que cuando mueves una ventana a la derecha o a la izquierda del escritorio, se pone con el tamaño de la mitad de la pantalla en el lado hacia donde la has movido.

En la sección de "Efectos" desactivamos los siguientes módulos:

  • Animations: Añade efectos
  • Desvaneces ventanas: Pone un efecto cuando descaparece una ventana

Si conocéis más acciones que se puedan hacer para optimizar su funcionamiento y que vaya más fluido, no dudéis en comentarlas y las añadiré al artículo.

Comprobar una base de datos oracle desde nagios

Comprobar una base de datos oracle desde nagios

[toc]

Introducción

Nagios es un sistema de monitorización de equipos y servicios. Si usamos este software de monitorización y tenemos un servidor de base de datos Oracle, podemos monitorizarla a través de un plugin que se encarga de esto.

Para hacer esto necesitaremos tener instalado un Nagios y el comando sqlplus. Si no tenémos este último tendremos que bajárnoslo de la web de Oracle http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html y e instalarlo /programas/instantclient_11_2.

Instalación

Lo primero será descargamos el plugin que se comunicará con Oracle de esta web: http://labs.consol.de/nagios/check_oracle_health, lo descomprimimos, lo compilamos y lo ponemos en la carpeta /usr/lib/nagios/plugins/check_oracle_health:

>> wget wget http://labs.consol.de/wp-content/uploads/2011/09/check_oracle_health-1.7.3.tar.gz
>> tar -zxvf check_oracle_health-1.7.3.tar.gz
>> cd check_oracle_health-1.7.3
>> ./configure
>> make
>> cd plugins-scripts/check_oracle_health /usr/lib/nagios/plugins/

El plugin nos permite comprobar una multitud de parámetros y cual queremos comprobar se lo indicamos en el parámetro --mode (Una lista de todas cosas que podemos comprobar la podéis encontrar en la web del plugin: http://labs.consol.de/nagios/check_oracle_health/). En nuestro caso, solo queremos comprobar que el servidor de base de datos de Oracle esta vivo. Para ello nos bastará con el modo tnsping.

En la carpeta /etc/nagios-plugins/config creamos un fichero de nombre oracle.cfg en el que definiremos los comandos de Nagios para comprobar el Oracle. El fichero tendrá el siguiente contenido (cuidado con la ruta de instalación de sqlplus que indicamos en la variable ORACLE_HOME, porque si lo tenéis instalado en otra ruta tendréis que cambiarlo):

# Comprobamos el estado del oracle
define command{
    command_name check_oracle_instant
    command_line $USER1$/check_oracle_health --user $ARG3$ --password $ARG4$ --method sqlplus --connect '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$HOSTADDRESS$)(PORT=$ARG1$))(CONNECT_DATA=(SID=$ARG2$)))' --mode tnsping --environment ORACLE_HOME=/programas/instantclient_11_2
}

Uso

Una vez que ya tenemos instalado el plugin que nos permite comprobar una base de datos Oracle, ya podemos definir un servicio de Nagios para comprobarlo:

define service{
        host_name               YOUR_SERVER
        service_description     ORACLE: check_login_health
        check_command           check_oracle_instant!1521!SID!USERNAME!PASSWORD
        max_check_attempts	5
	check_interval		5
	retry_interval		3
	check_period		24x7
	notification_interval	30
	notification_period	24x7
	notification_options	w,c,r
	contact_groups		USER
}

Por último, reiniciamos nagios para que coja la nueva configuración:

>> sudo /etc/init.d/nagios3 restart

Y ya podemos ver el estado del servicio en nuestro Nagios.

Borrado de archivos de forma segura

Borrado de archivos de forma segura

Introducción

En ocasiones en el ordenador tenemos archivos con información delicada (facturas, dni escaneados, contratos, ...) y no pensamos que aunque los borremos, cualquiera que tenga acceso al mismo ordenador puede recuperarlos. Esto es posible porque cuando se borra un fichero, no se escribe encima del contenido del fichero, sino que lo que se hace es quitarlo de la lista de archivos, dejando el contenido de él dentro del espacio libre del disco duro. De esta manera si un programa empieza a leer los datos del espacio libre puede encontrar la información que nosotros creemos que habíamos eliminado.

Por suerte hoy en día existen programas que intentan impedir esto. Lo que suelen hacer es escribir encima del contenido del fichero a borrar datos aleatorios varias veces para asegurarse que ya nadie lo podrá recuperar.

Linux

En linux disponemos de varias herramientas para esto. Yo os voy a enseñar a usar una de estas herramientas de borrado seguro, que aunque solo esta en consola es la que más me ha convencido. Se llama secure-delete.

Lo primero que tendremos que hacer es instalar el paquete de nombre secure-delete desde nuestro gestor de paquetes favoritos o ejecutando el siguiente comando:

>> sudo apt-get install secure-delete

Una vez lo tenemos instalado, para borrar de forma segura un fichero de nombre ejemplo.txt, tendremos que ejecutar el siguiente comando:

>> srm ejemplo.txt

Si por el contrario en vez de borrar un fichero, queremos borrar de forma segura todo lo que tenemos en una carpeta de nombre micarpeta, tendremos que ejecutar el siguiente comando:

 >> srm -r micarpeta

 

temas: 

Pidgin

Pidgin (Programa de mensajería multiplataforma)

Introducción

Pidgin es un cliente de mensajería multiprotocolo (puedes configurar en el múltiples cuentas de mensajería instantánea como MSN, Google Talk, AIM, XMPP, ...) y multiplataforma (esta disponible para linux y windows) el cual recomiendo usar. En este artículo os voy a comentar como instalarlo y configurarlo según mis recomendaciones. Espero que os sirva de guía.

Instalación

Este programa esta en los repositorios de la mayoría de las distribuciones de linux. Por lo tanto solo tendremos que decir que nos lo instale con el siguiente comando o con vuestro gestor de paquetes preferidos.

>> sudo apt-get install pidgin

Plugins

El programa permite ampliar su funcionalidad a través de plugins. Los que yo recomiendo usar son los siguientes:

  • Microblog Purple: te permite configurar tu cuenta de twitter para recibir y enviar las notificaciones a través de este programa.
  • Histórico: muestra en la ventana de conversación sombreada la anterior que tuvimos con ese contacto.

Configuración

Ahora os podré como yo lo suelo configurar a mi gusto.

  • En el menú Herramientas le damos a Preferencias.
    • En la sección Interfaz:
      • En el apartado Icono del área de notificación del sistema en el campo Mostrar icono del área de notificación del sistema ponemos Siempre para que siempre nos muestre el icono del programa al lado del reloj.
    • En la sección Registro :
      • Marcamos Registrar todos los mensajes instantáneos, Registrar todas las charlas y Registrar todos los cambios de estado en el registro del sistema para guardar nuestras conversaciones y poder consultarlas después.
    • En la sección de Sonidos, en el apartado de Eventos de sonido desmarco todo menos las siguientes opciones:
      • Se recibe un mensaje que comienza una conversación
      • Alguien dice su nombre en el chat
      • Recibida atención
    • En la sección Estado / Inactivo, en el apartado Está inactivo :
      • En el campo Mostrar el tiempo de inactividad seleccionamos Nunca para que no muestre información de cuanto tiempo hace que hemos estado en el ordenador.
    • Desactivamos la opción de Cambiar el estado cuando esté inactivo para que no nos cambie el estado.
  • Activamos el plugin Historico: vamos al menú Herramientas, luego en Complementos, lo buscamos en la lista y lo activamos.

Copia de seguridad

Para hacer una copia de seguridad tendremos que guardar los siguientes datos:

  • Guardar el historial de las conversaciones: se encuentra en la carpeta /home/TU_USUARIO/.purple/logs/

Crear bugs en bugzilla a partir de un email

Crear bugs en bugzilla a partir de un email

Introducción

Bugzilla ofrece la posibilidad de poder crear bugs a partir de emails que recibe a través de un ejecutable python que tiene email_in.pl. El email tiene que tener un formato especifico para que bugzilla lo entienda y pueda crear el bug correctamente.

Configuración

Requisitos

Lo primero que tenemos que comprobar es si tenemos todos los módulos de perl necesarios para que funcione. Para comprobarlo tendremos que ejecutar el siguiente comando:

>> ./checksetup.pl --check-modules

Los módulos de perl que he detectado que necesita son los siguientes (si me dejo alguno me lo decís y lo añado)

  • Email-Reply
  • Class-C3
  • Email-MIME-Attachment-Stripper

Si os falta alguno tendreis que instalarlos ya sea con el instalador de perl o si existen los paquetes de estos módulos en el repositorio de vuestra distribución de linux, hacerlo desde ahí.

También necesitaremos un servidor de correo electrónico para que reciba los emails que luego redirigirá a bugzilla. (En esta guía no vamos a entrar a explicar como montar un servidor de correo electrónico, por lo que damos por hecho que ya tenéis un servidor de correo electrónico instalado en la misma máquina que el bugzilla)

Configurar el servidor de email

Para conectar el servidor de correo electrónico con el bugzilla tenemos que redirigir los emails a una cuenta que elijamos (por ejemplo: bug-submit@TU_DOMINIO.COM) al ejecutable de bugzilla que tratará estos emails.

Para ello, en el archivo /etc/aliases añadimos la siguiente línea que indica que los emails recibidos por la cuenta bug-submit@TU_DOMINIO.COM se los envíe al ejecutable email_in.pl de bugzilla para que cree el bug:

# Test para crear un bug desde email en bugzilla
bug-submit: "|/PATH_A_TU_BUGZILLA/email_in.pl -vvv 2>/var/log/bugzilla_emailin.log"

Configurar Bugzilla

Entramos en la Administración de bugzilla, luego le damos a Parámetros y ahora le damos a la sección Correo electrónico (http://yesa.cps.unizar.es/bugzilla4/editparams.cgi?section=mta) y en el campo mailfrom ponemos bug-submit@TU_DOMINIO.COM. Le damos al botón Guardar Cambios y ya esta.

Funcionamiento

Lo primero es simular que recibimos un email pasándole un fichero que describe un email por la entrada al ejecutable que lee los emails de bugzilla.

Guardamos en un fichero (por ejemplo emailTest.txt) un ejemplo de email (acordaros de cambiar en email de destino bug-submit@TU_DOMINIO.COM por la dirección en la que escuche bugzilla, el email del que lo envía USUARIO@SU_DOMINIO.COM por una que corresponda a una cuenta del bugzilla y por último cambiar el producto y componente por uno de vuestro bugzilla donde queráis crear el bug):

Delivered-To:  bug-submit@TU_DOMINIO.COM
Received: by 10.68.47.230 with SMTP id g6cs99712pbn;
        Mon, 4 Jul 2011 02:12:03 -0700 (PDT)
Received: by 10.227.162.129 with SMTP id v1mr3783487wbx.63.1309770722829;
        Mon, 04 Jul 2011 02:12:02 -0700 (PDT)
Return-Path: <USUARIO@SU_DOMINIO.COM>
Received: from isuela.unizar.es (isuela.unizar.es [155.210.1.53])
        by mx.google.com with ESMTPS id ek19si11909570wbb.69.2011.07.04.02.12.02
        (version=TLSv1/SSLv3 cipher=OTHER);
        Mon, 04 Jul 2011 02:12:02 -0700 (PDT)
Received-SPF: pass (google.com: domain of USUARIO@SU_DOMINIO.COM designates 155.210.1.53 as permitted sender) client-ip=155.210.1.53;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of USUARIO@SU_DOMINIO.COM designates 155.210.1.53 as permitted sender) smtp.mail=USUARIO@SU_DOMINIO.COM
Received: from queiles.unizar.es (hordedb.unizar.es [155.210.1.33])
    by isuela.unizar.es (8.13.8/8.13.8/Debian-3) with SMTP id p649BxVm017299
    for bug-submit@TU_DOMINIO.COM; Mon, 4 Jul 2011 11:11:59 +0200
Received: from huecha.unizar.es (huecha.unizar.es [155.210.1.51])
    by queiles.unizar.es (8.13.8/8.13.8/Debian-3) with ESMTP id p649C1tH025070
    (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
    for <bug-submit@TU_DOMINIO.COM>; Mon, 4 Jul 2011 11:12:01 +0200
Received: from [155.210.155.156] (filemonpi2.cps.unizar.es [155.210.155.152])
    (authenticated bits=0)
    by huecha.unizar.es (8.13.8/8.13.8/Debian-3) with ESMTP id p649BurT031554;
    Mon, 4 Jul 2011 11:11:59 +0200
Message-ID: <4E1183DB.8050204@unizar.es>
Date: Mon, 04 Jul 2011 11:11:55 +0200
From: =?ISO-8859-1?Q?M=AA_Jos=E9_P=E9rez?= <USUARIO@SU_DOMINIO.COM>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11
MIME-Version: 1.0
To: =?ISO-8859-1?Q?bugzilla <bug-submit@TU_DOMINIO.COM>
Subject: Prueba
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Mail-Scanned: Criba 2.0 + Clamd & Bogofilter

@product TU_PRODUCTO
@component TU_COMPONENTE
@summary Prueba de bug
@version unspecified
@op_sys Linux
@platform PC

Descripcion del bug

Se lo pasamos al ejecutable de bugzilla que se encarga de reciir los emails para crear los bugs:

>> ./email_in.pl < emailTest.txt

Si todo ha funcionado se habrá creado el bug en el bugzilla a partir del email.

Ahora lo siguiente será probar que enviando un email desde una dirección de email que corresponda con una cuenta del bugzilla. Si sigue funcionando ya tenemos todo hecho.

Para saber como se llaman los campos que tenemos que poner en el email para crear el bug con los datos que queramos podemos mirar la documentación en esta url: http://www.bugzilla.org/docs/4.0/en/html/api/Bugzilla/WebService/Bug.htm...

Errores

Error Can't locate Email/Reply.pm

Al ejecutar el programa que lee los emails que recibe bugzilla, obtenemos el siguiente error:

>> ./email_in.pl --help
Can't locate Email/Reply.pm
...

Solución

El problema esta en que falta el módulo Email-Reply de perl. Para instalarlo tendremos que instalar el paquete de nombre perl-Email-Reply a través de nuestro gestor de paquetes favorito o ejecutando el siguiente comando:

>> sudo yum install perl-Email-Reply

Error Can't locate Algorithm/C3.pm

Al ejecutar el programa que lee los emails que recibe bugzilla, obtenemos el siguiente error:

>> ./email_in.pl --help
Can't locate Algorithm/C3.pm in @INC (@INC contains: . lib/i386-linux-thread-multi lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at lib/Class/C3.pm line 25.
BEGIN failed--compilation aborted at lib/Class/C3.pm line 29.
Compilation failed in require at lib/MRO/Compat.pm line 27.
BEGIN failed--compilation aborted at lib/MRO/Compat.pm line 44.
Compilation failed in require at lib/Email/Abstract.pm line 7.
BEGIN failed--compilation aborted at lib/Email/Abstract.pm line 7.
Compilation failed in require at lib/Email/Reply.pm line 4.
BEGIN failed--compilation aborted at lib/Email/Reply.pm line 4.
Compilation failed in require at ./email_in.pl line 39.
BEGIN failed--compilation aborted at ./email_in.pl line 39.
...

Solución

El problema esta en que falta el módulo Class-C3 de perl. Para instalarlo tendremos que instalar el paquete de nombre perl-Class-C3 a través de nuestro gestor de paquetes favorito o ejecutando el siguiente comando:

>> yum install perl-Class-C3

Error Can't locate Email/MIME/Attachment/Stripper.pm

Al ejecutar el programa que lee los emails que recibe bugzilla, obtenemos el siguiente error:

>> ./email_in.pl --help
Can't locate Email/MIME/Attachment/Stripper.pm in @INC
...

Solución

El problema esta en que falta el módulo Email-MIME-Attachment-Stripper de perl. Para instalarlo tendremos que instalar el paquete de nombre perl-Email-MIME-Attachment-Stripper a través de nuestro gestor de paquetes favorito o ejecutando el siguiente comando:

>> yum install perl-Email-MIME-Attachment-Stripper

Error Service unavailable

Al enviar un email a la dirección que lee bugzilla, nos muestra el siguiente error en el log:

>> tail -100 /var/log/maillog
...
Jul  6 09:35:33 ia3 smrsh: uid 8: attempt to use "email_in.pl -vvv" (stat failed)
Jul  6 09:35:33 ia3 sendmail[15394]: p667ZX5R015393: to="|/var/www/bugzilla/email_in.pl -vvv", ctladdr=<bug-submit@dominio.com> (8/0), delay=00:00:00, xdelay=00:00:00, mailer=prog, pri=30703, dsn=5.0.0, stat=Service unavailable
Jul  6 09:35:33 ia3 sendmail[15394]: p667ZX5R015393: p667ZX5R015394: DSN: Service unavailable
...

Solución

Este problema puede deberse a que el email se envía desde una cuenta de email que no pertenece a ninguna cuenta del bugzilla. Por lo que tendremos que enviar el email con una dirección email que corresponda a una cuenta de bugzilla.