17:29 17:29 17:29

Agregar un nuevo disco a maquina virtual Xen

Published by charlie under Articulos Tecnicos

Existen múltiples tipos de discos que pueden ser utilizados (o emulados) por Xen. En nuestro caso utilizaremos discos virtuales que escriben a una imagen de archivo en el sistema de archivo del host.

La receta es:

  • Crear una imagen que se utilizara como disco virtual en la maquina virtual de Xen
  • dd if=/dev/zero of=/ruta/al/directorio/con/imagenes bs=1M count=size_in_MB
  • Entrar al hypervisor y modificar configuraciones de la maquina virtual a la que se requiere agregar el disco, para ello:
    • Agregar dispositivo Storage Tipo Virtual Disk
  • Arrancar la maquina virtual. El nuevo disco debiera aparecer en /dev/xvdX
  • Con fdisk /dev/xvdX crear una particion que utilice todo el disco y que este en formato Linux LVM (tipo 8e)
  • Con vgdisplay se muestran los volumenes. Es importante tener claro el volumen que se quiere extender para los comandos que se ejecutarán en los próximos pasos
  • Crear volumen fisico en la particion del nuevo disco
    pvcreate /dev/xvdX1
  • Agregar el nuevo disco al volumen del grupo (asumiremos que el volumen se llama VolGroup00)
    vgextend VolGroup00 /dev/xvdX1
  • Extender el volumen logico en el temaño del nuevo disco (asumiremos que se agrego un disco de 25GB y que el volumen logico esta en /dev/mapper/VolGroup00-LogVol00)
    lvextend -L +25G /dev/mapper/VolGroup00-LogVol00
  • Redimensionar la partición montada en el volumen lógico
    resize2fs /dev/mapper/VolGroup00-LogVol00

Disfrutar de un volumen con sabrosos 25Gb adicionales y sin desmontar el sistema de archivos

convert this post to pdf.

No responses yet

17:48 17:48 17:48

Postfix enviando correo via mindfree

Published by charlie under General

En la vida de un sysadmin una de las cosas que da bastantes dolores de cabeza es asegurarse que todos los correos salientes desde un servidor llegarán a su destino.  Bien es sabido la cantidad de filtros existentes para evitar spam y más aún la comprobación de que los emails que llegan a un servidor provengan desde otro servidor debidamente identificado.

Basado en los antecedentes anteriores, no hay por qué rehacer la rueda y lo que podemos hacer es aprovechar el trabajo que han hecho otros sysadmins de servidores de correo ultra conocidos y decirle a nuestro postfix que envié nuestros correos a través de dichos servidores. A esto lo llamamos “Relay”.

Para configurar el relay en postfix con autenticación la receta es la siguiente:

Ingredientes

  1. El equipo que hará relay se llama “sirius”
  2. Contar con un servidor de correo que permita hacer relay
  3. Tenemos un nombre de usuario y contraseña para enviar correos por el servidor mediante el cual haremos el relay

Procedimiento

En el servidor sirius ubicar el archivo master.cf que normalmente está ubicado en /etc/postfix/main.cf

  • Ubicar el parámetro myhostname y configurarlo adecuadamente. Por ejemplo sirius.mindfree.cl
  • Ubicar el parámetro relayhost y colocar el servidor y puerto de nuestro servidor de relay de correo de la siguiente manera: [servidor]:puerto .  Por ejemplo relayhost=[mail.mindfree.cl]:587
  • Ubicar el parámetro smtp_sasl_auth_enable y setearlo en yes
  • Ubicar el parámetro smtp_sasl_password_maps y setearlo en hash:/ruta/al/archivo/de/credenciales. Por ejemplo smtp_sasl_password_maps = hash:/etc/postfix/sasl/smtp_pass
  • Crear el archivo de credenciales, en este caso smtp_pass en la ruta definida en el paso anterior y en su interior colocar las credenciales al servidor de relay de la siguiente manera
[servidor]:puert usuario:clave

En nuestro ejemplo quedaría algo así como

[mail.mindfree.cl]:587 miusuario@mindfree.cl:miclave
  • Guardar el archivo y luego ejecutar postmap smtp_pass
  • Reiniciar postfix
