martes, 25 de agosto de 2015

Pfsense 2.2.x: ntpdate no server suitable for synchronization found

Hola, aqui de nuevo, estos dias pasados note que unos reportes que tengo en cron en uno de mis servidores Centos 5.11 x64 estaban llegando minutos adelantados.

Tengo un simple batch que actualiza el tiempo de los servidores tomando a pfsense como fuente de tiempo, pero note que tengo correos donde dice que:

ntpdate no server suitable for synchronization found

Entonces me puse a ver el problema y confirmar que cada que corre ese script a las 11:59PM sale ese error, mis clientes windows ya sea XP y 7 no tienen problemas, ubuntu 12/14 igual sin detalles, solo los centos 5/6.

ntpdate 192.168.4.1 25 Aug 10:15:35 ntpdate[6377]: no server suitable for synchronization found

Ese es el mensaje latoso, dije bueno vamos a ver que dice en modo debug:

ntpdate -d 192.168.4.1
25 Aug 10:17:01 ntpdate[6385]: ntpdate 4.2.2p1@1.1570-o Sun Aug 28 19:21:07 UTC 2011 (1)
Looking for host 192.168.4.1 and service ntp
host found : firewall.XXXXXX.local
transmit(192.168.4.1)
transmit(192.168.4.1)
transmit(192.168.4.1)
transmit(192.168.4.1)
transmit(192.168.4.1)
192.168.4.1: Server dropped: no data
server 192.168.4.1, port 123
stratum 0, precision 0, leap 00, trust 000
refid [192.168.4.1], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Wed, Feb  6 2036 22:28:16.000
originate timestamp: 00000000.00000000  Wed, Feb  6 2036 22:28:16.000
transmit timestamp:  d9872190.db112fd3  Tue, Aug 25 2015 10:17:04.855
filter delay:  0.00000  0.00000  0.00000  0.00000
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

25 Aug 10:17:05 ntpdate[6385]: no server suitable for synchronization found

Este servidor dice que la fuente es un stratum 0, otro me dice que 16. Segun leyendo un poco, por lo regular ningun cliente se sincronizara con este tipo de stratum por ser o muy bajo o muy alto, el 16 significa que el servidor de tiempo no esta sincronizado.

Pero me llamo la atencion por que revise mi pfsense y consulte su condicion, para ello entre  a ver el estatus de mi servicio y me doy cuenta que esta en buena condicion y buen 'stratum' ver imagen siguiente:

Estatus del NTP de pfsense.

Como se podra ver nada que ver lo dice Centos de stratum 0 o 16 es 2.

Entonces que podria estar causando este discrepancia con los centos?

Bien pues al parecer tiene que ver con la opcion que viene de fabrica habilitada el ntp, el llamado beso de la muerte, ver siguiente imagen:

Kiss of death default.

Entonces me comenta mi amigo del foro, 'wbon' que cuando el deshabilito esa opcion sus centos empezaron de nuevo a sincronizarse, lo hice y boom todo empezo de nuevo a trabajar, mis centos de nuevo con el tiempo correcto, saludos.







lunes, 24 de agosto de 2015

Centos 5: httpd dead but subsys locked les ha pasado?

Hola amigas/amigos, hace tiempo que no toco mi blog, a veces el tiempo no deja pero vamos viendo que podemos agregar para que no se nos olvide.

Apache es un de esos servicios que rara vez uno tiene que reiniciarlo o revisar algunos logs por que los programadores se quejan de su funcionalidad.

Pero ahi veces que de plano no reiniciar y salen un mensaje como este en la consola:

service httpd status
httpd dead but subsys locked

Ok, no esta tronado, esta bien tronado jajajajaja...

Pero bueno despues de leer algunos post al respecto, me encontre uno que me daba un comando mas feo que los codos pero que reparo el problema, no me gusta robar las soluciones, repito lo encontre en un foro y no recuerdo el link, pero funciona.

Muchos foros decian que hiciera unos 3 pasos, borrara aqui, haya etc, ninguno funciona.

Pero este siguiente espaguetti si:

 ipcs -s | grep apache | perl -e 'while(){@a=split(/\s+/);print `ipcrm sem $a[1]`}'ipcs -s | grep apache | perl -e 'while(){@a=split(/\s+/);print `ipcrm sem $a[1]`}'

Una vez ejecutado este comando logre reiniciar el servicio.

Centos 5.11, saludos.

lunes, 22 de septiembre de 2014

Centos 6 KVM Instalando Windows 2008 R2 x64 Guest.

Ya Centos trae KVM como su paquete para crear VM's, asi que tenemos que movernos a esta tecnologia, ya usamos Xen, excelente paquete, ahora le toca  a KVM.

Este vez estamos trabajando con Centos 6.5 x64 en un servidor SuperMicro.

Vamos revisando nuestro LVM creado para este maquina virtual, solo para esta ocasion he creado una particion de 30G para este ejemplo, esta es la info:

lvdisplay  VG_BAK
  --- Logical volume ---
  LV Path                /dev/VG_BAK/VmWin8Test
  LV Name                VmWin8Test
  VG Name                VG_BAK
  LV UUID                kEQfdL-FmLQ-wvMJ-efQh-1pZ9-avJR-myJwbM
  LV Write Access        read/write
  LV Creation host, time kvm1.host.local, 2014-09-16 13:14:23 -0700
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:7

Solo vamos asignarle el core 1 para esta vm, la imagen de Windows8 esta en /var.

Tenemos todo para llevar a cabo esto, vamos a prender VNC para que KVM nos ayude en la instalacion remotamente.

Estos son los parametros que vamos a usar:

virt-install --name=vm_win2k8T --ram=1024 --vcpus=1 --cpuset=1 --description 'Windows 2008 Standard x64 Test' --cdrom=/var/Win2k8_olicense.iso --os-type=windows --os-variant=win2k8 --disk path=/dev/VG_BAK/VmWin8Test --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5900,password=mipassword --hvm --check-cpu

Nos conectamos x vnc y terminamos la instalacion.

Vamos observando los pantallazos:




Ya una vez terminado todo, iniciamos el sistema y revisamos que todo este en orden.


Listo, servidor arriba y operando, saludos.


martes, 25 de febrero de 2014

Pfsense 2.x Habilitando y Accesando Squid3 cachemgr en GUI

Hola, por ahi anda un post hacerca de squid2 y como habilitar su cachemgr para ver informacion bien a fondo de la operacion de squid, ese era para la rama 2, ahora bien como hacer lo mismo para squid3?

Version de Prueba:
Pfsense 2.2.4
Squid Cache: Version 3.4.10
IP de Pfsense en mi red: 192.168.1.1

Hay un post en el foro en Ingles:

https://forum.pfsense.org/index.php?topic=67607.0

Lo intente, pero no me funciono, revise mi post anterior e hice unas modificaciones,

cd /usr/local/www/

ln -s /usr/pbi/squid-i386/local/libexec/squid/cachemgr.cgi
ln -s /usr/pbi/squid-i386/etc/squid/cachemgr.conf

NOTA: Recordar que la arquitectura indica la ruta en mi caso es un x32 la x64 cambia esa parte solamente, revisen su caso.

Editar el archivo:

/usr/pbi/squid-i386/etc/squid/cachemgr.conf

Quedaria como lo indica la siguiente imagen:

Figura 1 Archivo cachemgr.conf editado.
Editar squid.conf, busca esta linea:

acl localhost src 127.0.0.1/32 pasa a ==> 192.168.1.1/32

