viernes, 2 de mayo de 2014

Varnish install vmod trick

Ok, here is the thing.
Me encuentro en el siguiente dilema, en producción tengo instalados diez varnish, en modo cache y pretendemos reemplazar nuestro CDN en akami.
Entre las cosas que necesito migrar de akamai, está el soporte para QueryString. Por lo tanto necesito implementar vmod-libquerystring.

Como los varnish ya estás instalados de rpm y no quiero desinstalar y volver a instalar desde las fuentes, ¿que hago en este caso? me saco un truco de la manga y descargando los fuentes de la misma versión, desde el repo, junto con le vmod que quiero compilar. Claro ya que estoy por la labor también me bajo otros vmod y dejo soporte, para lo que necesite o crea que pueda necesitar, mi vida sea más fácil en el futuro.

Dicho lo anterior lo explico step by step lo que hice empíricamente a continuación:
Estas pruebas las he efectuado sobre CentOS 6.5.
Para poder compilar varnish he requerido un montón de bibliotecas como:


yum install -y automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig libedit libedit-devel readline-devel python-docutils git

Para replicar lo que tenia agrego el repositorio de varnish e instalo con yum:

rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm
yum install -y varnish

Con el varnish instalado desde el rpm tengo toda la estructura en su sitio y funcionando, bajas las fuentes de varnish y las dejas en un sitio seguro.

wget http://repo.varnish-cache.org/source/varnish-3.0.7.tar.gz
tar xzf varnish-3.0.7.tar.gz
git clone https://github.com/Dridi/libvmod-querystring.git
sudo mv libvmod-querystring varnish-3.0.7 /usr/src/

Con privilegios de root a compilar. (ojo: sin make install)

sudo -i
cd /usr/src/varnish-3.0.7
./autogen.sh
./configure PKG_CONFIG_PATH=/usr/lib/pkgconfig
make

Hora que ya están las fuentes compilados  y generados los objetos test, el vmod compilara y generara las biblotecas en donde se indique, para lo cual un paso previo es buscar el directorio varnish/vmods

find /usr -name vmods |grep lib |grep varnish
/usr/lib64/varnish/vmods

Ya lo tienes a compilar e instalar el modulo:

cd /usr/src/libvmod-querystring
./autogen.sh
./configure VARNISHSRC=/usr/src/varnish-3.0.7 VMODDIR=/usr/lib64/varnish/vmods
make && make install && make check

Plaf se instala correctamente en /etc/varnish/default.vcl importar el modulo y a utilizar sus características.

import querystring;

Nota: otros módulos puede tener otras dependencias. Recomiendo vmod-boltsort para complementar querystring y mejorar el hit ratio.