convert this post to pdf.

No responses yet

13:17 13:17 13:17

Slash Arguments en Moodle

Published by jbrunet under General

Uno de los problemas de habilitar y deshabilitar esta opción en la configuración de moodle (Habilitada por defecto) es que los links a archivos dentro de los cursos quedaban inservibles por la forma en que se realizan.

Sin SlashArguments los links quedan de la forma: http://{url plataforma}/file.php?file=/{id del curso}/{archivo.htm}

Con SlashArguments los links quedan de la forma: http://{url plataforma}/file.php/{id del curso}/{archivo.htm}

Por ende, es necesario eliminar el “?file=” de los links en los recursos creados.La solución viene dada por ejecutar uno de los scripts de administración que provee Moodle. Ejecute http://{url plataforma}/admin/replace.php y ingrese la expresión a reemplazar “?file=/” y la expresión por la cual reemplazar “/”.

convert this post to pdf.

No responses yet

18:44 18:44 18:44

Respaldos vía ftp

Published by jbrunet under General

Para traernos sitios completos de los cuales tengamos acceso vía ftp (a lo menos)
lftp -c ‘open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit’

Ahora si tenemos acceso vía ssh podemos intentar

scp -r <usuario>@<host>:<remote-src.path> <local-dest-path>

convert this post to pdf.

No responses yet

14:22 14:22 14:22

La librería para poner calendarios en su sitio web

Una de las librerías más ocupadas para incluir calendarios en las webs es la provista por Mihai Bazon, <mihai_bazon@yahoo.com>
http://dynarch.com/mishoo/. Esta libreria es ampliamente usada en sitios como LAN y MindFree (empresas grandes, claro).

El problema

Surge de un llamado que nos avisa que el día 12 de Octubre se repite en los calendarios.¡¡¡ ¿Qué?!!!. Claro, en la vista de Octubre, el 2º fin de semana repite el día Sábado al Domingo, lo que provoca una desincronización hacia adelante.

El problema técnico

La librería está construida sobre javascript y utiliza un archivo calendar.js que construye el calendario y según la configuración del calendario del computador que visualiza las páginas, si tiene activado cambiar automáticamente al horario de verano, provoca el fallo. Esto ocurre porque el día pasa a tener 23 o 25 horas dependiendo del cambio, lo que es mal interpretado por el javascript.

La solución

Hacer que el script tenga días en formato de 12 horas. Eso se agrega de la siguiente manera:

En calendar.js, linea 1042 (dependiendo de la versión, sino busque la función)