Salvan.

Vamos a dejar un parametro por default, si desean hacerlo solo cuando lo necesiten lo modifican directamente en squid.conf y reconfigure, pero si desean que se quede de fabrica asi cuando reinicien se mantega siempre esta configuracion.

Antes de editar el siguiente archivo le sacan una copia, se van a /usr/local/pkg/

Uno de los archivos es squid.xml, pero antes de sacarle una copia.

Editan el archivo squid.xml, deben agregar lo indicado en la siguiente figura, esta parte no existe es el archivo que da forma a el contenido que ustedes ven en el GUI para squid, estan hackeando el sistema ;-), 

Figura 2 Archivo squid.xml editado.
Si ven la imagen anterior ahi viene lo que tenemos que agregar, asi debe quedar solo recordar cambiar el IP por que tiene su caja pfsense como LAN.


El 2do archivo es squid.inc, vean en la figura 3 como debe quedar y la nota que les puse:

Figura 3.

De ahi en ese mismo archivo buscan algo similar a la siguiente imagen:

Figura 4.
En ambos casos esos parametros no existen, deben agregarlos.

Este archivo es uno de los que usa pfsense para crear el famoso squid.conf, asi cualquier cambio aqui quedara impreso en ese archivo cuando reiniciemos, asi que cuidado con lo que le hacen.

De ahi nos vamos a la configuracion de squid en el GUI, a este menu: Squid Proxy Server->Local Cache.

Buscamos la seccion que indica la figura 5 y agregamos en el campo 'External Cache Managers' la IP de nuestro pfsense, ver siguiente imagen.

Figura 5.
Ya hecho todo esto, es cosa de reiniciar el servicio atraves del GUI, esto se hace dandole a el boton 'Save' en la parte baja del GUI.

Ahora, cuando vayan a la seccion de squid, van a ver una pestana nueva, ver figura 6.

Figura 6.
Le dan un click y van a ver algo similar a lo siguiente, ver figura 7.

Figura 7.
Empicen a revisar cada seccion, no todas estan disponibles pero muchas son de vital informacion hacerca del desempeno de squid.

Espero esto les sirva de algo en su camino por este gran sistema, saludos.

Necesitan ayuda, claro via $$$ pheriko arroba gmail punto com.

lunes, 24 de febrero de 2014

Pfsense 2.x y Discos Duros Grandes Problemas al arrancar.

Ahi veces que Pfsense le batalla identificar el disco duro o bien se instala pero al arrancar se queda colgado.

Les voy a platicar un poco de lo que me sucede a mi, tengo un servidor algo viejo, P4 Duo Core tipo servidor, no es un equipo tipo desktop, tiene etiqueta de Servidor.

Este equipo tiene muchas opciones en el BIOS, muy buena maquina, pero mi gran pelea me la dio, la cosa era que yo tengo un disco duro SATA 320GB SATAII,  tuve que jugarle en el BIOS hasta que pfsense 2.1 lograra detectar el disco.

Esta fue mi 1er gran pelea.

De ahi viene la parte rara, se hacia la instalacion, le decia que agarrar todo el disco y todo bien, se instalaba, pero cuando iniciaba el arranque me ponia el menu, F1 para arancar.

Cuando yo apretaba F1, se ponia el iconito que empieza a dar vueltas cuando arranca, pero se congelaba, ahi quedaba.

Por alguna razon, el problema radicaba en el tamano del disco, algo me decia que por ahi iba encaminado el problema.

Ahora analizando un poco, vamos entendiendo un firewall, es un sistema para protegernos del mundo exterior, claro que con pfsense tenemos muchos programas que nos ayudan a proteger aun mas nuestras redes.

En mi caso la idea es implementar un web-proxy con squid3. Vamos viendo un poco el panorama de squid.

Squid es un web-proxy con opcion de ser u reverse proxy(Ingles), yo quiero que mis clientes crucen hacia Internet atraves de el, asi puedo yo implementar politicas de accesos(ACL) y controlar por medio de grupos, quien puede y quien no puede ir a ciertas paginas, quien tiene acceso ilimitado, etc.

Un mundo de cosas que nos permite squid, pero es necesario darle un disco de 320GB???

La respuesta es NO, si leen un poco como opera squid, en una empresa de por ejemplo 100 estaciones, un cache de 8 o 16GB es mas que suficiente, si mas tambien no es problema, siempre y cuando no se este guardando paginas dinamicas, si es el caso si requieren mas espacio para cache.

Aqui en mi situacion, lo que requiero es mucha memoria, minimo 1-2GB para sacarle provecho, entonces yo particionar mi disco de 320GB para Pfsense es una perdida de espacio, por que squid no lo va a usar, ahi que entender un poco sus algoritmos, no los va a  usar.

Entonces lo que hice fue, 1 Particion de 20GB la cual quedo asi:
Aprox. 19.5GB /
512M SWAP

Otro aspecto lo cual les decia que para squid memoria es la que si necesita, 512MB swap por que solo sigo las reglas de dejar cierta proporcion para swap, pero yo en lo personal cuando uno de mis servidores o firewalls usa la swap es momento de revisar y ver como optimizar las aplicaciones o bien, si no hay mas es incrementar la memoria, nunca depender de la SWAP.

Mi equipo tiene 4GB, 1.5-2GB--> squid, y ciertos parametros extras en la config para meter mas objetos grandes en ella y el resto a disco duro.

Ya hecho esto, indicandole a Pfsense estos cambios, logre que mi firewall preferido arrancara sin problema alguno, a lo mejor mas adelante necesite mas espacio, pero segun mi experiencia, pasaran mas de 24 meses para que esto pase o lo mejor mas.

Se los dejo esto como nota, saludos.

lunes, 27 de enero de 2014

FreeBSD 10: MAKE_JOBS_UNSAFE=yes

Ando probando FreeBSD 10 x64, el plan es actualizar mi Spam Gateway, primero que nada todos nuestras aplicaciones deben compilarse, un spam filter lleva muchos programitas para funcionar, con el simple hecho de irse a amavisd-new, darle make config, nos muestra una infinidad de opciones.

Hay una que nos detuvo la tarea:

Freeze.

Nos marca un error asi:

freeze-2.5.tar.gz                             100% of   35 kB   49 kBps 00m01s
===> Fetching all distfiles required by freeze-2.5_2 for building
===>  Extracting for freeze-2.5_2
=> SHA256 Checksum OK for freeze-2.5.tar.gz.
===>  Patching for freeze-2.5_2
===>  Applying FreeBSD patches for freeze-2.5_2
===>  Configuring for freeze-2.5_2
===>   FreeBSD 10 autotools fix applied to /usr/ports/archivers/freeze/work/freeze-2.5/configure
checking how to run the C preprocessor
checking for unaligned access
checking integer size
checking for 64K segments
checking for long file names
checking for directory library header
checking for dirent.h
checking for closedir return value
checking for sys/stdtypes.h
checking for rindex
checking for setlinebuf
checking for freeze to derive installation directory prefix
creating config.status
creating Makefile
creating config.h
===>  Building for freeze-2.5_2
make[3]: make[3]: don't know how to make CFLAGS. Stop

make[3]: stopped in /usr/ports/archivers/freeze/work/freeze-2.5
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/archivers/freeze
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/security/amavisd-new
*** Error code 1

Stop.
make: stopped in /usr/ports/security/amavisd-new
root@fbsd10:/usr/ports/security/amavisd-new #