/**
*  (RE)Initializes the calendar to the given date and firstDayOfWeek
*/
Calendar.prototype._init = function (firstDayOfWeek, date) {
var today = new Date(),
TY = today.getFullYear(),
TM = today.getMonth(),
TD = today.getDate();

Agregar:


/**
*  (RE)Initializes the calendar to the given date and firstDayOfWeek
*/
Calendar.prototype._init = function (firstDayOfWeek, date) {
date.setHours(12);
var today = new Date(),
TY = today.getFullYear(),
TM = today.getMonth(),
TD = today.getDate();

Y voilá, flor de solución. Es curioso como hay poca documentación sobre este problema, casi no ha sido reportado y encontré la solución después de un buen rato.

convert this post to pdf.

No responses yet

11:20 11:20 11:20

El bendito mod_rewrite

Reinstale mi pc y puse a andar mi magnifico servidor web apache2. Todo iba bien hasta que quise jugar con wordpress y tener las pretty urls. La cosa es que te piden tener funcionando apache2+mod_rewrite. Entonces, tenía que saber por qué no estaba activado si se supone viene por defecto en la instalación del core de apache2.

Lo primero que hay que hacer es ver si existía el módulo en los archivos de apache

therion:/etc/sysconfig # ll /usr/lib/apache2/mod_rewrite.so
-rwxr-xr-x 1 root root 63488 Nov 22 09:36 /usr/lib/apache2/mod_rewrite.so

OK…existe. Si no existiera harikiri e instalar apache2 como la gente normal.

Aplicamos ahora, editar el archivo /etc/apache2/sysconfig.d/loadmodule.conf y agregar al final

LoadModule rewrite_module                 /usr/lib/apache2-prefork/mod_rewrite.so

Finalmente, agregar al /etc/sysconfig/apache en la línea 103

APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default
authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif
ssl suexec userdir php5 rewrite"

Reinicia apache y comprueba si con el .htaccess de wordpress, algo así como en el mío:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~jbrunet/old_html/www.charlatecnica.cl/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~jbrunet/old_html/www.charlatecnica.cl/wordpress/index.php [L]
</IfModule>
# END WordPress

Con esto podrás tener direcciones del tipo http://tuservidor/wordpress/año/mes/dia/nombredelpost/ en wordpress o http://tuservidor/joomla/nombredearticulo

convert this post to pdf.

One response so far

12:00 12:00 12:00

Rpms y otras hierbas

Published by jbrunet under Articulos Tecnicos

OpenSuse ocupa el sistema de Redhat Package Manager (RPM) para gestionar los paquetes a instalar.

Si bien, hoy en día., herramientas como YaST o Zypper hacen mucho más fácil esta gestión, siempre es bueno saber algo del manejo del comando rpm. He acá mi handbook:

rpm -qi packete: Información sobre un paquete específico

rpm -qf archivo: De qué paquete saco el archivo

rpm -qa: Una lista con todos los paquetes instalados.

rpm -Uvh paquete.rpm: La U es para actualizar un paquete, la v de verbose y la h para imprimir los hash del paquete

rpm -e: e de ejectar erase, obvio….y de desinstalar un paquete

Con eso, no te mueres y puedes hacer maravillas y responder las preguntas que la humanidad de ha hecho durante siglos.

PS: Siempre está la opción de revisar la página del manual, pero la de rpm es bastante amplia :P

convert this post to pdf.

No responses yet

17:15 17:15 17:15

Algo de CSS

He estado entretenido armando la nueva página web de la empresa y ahora he utilizado algunos “trucos”.

Algunas pseudo-clases bastante útiles:

first-child: para aplicar un estilo al primogénito de una clase definida. Ej: Para hacer un menú con separadores de pipe (palito para las niñitas)


#footermenu li{
float: left;
margin: 0;
padding-left: 2px;
border-left:1px solid #FFF;
}
#footermenu li:first-child {
border:none;
}

hover: Aplica al elemento cuando se pasa el mouse por encima. Útil para links. Ej:


#pillmenu li a:hover {
color: #fff;
text-decoration: none;
background: url(../images/pillmenu_bg_hover.png) repeat-x;
}

Esos 2 por ahora. Super útiles y necesarios. Faltan algunos para manejar tablas y poder desarrollar la famosas tablas zebras.

PD: Algunas pseudo clases o modificadores no funcionan bien con IE6 e IE7. Para variar

convert this post to pdf.

No responses yet

10:50 10:50 10:50

Yo y mi smart

Published by jbrunet under General

Jugando con mi suse 10.3 me di cuenta que de repente se demoraba demasiado en ir a buscar las llaves de mis repositorios. Entonces, necesite deshabilitar (esta de más decir que bajo su propia responsabilidad y ssi conoce los repositorios que usa).

con
smart config --set rpm-check-signatures=False

Lo que provocará es que nunca más se traigan las claves de los repositorios.
Continue Reading »

convert this post to pdf.

One response so far

11:38 11:38 11:38

Hacer que Php ande como el correcaminos

Published by charlie under Servicio Web

Qué hacer cuando producto de que la cantidad de usuarios en nuestros sitios web aumenta, el sistema se pone lento y ello repercute en los tiempos de respuesta de los sistemas?, siempre está la opción de matarnos, un harakiri o cualquier otra medida extrema lo que podemos hacer es pensar en optimizar.

Lo que hacemos es optimizar los siguientes aspectos:

  • Servidor de Base de Datos
  • Servidor Web
  • Optimizador para PhP

Cuando las dos primeras no son medidas lo suficientemente rudas, podemos aplicar la tercera.

Continue Reading »

convert this post to pdf.

No responses yet

Next »