Ya hemos leido al respecto, pero no hemos dado como solucionarlo, estamos ya en los foros viendo como arreglar este problema que varios programas segun google estan mostrando, esperemos pornto dar con el problema, saludos.

2014-01-28

No he hecho nada de hack, solo le actualice los ports y segui instalando paquetes para ver si alguno tronaba, ya que mi plan es migrar mi spam filter a esta versio, por obra del espiritu santo ya se logra instalar esa aplicacion.

Saludos.

miércoles, 30 de octubre de 2013

Pfsense 2.x: squid3 no cache nada.

Hola, les voy a platicar algo que me ha tocado vivir y a lo mejor ustedes tambien han pasado por esto.

Estoy trabajando con pfsense 2.1 con squid3, lo instale configure y todo el asunto, pero al paso del poco tiempo me di cuenta que no estaba mi cache trabajando.

Me fui a revisar el folder donde pfsense almacena esos folders creados:

/var/squid/cache

Estaban todos mis folders creados, opcion de fabrica: 16 directorios.

Permisos bien, pero no estaba almacenando nada en el cache, como se?

Bien, cuando busque la palabra HIT en mi log:

grep HIT /var/squid/logs/access.log

Solo salio 1 solo registro y ya tenia rato trabajando en el equipo, reinicie el sistema para ver esto de alguna manera squid checa su cache antes de arrancar.

El problema continuaba, entonces otros usuarios pasaban por lo mismo, lo que hice en mi caso es que si sabran squid puede uno borrar el cache y volver a crearlo esto es algo normal, pero uno esta acostumbrado a que todo funciona a la 1ra.

Desgraciadamente a veces esto no sucede, entonces lo que hice fue esto, 1ro que nada mi batch tenia que hacer lo siguiente:

#!/bin/sh

#1; Irnos a el folder donde esta el cache

cd /var/squid/cache
#2; Borrar cache:

rm -rf ./*
#3; crear cache de nuevo.

squid -z
#fin de batch.

Lo salvo con el nombre de crear-cache.sh


Poner el batch en modo de ejecucion:

chmod +x crear-cache.sh

Ahora si, ya con mi batch listo hice esto:

1; Parar el servicio por el GUI.
2; Revisar que ya no este ninguna instancia de squid en ejecucion:

ps -ax | grep squid

3; Ejecutar mi batch
sh  crear-cache.sh

4; Revisar que se hayan creado todos mis 16 directorios.

Con todo esto hecho, era cosa de iniciar el servicio atraves de la GUI.

Servicio arriba, ejecutar el ccleaner para borrar todos los caches de los navegadores ya que ellos tambien guardan de paginas visitadas.

Empece a navegar y despues de un rato usando los 3 navegadores: firefox, iexplore, chrome entrando  a las mismas paginas, esto forza a usar el cache, empece a ver los:

TCP_MEM_HIT

Ya estoy usando mi cache, iba a tardar un poco en ver el registro:

TCP_HIT

Por que recuerden que 1ro se usa la memoria y despues el disco.

LLeve a cabo otra instalacion para ver si habia un problema con la instalacion que lleva a cabo pfsense, pero en el otro equipo no hubo ningun problema. se instalo, configure el cache y empezo a funcionar sin hacer todo lo anterior, entonces puedo decir que fue algo mas especifico con la maquina.

Bien, aqui les dejo esto, saludos.

viernes, 25 de octubre de 2013

Pfsense 2.x: squidGuard redirector warning.

Hola, bien este es un comentario para todos aquellos que tengan su pfsense con squid+squidGuard, cuando lo tengan ya operando, revisen el log de squid:

/var/squid/logs/cache.log

Ya que por default squidGuard tiene de fabrica abrir solo 5 hilos del redirector o sea el.

9573  ??  SN     0:02.30 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)
 9712  ??  IN     0:00.42 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)
 9935  ??  IN     0:00.31 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)
10084  ??  IN     0:00.25 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)
10110  ??  IN     0:00.22 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)
10150  ??  IN     0:00.20 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)

Entonces, esto esta bien uno solo en su casita, pero cuando ya estas hablando mas de 1 usuario ahi viene lo interesante, te hablan que esta lento, que si funciona pero lento o que no hay servicio, llegas y se cayo.

Un log que debemos siempre buscar y a lo mejor ya ajustado no lo vamos a ver por mucho tiempo es este:

2013/10/25 09:44:24| WARNING: All redirector processes are busy.
2013/10/25 09:44:24| Consider increasing the number of redirector processes in your config file.

El mismo dice que el servicio esta ocupado, que debemos incrementar la cantidad, uno puede entrar a la config de squid en la pestaña: General.

En la parte de abajo esta configurado la parte donde squid envia el trabajo a squidGuard y mas o menos asi esta:

redirect_program /usr/pbi/squidguard-squid3-i386/bin/squidGuard -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf;redirector_bypass off;url_rewrite_children 5

Podemos ajustar ahi, pero pasa algo, este parametro viene de las configuraciones de fabrica de pfsense, si reiniciamos el servidor, esta parte se pierde y coloca por default la que tiene en:

/usr/local/pkg/squidguard_configurator.inc

Busquen la linea:

define('REDIRECTOR_PROCESS_COUNT', '5'); # redirector processes count will started

Ahi es donde se debe cambiar si desean que se mantenga en cada reinicio y este valor es el que se colocara en la configuracion de squid.

Les recomiendo que lo incrementen de 5 en 5, por que?

Si se dan cuenta, cada uno de ellos consume memoria, entonces, si dicen, vamos a ponerle 100 para no estar batallandole,estamos mal, vean lo siquiente:


Dice que estamos utilizando cerca de 67MB x cada uno de ellos, entonces nomas recuerden que nunca debemos usar la memoria virtual, aqui aun no hemos llegado a eso pero debemos estar al pendiente de monitorear este log, este tipo de sistemas no son de ponerlos 1dia y olvidarse de ellos, debemos estar minimo 2 semanas revisando, siempre requieren ajuste hasta dejarlo como filo de bisturo, a lo mejor hasta memoria vamos a requerir, aun no sabemos.

Estos ejemplos son de un equipo corriendo pfsense 2.1 i386 1GB RAM, cache de squid deshabilitado.

Nos vemos pronto,Saludos.

miércoles, 2 de octubre de 2013

Pfsense 2: Habilitando squid 2.x cachemgr.

Hola, hace tiempo que no escribo nada, tengo muchas cosas en la cabeza, pero aqui me estoy dando un tiempo para hacer esto, creo que es momento de hacer un libro de pfsense+squid+squidguard...

Muchos que manejamos squid, siempre estamos buscando como obtener datos de la operacion dia a dia de nuestro proxy, existen varios programas que nos ayuda, pero algo importante es que el mismo squid, trae ya una utileria via web que podemos consultar para tocarle el pulso y ver como anda operando.

Trae tanta informacion que hasta el momento no he encontrado tanta informacion sobre sus partes mas internas en otra utileria libre.

Pero antes de esto vamos aclarando que eso lo encontre en el foro gabacho de pfsense, y esta basado en squid 2.7.x, no importa si es pfsense 2.0.x o ya la rama nueva, funciona.

Aclarando esto, es momento de explicar que vamos a editar el archivo fuente de pfsense para hechar a volar squid, este se localiza en:

/usr/local/pkg/squid/squid.inc

Antes de hacer un respaldo para cualquier problema que se les presente puedan retornarlo a su estado original.

cp squid.inc backup-squid.inc

Otra cosa estos son mis datos:

Mi Pfsense tiene el IP: 192.168.2.4 Puerto 249 https
Se llama gw.midominio.org

Abrimos el archivo squid.inc y buscamos esta linea:

acl localhost src 127.0.0.1/255.255.255.255

Le pones comentario y la dejamos asi, ajusten a sus parametros:

#acl localhost src 127.0.0.1/255.255.255.255
acl localhost src 192.168.2.4/255.255.255.255
cachemgr_passwd disable offline_toggle reconfigure shutdown
cachemgr_passwd none all

Salvan.

De ahi sigue editar el archivo cachemgr.conf localizado en donde se instala squid:

/usr/local/etc/squid/

Lo abro y lo dejo asi al final:

#localhost
gw

Salvan.

De aqui sigue el ultimo paso, creamos un enlace hacia el folder root the el webserver de pfsense.

cd /usr/local/www

ln -s /usr/local/libexec/squid/cachemgr.cgi  cachemgr.cgi 

Ya con esto, se van a su navegador y ponen la direccion de su pfsense asi como esta la figura-1, excepto que yo lo tengo apuntando a el puerto https 249, a lo mejor ustedes lo tienen de fabrica 80, 443, ahi ustedes hagan sus ajustes.

Figura 1: Pantalla de inicio



Navegen en todas sus opciones, ahi tenemos tantos datos por analizar, agarren su google y a empezar a buscar mas informacion.

Espero les sirva, saludos.

martes, 16 de abril de 2013

Pfsense 2.0.3 liberada!!!

  Esta semana aparecio la actualizacion de la rama 2.0, que es la 3, trae principalmente parches de bugs importantes de seguridad, vamos empezar nuestro laboratorio para la migracion y ver que todo funcione.

  Mas info: http://blog.pfsense.org/?p=694

 Saludos!!!

martes, 5 de marzo de 2013

SQL Server 2008: Restaurar una base de datos Full+Diferencial.

A veces me da risa como las grandes compañias de software cobran tanto por su aplicacion, lees la documentacion tecnica y sigues paso a paso el manual, te muestran las opciones, estoy refiriendome a SQL Server 2008 restauracion de la base de datos.

Como decia, te explican las opciones de restauracion pero hasta ahi, no se meten mas a una forma de: asi se debe hacer.

Por que digo esto? Hoy me llamo una persona del departamento de Import-Export, ellos estan ya en fase de implementar un software llamado "Intrade", corre bajo SQL Server, y yo instale el server, version 2008 Estandard.

Entonces me llamo por que alguien de su equipo acceso a la configuracion del sistema ya que aun no tienen dados de alta los usuarios y todos estan usando el mismo que nos dieron cuando se instalo la 1ra vez y es admin o sea como root en Linux.

Entonces esta persona modifica y afecta cierta funcionalidad del sistema, claro esta que para estas alturas, los de soporte de Intrade ya no lo haran gratis, tendra un costo y al final ellos me contactaran a mi ya que ellos no tienen la menor idea de los respaldos.

Yo si :-), cuando se implemento el sistema lo primero que hice fue configurar los respaldos y probarlos, aqui implemente lo que hago con Bacula, Lunes Full, el resto diferencial de martes a sabado.

Si necesitara restaurar la BD, es tomar el ultimo Full+el ultimo diferencial, pero aqui sucedio algo chistoso, la persona lo modifico ayer Lunes durante el dia, entonces mi respaldo Full de ayer no sirve ya que la BD esta mal, no tiene sentido hoy restaurar lo de ayer, asi que tuve que sacar el Full de la semana pasada mas el ultimo diferencial de ese Full que fue el sabado.

Bien ya todo entendido, hice mi procedimiento:

1; Respaldo de la BD actual por aquello del no te entumas.
2; Borrar BD que deseamos restaurar.
3; Restaurar BD en base a un Full correcto(Lunes semana pasada).
4; Restaurar BD en base a el ultimo diferencial del Full seleccionado(Sabado).
5; Listo.

Pero o sorpresa en paso 4, se supone que el manual dice, seleccionas el respaldo diferencial deseado y dale, pero cuando le daba click a el boton OK, salia un error que dice mas o menos asi:

The log or differential backup cannot be restored because no files are ready to rollforward.

Que paso, lei el manual detenidamente y no di en cual era el motivo del error, que habia hecho mal?

Bien, no me preocupe, me fui con nuestro aliado google y encontre un doc que ya tiene tiempo pero ahi explicaban lo que Microsoft con todo su equipo tenico y manuales bonitos no logro hacerlo, este es el link, no me gusta saludar con sombrero ajeno:

http://justgeeks.blogspot.mx/2009/03/log-or-differential-backup-cannot-be.html

Lo que dice en pocas palabra es que cuando restauremos el Full nos vayamos a las opciones y selecciones la que dice:

Leave the database non-operational, and do not roll back uncommitted transactions. Additional transaction logs can be restored.(RESTORE WITH NORECOVERY)
 
De ahi, ahora si restauremos la diferencial con las opciones por default y listo.

Segui el proceso con esas sugerencias y listo, ya no arrojo ese maldito error, no fue una empresa que vale billones de dolares y tienen de los mejores tecnicos en BD la que me ayudo y me explico de una manera clara y objetiva como hacerlo, fue alguien como yo que vive esto dia a dia y sabe que la doc de esa gran empresa es un fiasco cuando en realidad te enfrentas a los problemas reales.

Los de Import-Export revisaron y si estaba la BD en el estado adecuado.

Saludos!!!

domingo, 24 de febrero de 2013

Centos 5/6: Instalar Percona XtraBackup.

XtraBackup es un software que nos permite respaldar base de datos de MySQL del tipo Innodb sin necesidad de apagar el servicio y hacerlo manualmente, lo hace con la BD en operacion lo cual a nosotros los sysadm nos ayuda mucho.

Es gratuita pero ellos tambien tiene la version que comercializan por si alguien desea soporte profesional.

Existen para varias versiones de Linux segun sea su tipo de instalador, como sabran yo sigo con Centos, y estoy con la version 6 pero debe operar para la 5 sin problemas, Percona esta en este momento ofreciendo la version 2.0.5 asi que procedemos a bajarlo en formato rpm.

Lo instalamos:

rpm -i percona-xtrabackup-2.0.5-499.rhel6.x86_64.rpm

Algo que no han arreglado y en la doc no lo mencionan ya que  esta el reporte o bug, por que digo esto?

Bien si seguimos el doc de como respaldar, al momento de ejecutar sin ningun argumento el comando innobackupex les a salir este error:

innobackupex
Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/innobackupex line 22.
BEGIN failed--compilation aborted at /usr/bin/innobackupex line 22.


No soy un guru pero como que entiendo que nos falta algo, alguna libreria, este software esta basado en Perl asi que googleando un poco, nos falta instalar esta libreria perl-Time-HiRes, asi que procedemos:

yum install perl-Time-HiRes

Ahora vamos ejecutando el commando de nuevo sin ningun parametro:

innobackupex
innobackupex: You must specify the backup directory.


Ya cambio el mensaje, esta listo para ser utilizando, que es el siguiente doc, saludos!!!

pmoreno arroba bajaopensolutions punto com

Centos: Como resetear el root password de MySQL 5?

Que pasa cuando se te olvida el password del root en MySQL 5.x? te sientes bien estupido, la gran ventaja es que este es un servidor que aun no entra en operacion asi que no pasa nada, si te sucede con uno de producción entonces si sientete estupido.

Esto debe funcionar tanto para Centos 5 como 6 en la version de MySQL 5.x, los pasos son sencillos:

1; Apagar el servicio si esta en operacion:

service mysqld stop
Stopping mysqld:                                           [  OK  ]

2; Iniciar el servicio con la opcion --skip-grant-tables.

/usr/bin/mysqld_safe --skip-grant-tables &
[1] 2965
[root@oerp61 mysql]# 130224 21:25:03 mysqld_safe Logging to '/var/log/mysqld.log'.
130224 21:25:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql


NOTA: Dale ENTER ya que a veces se queda colgado y no retorna la consola.

3; Entramos a la consola de MySQL:

mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.67 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


4; Cambiamos el password con comandos SQL asi se va directo a el corazon de la BD:
NOTA: Pongan el password que ustedes decidan.


UPDATE mysql.user SET Password=PASSWORD('123456');
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0


mysql>

FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql>



5; Salimos.

 mysql>quit

6; Apagamos el servicio de nuevo:

service mysqld stop
130224 21:27:19 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld:                                           [  OK  ]
[1]+  Done                    /usr/bin/mysqld_safe --skip-grant-tables


7; Lo iniciamos.

service mysqld start
Starting mysqld:                                           [  OK  ]


8; Probamos el nuevo password asignado:

mysql -u root -p
Enter password: <== ingresamos nuevo password.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.67 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


9; Listo a seguir trabajando y tatuarnos el password, saludos!!!

martes, 19 de febrero de 2013

Ubuntu 12: Configurar APC BackupUPS USB con apcupsd.

Necesito configurar mi desktop corriendo Ubuntu 12.x para que se apague cuando se nos va la luz, el modelo que me llego es el:

Backup UPS 550.

Viene con su cable para monitorear su alimentacion el cual de lado del equipo es una conector RJ45 y de lado de la computadora es un USB.

Conectado el cable a la pc es necesario confirmar que nuestra PC pueda ver ese equipo asi podremos estar seguros que esto va a funcionar:

2.692667] usbcore: registered new interface driver usb-storage
[   18.528092] usb 4-2: new low-speed USB device number 3 using ohci_hcd
[   18.959393] generic-usb 0003:051D:0002.0002: hiddev0,hidraw1: USB HID v1.10 Device [APC Back-UPS ES 550 FW:843.K2 .D USB FW:K2 ] on usb-0000:00:12.0-2/input0

Ahi lo tienen, viene hasta el modelo detectado.

Como mencione el software que vamos a usar es apcupsd su sitio como muchos sabran se localiza en:

http://www.apcupsd.com/

Asi que procedemos a la instalacion:

apt-get install apcupsd

Este nos trajo la version:

apcupsd  3.14.10-1  APC UPS Power Management (daemon)

Segun el manual la configuracion es muy sencilla:

 ## apcupsd.conf v1.1 ##
UPSCABLE usb
UPSTYPE usb
DEVICE
LOCKFILE /var/lock
UPSCLASS standalone


Abran su archivo de configuracion /etc/apcupsd/apcupsd.conf, busquen esos parametros y modifiquenlos tal cual dice el manual.

De ahi sigue pedirle a Ubuntu que habilite el servicio, para esto abran el archivo:

/etc/defaults/apcupsd

Y dejen este parametro asi:

ISCONFIGURED=yes

Salvan y salen.

Ya solo es cuestion de ver si gustan jugar con los parametros de cuando apagar la pila los que tienen a mi me han funcionado pero cada quien.

Ya con esto listo es cuestion de hechar a volar servicio:

service apcupsd start
Starting UPS power management: apcupsd.


La prueba de fuego, ejecuten este comando:

apcaccess

APC      : 001,034,0875
DATE     : 2013-02-19 10:06:21 -0800 
HOSTNAME : my-pc
VERSION  : 3.14.10 (13 September 2011) debian
UPSNAME  : BackupUPS 550
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2013-02-19 10:06:20 -0800 
MODEL    : Back-UPS ES 550
STATUS   : ONLINE
LINEV    : 123.0 Volts
LOADPCT  :  36.0 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  14.4 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 5 Minutes
MAXTIME  : 0 Seconds
SENSE    : Medium
LOTRANS  : 092.0 Volts
HITRANS  : 139.0 Volts
ALARMDEL : 30 seconds
BATTV    : 13.5 Volts
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
STATFLAG : 0x07000008 Status Flag
SERIALNO : 3B1044X16904 
BATTDATE : 2010-10-27
NOMINV   : 120 Volts
NOMBATTV :  12.0 Volts
FIRMWARE : 843.K2 .D USB FW:K2
END APC  : 2013-02-19 10:06:37 -0800


Vean el campo sombreado en BOLD, vamos hacer la prueba, quitemos la energia a ver que pasa:

Broadcast Message from root@my-pc                                          
        (somewhere) at 10:08 ...               
                               
                                                                              
Power failure on UPS BackupUPS 550. Running on batteries.

Ahora que nos dice el comando apcaccess:

APC      : 001,035,0924
DATE     : 2013-02-19 10:08:14 -0800 
HOSTNAME : my-pc
VERSION  : 3.14.10 (13 September 2011) debian
UPSNAME  : BackupUPS 550
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2013-02-19 10:06:20 -0800 
MODEL    : Back-UPS ES 550
STATUS   : ONBATT
LINEV    : 000.0 Volts
LOADPCT  :  27.0 Percent Load Capacity
BCHARGE  : 091.0 Percent
TIMELEFT :  15.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 5 Minutes
MAXTIME  : 0 Seconds
SENSE    : Medium
LOTRANS  : 092.0 Volts
HITRANS  : 139.0 Volts
ALARMDEL : 30 seconds
BATTV    : 11.9 Volts
LASTXFER : Unacceptable line voltage changes
NUMXFERS : 1
XONBATT  : 2013-02-19 10:08:04 -0800 
TONBATT  : 11 seconds
CUMONBATT: 11 seconds
XOFFBATT : N/A
STATFLAG : 0x07060010 Status Flag
SERIALNO : 3B1044X16904 
BATTDATE : 2010-10-27
NOMINV   : 120 Volts
NOMBATTV :  12.0 Volts
FIRMWARE : 843.K2 .D USB FW:K2
END APC  : 2013-02-19 10:08:15 -0800


Ya notaron que esta corriendo con la bateria, bien que pasa cuando regresa la energia?

Broadcast Message from root@my-pc
        (somewhere) at 10:08 ...                                              
                                                                              
Power has returned on UPS BackupUPS 550...


apcaccess
APC      : 001,035,0947
DATE     : 2013-02-19 10:10:40 -0800 
HOSTNAME : my-pc
VERSION  : 3.14.10 (13 September 2011) debian
UPSNAME  : BackupUPS 550
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2013-02-19 10:06:20 -0800 
MODEL    : Back-UPS ES 550
STATUS   : ONLINE
LINEV    : 123.0 Volts
LOADPCT  :  27.0 Percent Load Capacity
BCHARGE  : 074.0 Percent
TIMELEFT :  12.9 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 5 Minutes
MAXTIME  : 0 Seconds
SENSE    : Medium
LOTRANS  : 092.0 Volts
HITRANS  : 139.0 Volts
ALARMDEL : 30 seconds
BATTV    : 13.3 Volts
LASTXFER : Unacceptable line voltage changes
NUMXFERS : 1
XONBATT  : 2013-02-19 10:08:04 -0800 
TONBATT  : 0 seconds
CUMONBATT: 35 seconds
XOFFBATT : 2013-02-19 10:08:39 -0800 
STATFLAG : 0x07000008 Status Flag
SERIALNO : 3B1044X16904 
BATTDATE : 2010-10-27
NOMINV   : 120 Volts
NOMBATTV :  12.0 Volts
FIRMWARE : 843.K2 .D USB FW:K2
END APC  : 2013-02-19 10:10:54 -0800


Listo, todo operando ya solo es cuestion de que dejen que se drene la pila para que vean si su configuracion es la adecuada y en dado caso no sea asi hagan los ajustes.


sábado, 16 de febrero de 2013

Ubuntu 12: Instalacion de OpenERP 6.

Ya que estamos entrados con OpenERP v6, mi lado fuerte es Centos, pero como la mayoria de los manuales hablan de Ubuntu, decidi darme  a la tarea de llevar a cabo la instalacion ya que deberia ser mas facil.

Pero me lleve la sorpresa que a el manual del OpenERP localizado en:

http://doc.openerp.com/v6.1/install/linux/server/index.html

Ahi vienen todas las dependencias que se deben instalar antes de proceder a la instalación, pero o sorpresa, le faltan, ya que ese doc fue hecho con la v10.x de Ubuntu que ya ha pasado algo de tiempo.

Entonces, solo voy a explicar lo que falta, lo demas es el mismo procedimiento o si gustan seguir en paralelo mi anterior post aunque habla de Centos no cambia, el proceso es muy parecido, algunas dependencias cambian en cuanto a sus nombres y es todo.

Este post: http://pheriko.blogspot.mx/2013/02/centos-6-instalar-openerp-6.html

Bien vamos a suponer que PostgreSQL ya esta instalado y todo listo para recibir OpenERP, entonces tenemos que instalar todo esto:

Instalacion de dependencias:

apt-get install python-dateutil python-feedparser python-gdata python-ldap python-libxslt1 \
python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot \
python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber \ 

python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi \
python-setuptools python-cherrypy python-formencode python-dev gcc

NOTA: Lo marcado en color rojo/rosa es lo que le falta a el manual.

Ahora si una vez instalado todo esto pueden seguir el manual o mi manual sin problemas, les debe funcionar tanto para openerp-server y openerp-web.

Una cosa mas, pense que la instalacion bajo Ubuntu iba a instalar algun batch para arranque auntomatico pero no, es el mismo caso que con Centos, entonces lo que estoy haciendo para arrancar el servicio es entrar con el usuario openerp y usando el comando screen:

screen
su openerp
openerp-server
Ctrl+d
screen
su - openerp
openerp-web

Aun no doy tampoco en el batch de arranque automatico, he intentado con algunos pero no funcionan, si saben de alguno me avisan, saludos!!!

sábado, 9 de febrero de 2013

Centos 6: Instalacion de OpenERP 6

Hemos estado trabajando, leyendo y entendiendo como instalar este gran ERP que ha dado la comunidad OpenSource, mucha de la documentacion esta basada en Ubuntu quien ya tiene el paquete listo para usar, pero como dicen, digo, si corre en Ubuntu corre en Centos.

Muchos de los manuales que lei, hablaban que la version de Python era la clave, Centos 6 viene por default con la version 2.6.6, por ello opte por tratar de hacerlo con esta version de Centos.

La nube que tengo en la empresa esta soportada por Centos, no tengo problemas, para que meter otro OS como Ubuntu si no lo requiero?

Continuando con OERP(Para ahorrar teclasos), una de las grandes preguntas era, que version usar? con cual arrancar mi curva de aprendizaje?

Varios que lo han usado me comentaron que me fuera por la version 6.0, en el sitio de OERP, nos ofrecen la 7 que es la mas reciente, pero si nos vamos a la versiones anteriores en el sitio(older versions) tenemos 4:

  • 6.0
  • 6.1
  • 7.0
  • trunk
Por ello mejor optamos por la que tiene mas en el mercado y mas instalaciones, esto nos da la certeza que si algo sale mal, alguien pudiera ya haberlo arreglado y darnos el parche, entonces elegimos la 6.0 que sigue LTS.

Una gran caracteristica de OERP, es que se basa en PostgreSQL, por que? Bien tengo mucho tiempo trabajando con MySQL, muchos de los sistemas que administro se basan en el, por que OERP no? No he preguntado ni lo voy hacer, por que ? Muy simple.

Quiero pensar que los que iniciaron este gran proyecto se dieron a la tarea de probar distintas bases de datos y que fueran de codigo abierto, y estoy seguro que PostgreSQL fue la mejor BD para este gran producto.

Yo nunca la he usado pero ya estoy aprendiendo hacerca de, y no lo he hecho por que muchos de las aplicaciones que manejo como bacula, un sistema de almacenaje fueron disenados para ella y yo no he tenido problemas serios, han sido muy leves y pocas pero muy pocas veces han sido problemas relacionados con MySQL en si, confio en ella plenamente, pero en este caso la historia es otra.

Es bueno conocer cosas nuevas, asi que vamos a tener que meternos con PostgreSQL.

Una cosa importante es que Centos a diferencia de Ubuntu viene con la version 8.4, bueno es una larga historia del por que RedHat/Centos hacen uso de estas versiones, son estables y no hay otra no los culpo, las cosas funcionan y es lo que importa.

Pero esta vez voy a irme mas arriba, nosotros vamos a trabajar con una version mas reciente de PostgreSQL, lo bueno que alguien ya hizo la tarea por nosotros asi que nos lo puso muy facil, la version sera la 9.2.

De ahi siguen varias dependencias de Python, por ello vamos a tener que instalar 2 repos, rpmforge y epel ya que el sistema base Centos no tiene todas pero alguien ya nos la dio facil.

OERP 6.0 se basa en 2 aplicaciones, que son el servidor llamado openerp-server y openerp-web que es la interface con la que trabajaran los usuarios directamente, existe otra pero es la GUI que se instala en Windows, creo que hay tambien para Linux pero no la requiero yo, nosotros nos vamos a basar directamente con un navegador como firefox ejemplo.

Ya hemos explicado un poco a lo que nos vamos a enfrentar es momento de iniciar.

Instalacion del OS

Esto solo lo voy a comentar, vamos a trabajar como ya lo mencione en la version 6.3 release, mi caso es la arquitectura x64, un servidor debe ser siempre este tipo de hw, ya no compren nada x86, al menos que no tengan otra opcion, pero aun asi la instalacion debe funciona en la x86.

Una gran ventaja es que Centos 6 hizo algo que FreeBSD tiene desde hace mucho, puede hacer una instalacion con lo minimo y ya instalado empezar a meter todo lo que se vaya necesitando, esto me agrada mucho, solo tener lo que requerimos, nada mas.
Instalen el OS, lo configuracion a su anotojo y lo actualizan antes de hacer cualquier instalacion, altamente recomendable lo actualicen.

Una vez actualizado, configurado a su antojo, lo reinician y seguimos lo que sigue.

Instalacion de Herramientas Basicas

La version minima de Centos que les mencione no tiene las siguientes herramientas que vamos a requerir, asi que debemos instalarlas:
  • wget
  • telnet
  • vim
yum install vim wget telnet

Instalacion de Repositorios Necesarios.

Como les comente, Centos base no proporciona todo lo requerido, asi que vamos a agregar los siguientes repos, estos los van a localizar rapido con google, pero aqui coloco los links por si tiene problemas de localizacion:

Para todos deben elegir que sea para su arquitectura en mi caso x64 para Centos 6.

Ya que los instalen vamos hacer unos ajustes, para epel, vamos abrir el archivo de configuracion y deshabilitar que centos los use cada que uno desea instalar algun paquete, pero no hay problema, cuando lo necesitemos le vamos hablar.

Asi quedaria:

Editar el siguiente archivo:

vim /etc/yum.repos.d/epel.repo

Y lo dejan asi:

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0    <=========Solo cambian este parametro como dice aqui.
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


Salvan y salen.

De ahi sigue, Centos, como vamos hacer la instalacion de PostgreSQL de un repo externo, tenemos que pedirle a Centos que excluya a el de su lista de paquetes, para ellos editamos el siguiente archivo:

vim /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgres*   <======= agregan esto

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgres*  <======= agregan esto

Salvan y salen.

De aqui yo voy a agregar el siguiente paquete:

screen que nos lo proporciona rpmforge.

yum install screen

Listo vamos por el siguiente paso.

Instalacion de PostgreSQL 9.2

Un simple comando:

yum install postgresql92 postgresql92-server

Aqui observen de donde esta trayendo los repos, debe ser de nuestro repo externo verifiquen esto.

Installing:
postgresql92              x86_64    9.2.3-2PGDG.rhel6    pgdg92    968 k
postgresql92-server             x86_64    9.2.3-2PGDG.rhel6       pgdg92    3.8 M
Installing for dependencies:
postgresql92-libs               x86_64  9.2.3-2PGDG.rhel6    pgdg92  185 k

Ya instalado, vamos a configurarlo para OERP.

Vamos iniciando el sistema base de PostgreSQL:

service postgresql-9.2 initdb
Initializing database:                                     [  OK  ]


Que arranca cada que prendamos el servidor:


chkconfig postgresql-9.2 on

Iniciamos el servicio:

service postgresql-9.2 start
Starting postgresql-9.2 service:                           [  OK  ]


PostgreSQL agrega un usuario llamado: postgres que es el administrador, algo que me agrado mucho es como el separa los permisos, este por default no tiene password y tiene su directorio en:

/var/lib/pgsql

Ahi dentro editamos el archivo .bash_profile y agregamos esto:

PATH=$PATH:$HOME/bin:/usr/pgsql-9.2/bin
export PATH


Ahora vamos a agregarle un pasword a el usuario admin de PostgreSQL ya saben 'postgres':

su - postgres
-bash-4.1$


psql postgres postgres
psql (9.2.3)
Type "help" for help.

postgres=#


postgres=# alter user postgres with password 'mipassword';
ALTER ROLE
postgres=#


NOTA: aqui ustedes elijan su propio password.

Salen, para esto es:

postgres=# \q
-bash-4.1$ exit


Salimos y regresamos a nuestro root.

Lo que sigue es editar el archivo pg_hba.conf y hacer los siguientes cambios:

vim /var/lib/pgsql/9.2/data/pg_hba.conf

local   all             all    md5
# IPv4 local connections:
host    all             all    127.0.0.1/32    md5
# IPv6 local connections:
host    all             all    ::1/128        md5

Debe quedar asi, salvan y salen.

Por ultimo configurar PostgreSQL para que escuche en cualquiera de nuestras interfaces de red, ya que por default solo escucha en el localhost y aqui requiero que tambien mi nic(ethX) pueda responder peticiones por si requiero accesar via pgadmin.

Abren el archivo de configuracion y buscan el parametro listen, por default esta comentado:

vim /var/lib/pgsql/9.2/data/postgresql.conf

#listen_addresses = 'localhost'

Lo dejan asi:

listen_addresses = '*'

Reinician el servicio de postgresql:

service postgresql-9.2 restart

Ya con esto listo es ahora cuestion de agregar el usuario de PostgreSQL que administrara todo lo relacionado con OERP.

su - postgres

psql postgres postgres
Password for user postgres:
psql (9.2.3)
Type "help" for help.

postgres=#create user openerp with password 'admin' superuser;
CREATE ROLE


Ahora creamos la base de datos de OERP y de una vez le asignamos el usuario nuevo.

create database empresa1 owner=openerp;
CREATE DATABASE

postgres=# \q
-bash-4.1$exit


Regresamos a nuestro root y repetimos un paso, editar el archivo pg_hba.conf y agregamos esta linea:

host    all             openerp         192.168.50.0/24         md5

Reinician el servidor, ya saben como, correcto?

Instalacion de Dependencias

yum -y install python-dateutil python-ldap libxslt-python libxml2-python \ 
python-setuptools python-lxml python-mako python-psycopg2 babel \
python-babel pychart  python-pyparsing python-reportlab python-simplejson \
pytz PyXML postgresql-python  graphviz python-imaging python-devel  \
openldap-clients python-yaml python-cherrypy python-formencode

Las que dependen de epel:

yum install -y --enablerepo=epel python-feedparser python-ldaphelper \
pydot python-vobject python-vatnumber python-werkzeug python-ZSI \
python-werkzeug python-openid pywebdav

Por ultimo requerimos gcc:

yum install -y gcc

Instalacion de OpenERP 6

Tenemos que bajar los 2 paquetes, server y web, de aqui:

Estos los coloco en /opt y de ahi empiezo la fiesta:

tar -xzf openerp-server-6.0-latest.tar.gz
cd openerp-server-6.0.4
python setup.py install

Esto es solo una parte de la salida y no hay errores:

running install_data
copying man/openerp-server.1 -> /usr/share/man/man1
copying man/openerp_serverrc.5 -> /usr/share/man/man5
creating /usr/share/doc/openerp-server-6.0.4
copying doc/INSTALL -> /usr/share/doc/openerp-server-6.0.4
copying doc/openerp-server.logrotate -> /usr/share/doc/openerp-server-6.0.4
copying doc/README.userchange -> /usr/share/doc/openerp-server-6.0.4
copying doc/openerp-server.init -> /usr/share/doc/openerp-server-6.0.4
copying doc/Changelog-4.x -> /usr/share/doc/openerp-server-6.0.4
copying doc/openerp-server.conf -> /usr/share/doc/openerp-server-6.0.4
copying doc/Changelog-4.x.moved -> /usr/share/doc/openerp-server-6.0.4
copying doc/README.urpmi -> /usr/share/doc/openerp-server-6.0.4
copying doc/Changelog -> /usr/share/doc/openerp-server-6.0.4
copying doc/Changelog-6.x -> /usr/share/doc/openerp-server-6.0.4
creating /usr/share/doc/openerp-server-6.0.4/migrate
creating /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0
copying doc/migrate/3.3.0-3.4.0/post.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0
copying doc/migrate/3.3.0-3.4.0/pre.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0
copying doc/migrate/3.3.0-3.4.0/README -> /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0
creating /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0
copying doc/migrate/3.4.0-4.0.0/pre-tiny.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0
copying doc/migrate/3.4.0-4.0.0/post-tiny.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0
copying doc/migrate/3.4.0-4.0.0/post.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0
copying doc/migrate/3.4.0-4.0.0/pre.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0
copying doc/migrate/3.4.0-4.0.0/README -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0
running install_egg_info
Copying openerp_server.egg-info to /usr/lib/python2.6/site-packages/openerp_server-6.0.4-py2.6.egg-info
running install_scripts
copying build/scripts-2.6/openerp-server -> /usr/bin
changing mode of /usr/bin/openerp-server to 755


Listo, ahora vamos a agregar el usario en centos que ejecutar OERP:

useradd openerp

Una persona genero un script para poder arrancar openerp-server desde init, ya que por default esta forma de instalarlo no lo genera, recuerden solo Ubuntu tiene esas ventajas, pero no hay problema, baje este script y lo salvan en /etc/init.d/

cd /etc/init.d
wget http://www.bdeferme.net/downloads/openerp-server.txt
mv openerp-server.txt openerp-server
chmod +x openerp-server
chkconfig --add openerp-server
chkconfig openerp-server on

Como ya tenemos el usuario 'openerp' tenemos que agregar los parametros de PostgreSQL igual que a el usuario 'postgres', abre archivo

su - openerp
vim .bash_profile

Y a el final agregamos esto:

PATH=$PATH:$HOME/bin:/usr/pgsql-9.2/bin
export PATH

Salimos y salvamos, regresamos a el usuario root.

Ya podemos arrancar el servicio, pero antes de recordar que este servicio no se ejecuta como root, por ello agregamos el usuario openerp, asi que entramos a su consola y ejecutamos esto:

su - openerp
openerp-server -s
[2013-02-09 13:46:44,980][?] INFO:server:OpenERP version - 6.0.4
[2013-02-09 13:46:44,980][?] INFO:server:addons_path - /usr/lib/python2.6/site-packages/openerp-server/addons
[2013-02-09 13:46:44,980][?] INFO:server:database hostname - localhost
[2013-02-09 13:46:44,980][?] INFO:server:database port - 5432
[2013-02-09 13:46:44,980][?] INFO:server:database user - openerp
[2013-02-09 13:46:44,980][?] INFO:server:initialising distributed objects services
[2013-02-09 13:46:45,413][?] INFO:web-services:starting HTTP service at 0.0.0.0 port 8069
[2013-02-09 13:46:45,415][?] INFO:web-services:starting HTTPS service at 0.0.0.0 port 8071
[2013-02-09 13:46:45,416][?] INFO:web-services:Registered XML-RPC over HTTP
[2013-02-09 13:46:45,417][?] INFO:web-services:starting NET-RPC service at 0.0.0.0 port 8070
[2013-02-09 13:46:45,418][?] INFO:server:Starting 3 services
[2013-02-09 13:46:45,419][?] INFO:server:OpenERP server is running, waiting for connections...


Nos salimos, Ctrl+c, este parametro -s le pide a OERP que nos genere el archivo de configuracion en el folder del directorio del usuario que lo ejecuta, abrimos el archivo 'openerp_serverrc' y editamos estos parametros, los demas los dejamos tal cual estan, que ya anteriormente los habiamos anotado.

db_password = 'mipasword'
db_port = 5432
db_name = empresa1
db_user = openerp
db_host = 'localhost'

Salvamos y salimos, nos vamos a el usuario root.

Ahora hacemos lo siguiente:

cd /var/run
mkdir openerp
chown openerp:openerp openerp/

Ahora si vamos a iniciar el servicio:

service openerp-server start

Van a empezar a ver muchas lineas en su consola, no hay problema toda va bien mientras el servicio este escuchando por peticiones, vamos a revisar:

netstat -na -l --inet | grep :80
tcp        0      0 0.0.0.0:8069                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:8070                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:8071                0.0.0.0:*                   LISTEN


Listo, puertos escuchando por peticiones, ahora vamos a ver nuestro archivo messages y ver que dice:

tail /var/log/messages
Feb  9 13:57:01 oerp61 ¿<15>OpenERP Server 6.0.4:empresa1:DEBUG:orm:column uid is in the table wkf_instance but not in the corresponding object workflow.instance
Feb  9 13:57:01 oerp61 ¿<15>OpenERP Server 6.0.4:empresa1:DEBUG:orm:column version_pattern is in the table ir_module_module_dependency but not in the corresponding object ir.module.module.dependency
Feb  9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[01]: Assertions report:
Feb  9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[02]: Level#011success#011failed
Feb  9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[03]: error#0111#0110
Feb  9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[04]: total#0111#0110
Feb  9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[05]: end of report (1 assertion(s) checked)
Feb  9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:data:Computing parent left and right for table res_partner_category...
Feb  9 13:57:02 oerp61 OpenERP Server 6.0.4:empresa1:INFO:server:Starting 3 services
Feb  9 13:57:02 oerp61 OpenERP Server 6.0.4:empresa1:INFO:server:OpenERP server is running, waiting for connections...


Ahi esta, listo para recibir conexiones.

Instalacion de OpenERP-WEB

OERP server esta operando, pero necesitamos alguna interface para poder accesarlo, aqui entra openerp-web, como ya lo bajamos, ahora vamos por el.

tar -xzf openerp-web-6.0-latest.tar.gz
cd openerp-web-6.0.4/
cd lib/
../populate.sh
NOTA:Van a empezar a ver mucho informacion, no se asusten.
cd..


Installed /opt/openerp-web-6.0.4/lib/pytz-2012j-py2.6.egg
Processing dependencies for pytz>=2009j
Finished processing dependencies for pytz>=2009j
Searching for xlwt>=0.7
Reading http://pypi.python.org/simple/xlwt/
Reading https://secure.simplistix.co.uk/svn/xlwt/trunk
Best match: xlwt 0.7.4
Downloading http://pypi.python.org/packages/source/x/xlwt/xlwt-0.7.4.tar.gz#md5=231f4ff30894fc70d142b4ed1ba71cc0
Processing xlwt-0.7.4.tar.gz
Running xlwt-0.7.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-UgI6DI/xlwt-0.7.4/egg-dist-tmp-vvnHwe
zip_safe flag not set; analyzing archive contents...
Adding xlwt 0.7.4 to easy-install.pth file
Installed /opt/openerp-web-6.0.4/lib/xlwt-0.7.4-py2.6.egg
Processing dependencies for xlwt>=0.7
Finished processing dependencies for xlwt>=0.7


Seguimos la instalacion:

cd..
python setup.py install

Otra vez mucha info, al terminar tenemos algo +/- asi:

Finished processing dependencies for openerp-web==6.0.4

Copeamos el archivo de configuracion ejemplo que esta en el mismo folder donde estamos pero dentro del 'doc':

cd doc/
cp openerp-web.cfg /etc/

Ajustes, hacemos lo siguiente:

mkdir /var/log/openerp-web
touch /var/log/openerp-web/access.log
touch /var/log/openerp-web/error.log
chown -R openerp:openerp /var/log/openerp-web/

Editamos el archivo de configuracion y cambiamos los parametros acorde a su red, yo solo cambie estos:

server.socket_host = "192.168.50.112"

Y estos:

log.access_file = "/var/log/openerp-web/access.log"
log.error_file = "/var/log/openerp-web/error.log"
#log.access_level = "INFO"
#log.error_level = "INFO"

Salvamos y salimos.

Ahora vamos a arrancarlo, para ellos debemos entrar con el usuario que ya tenemos listo:

screen
su - openerp
openerp-web

No les va a arrojar nada hasta que empiecen a conectarse, pero vamos a verificar si nuestra inteface esta lista para recibir conexiones:

netstat -na -l --inet | grep :8080
tcp        0      0 192.168.50.112:8080         0.0.0.0:*                   LISTEN

Ahi esta lista, vamos a una pc que tenga navegador dentro de la red y entremos a ver que pasa?

Figura 1: Interface de Entrada.
Listo, hemos tenido exito.

Por default tenemos el usuario: admin con password: admin.

Entramos y... listo esta listo para hacer configurado.