jueves, 23 de abril de 2015

Backup y Restore de PostgreSql por consola

Tengo un servidor Linux que es el equipo de testing con postgresql, y el equipo Windows también con postgresql, necesito hacer un backup en el Windows y tirarlo en el Linux.
En la carpeta de instalación de PostrgreSQL hay un ejecutable Pd_dump.exe, lo que hay que ejecutar desde la consola es lo siguiente:
Cd c:/…/bin/
Pg_dump.exe –C  –U usuario base > archivo.respaldo.sql
-C es para incluir el Create
-U es para decirle cual es el usuario
base se debe de cambiar por la base a respaldar
archivo.respaldo.sql es el nombre del sql a crear, cambiarlo

luego desde Linux para levantar la base debemos de hacer lo siguiente:
su postgres
psql < archivo.respaldo.sql


Con esto tenemos la base que estaba en el equipo de desarrollo Windows en el equipo de Testing Linux

jueves, 16 de abril de 2015

Instalación de Postgresql, Java, Jboss, en Linux Centos, para alojar aplicación genexus

En el siguiente post voy a comentar todos los pasos que tuve que dar para poder tener una máquina virtual (en mi caso pero podría ser un equipo físico) con Jboss y que funcione una aplicación generada con genexus.
Detalle de software que utilice.
Linux Centos 6.4 minimal
Genexus Evo3 U1
Java 7
PostgreSql 9
Jboss 7.1.1

Voy a ir contando paso a paso lo que hice y por qué.

Primero tengo que instalar Centos, eso no lo voy a detallar pero comento que descargue la versión 6.4 que la tuve que buscar bastante porque estaba discontinuada por no tener mantenimiento (necesitaba que fuera esa versión porque estaba replicando un ambiente de producción). Luego de tener la instalación completa, la actualizamos

yum update
yum upgrade

Luego de tener el equipo instalado y funcionado con las últimas actualizaciones vamos a empezar a instalar el software base.
Con el siguiente comando vemos la versión de java que podríamos instalar
yum search java | grep 'java-'

Buscamos la versión 7 y corremos lo siguiente
yum install java-1.7.0-openjdk-src.x86_64

Ahora vamos a instalar PostgreSQL, con la misma idea buscaos la versión que tenemos en los repositorios e instalamos la que queramos.
yum install postgresql-server.x86_64
Luego vamos a configurar postgresql, debemos de seguir la siguiente secuencia

service postgresql initdb
service postgresql start
su postgres
psql
ALTER USER postgres WITH PASSWORD ‘pass_que_prefiera;
\q
Exit

Si vamos a acceder desde afuera deberíamos de tocar los siguientes archivos
/var/lib/pgsql/data/pg_hba.conf
En mi caso como si quiera accede desde afura tuve que dejarlo asi:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust
#######ident
host    all         all         192.168.73.153/32           trust

Y el archivo postgresql.conf debo de buscar las líneas que están comentadas y des comentarlas y modificarlas para que quede así:
listen_addresses = '*'
port = 5432 

Ahora debemos de continuar instalando jboss, para eso instalamos algunas herramientas previas

yum install wget
yum install unzip

Ahora descargamos e instalamos jboss

wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip
unzip jboss-as-7.1.1.Final.zip -d /usr/share
adduser jboss
chown -fR jboss.jboss /usr/share/jboss-as-7.1.1.Final/
su jboss
cd /usr/share/jboss-as-7.1.1.Final/bin/
./add-user.sh (ManagementRealm, usuario foo y pass)

Ahora ejecutamos jboss y probamos que funciones accediendo por el navegador, por las dudas bajamos el firewall porque por defecto tiene reglas y pueden hacernos ruido en este paso.

Limpiar las reglas de iptables (firewall)
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Levantar jboss (ver que no de ningún error)

/usr/share/jboss-as-7.1.1.Final/bin/standalone.sh -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0&
Acceder de cualquier navegador a la ip del equipo y debería de mostrarnos la página de jboss inicial.

Con esto tendremos casi todo, pero lo mejor es dejar el firewall con las reglas que tiene y agregar nuestras reglas.
Les dejo un ejemplo del archivo /etc/sysconfig/iptables en el que expongo el puerto 8080 para jboss, el 9990 para la consola de administración de jboss, y el 5432 para conectarme a postgres desde fuera (esto si es producción no se debería de agregar)

############### archivo /etc/sysconfig/iptables ########################
# Generated by iptables-save v1.4.7 on Wed Apr 15 07:59:02 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [13:1644]

-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9990 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

# jboss
-A FORWARD -p tcp -m tcp --dport 8080 -j ACCEPT

# postgresql
-A FORWARD -p tcp -m tcp --dport 5432 -j ACCEPT

# jboss admin
-A FORWARD -p tcp -m tcp --dport 9990 -j ACCEPT


-A FORWARD -j REJECT --reject-with icmp-host-prohibited

-A OUTPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 9990 -j ACCEPT

COMMIT
# Completed on Wed Apr 15 07:59:02 2015
############### FIN ######################################


Ademas deberiamos de configurar para que jboss se levantara cada vez que se reinicie el servidor, yo cree un arrancador muy basico que se puede configurar a nuestras necesidades. Este archivo se podria llamar /etc/init.d/jobss711

######################### archivo /etc/init.d/jobss711 #################3

#!/bin/bash 
### BEGIN INIT INFO 
# Provides:          jbossas7 
# Required-Start:    $local_fs $remote_fs $network $syslog 
# Required-Stop:     $local_fs $remote_fs $network $syslog 
# Default-Start:     2 3 4 5 
# Default-Stop:      0 1 6 
# Short-Description: Start/Stop JBoss AS 7 
### END INIT INFO 
# chkconfig: 35 92 1 
 
## Include some script files in order to set and export environmental variables 
## as well as add the appropriate executables to $PATH. 
[ -r /etc/profile.d/java.sh ] && . /etc/profile.d/java.sh 
[ -r /etc/profile.d/jboss.sh ] && . /etc/profile.d/jboss.sh 
 
JBOSS_HOME=/usr/share/jboss-as-7.1.1.Final
 
AS7_OPTS="$AS7_OPTS -Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true"   ## See AS7-1625 
AS7_OPTS="$AS7_OPTS -Djboss.bind.address.management=0.0.0.0" 
AS7_OPTS="$AS7_OPTS -Djboss.bind.address=0.0.0.0" 
 
case "$1" in 
    start) 
        echo "Starting JBoss AS 7..." 
        #sudo -u jboss sh ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS           ##  If running as user "jboss" 
        #start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh -- $AS7_OPTS   ## Ubuntu 
        ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS & 
    ;; 
    stop) 
        echo "Stopping JBoss AS 7..." 
        #sudo -u jboss sh ${JBOSS_HOME}/bin/jboss-admin.sh --connect command=:shutdown            ##  If running as user "jboss" 
        #start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-admin.sh -- --connect command=:shutdown     ## Ubuntu 
        ${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown 
    ;; 
    *) 
        echo "Usage: /etc/init.d/jbossas7 {start|stop}"; exit 1; 
    ;; 
esac 
 
exit 0

######################### FIN archivo #################

Con chkconfig podremos agregarlo para que inicie y finalice cuando arranquemos o apaguemos el equipo, ver como se adapta a cada instalación de Linux, por ejemplo si quieren que se arranque cuando iniciamos entorno grafico o no. Por ejemplo algo asi
chkconfig –level 345 jboss711 on

Probemos en reiniciar el equipo y probar que siga funcionando jboss y postgresql

Esta todo funcionando, ahora lo único que falta es crear el war desde gx, con el Depoyment wizard sin hacer ningún cambio, lo único que hay que hacer es agregar todas las clases al war generado (se puede editar con winzip) ya que genexus solo agrega algunas y si se quiere agregar cuando se está generando desde la aplicación DW de gx se cae (en mi caso, pueden probarlo ustedes).
Y por último hay que tirar el war en /usr/share/jboss-as-7.1.1.Final/standalone/deployments, mirar el log y ver que no tire ningún error, y por último en un navegador accede a la aplicación.
Recordar que el link sería algo así:



jueves, 26 de marzo de 2015

Maquinas Virtuales en Datacenter

Recientemente tuve posibilidad de administrar un par de maquinas virtuales en un datacenter y como fue mi primera vez tuve que investigar un poco.


Me base mayormente en este link (https://www.jorgedelacruz.es/2014/05/06/crear-una-vm-y-optimizarla-al-maximo/) que ademas pego abajo.




VMware: Crear una VM y optimizarla al máximo

best-vm-introBuenos días amigos, hoy quiero dejar aquí unos trucos que siempre utilizo para dejar un entorno realmente fino, es un “Hardening” que yo realizo a las VM y así conseguir no tener elementos innecesarios que hacen que nuestros Hosts tengan que procesar cosas que no usamos. Cuando se crean VMs, nadie o casí nadie aplica estas Best Practices de VMware, con ellas podemos exprimir un poco más nuestro entorno o el de nuestro cliente, aparte de dar ese toque extra de optimización que casi nadie presta atención. Como el post es realmente largo, voy a dejaros aquí un menú para que os mováis más rapidamente a la sección que os interesa:
  1. Creacción de la VM
  2. Primer Consejo (Adaptadores VMXNET3)
  3. Segundo Consejo (Controladora SCSI VMware Paravirtual)
  4. Tercer Consejo (Thick Eager como mejor opción)
  5. Cuarto Consejo (Eliminando dispositivos I/O innecesarios)

Creación de la VM

>> Volver Arriba El primer paso es crear nuestra VM, para ello sobre unaCarpeta, Host, o Cluster pulsaremos botón derecho New Virtual Machine.best-vm-001En el tipo de configuración, vamos a seleccionar Custom, ya que vamos a realizar cambios que no suelen realizar por defecto.best-vm-005El nombre de la VM, en mi caso VM-LAB y en la carperta donde queremos ubicar la VM En el Clúster donde queremos que se ejecute la VM Y podemos seleccionar el Host donde queremos que se asocie y levante por primera vez.best-vm-008Si tuvieramos un Resource Pool, podríamos ubicar la VM en el que quisieramos. El Datastore donde queremos alojar la VM, en mi caso en un almacenamientoSAS formateado en tipo VMFS5best-vm-010El tipo de Virtual Machine, desde el vSphere Client tradicional, el que estoy ejecutando, solamente podremos crear nuevas VM con Virtual Hardware 8 como máximo, si queremos Virtual Hardware 9 o 10 deberemos hacer todo esto desde el vSphere Web Client.best-vm-011En tipo de Sistema Operativo, vamos a seleccionar Windows Server 2012 64bitbest-vm-012A nivel de CPU, con 1 virtual Socket y 2 cores es suficiente para esta instalación.best-vm-013Con los 4GB de memoria RAM es suficiente para esta demo.best-vm-014  Primer Consejo: >> Volver Arriba Las tarjetas de red siempre con adaptadores VMXNET3diferencias entre los distintos tipos de adaptadores de red:
  • E1000: Una versión emulada del adaptador de red Intel 82545EM Gigabit Ethernet. Practicamente obsoleto, hace poco incluso hubo varios KB que recomendaban actualizar a VMXNET3 en entornos de vSphere 5 en adelante.
  • E1000e: Esta característica emula el nuevo modelo de adaptador de red Intel Gigabit NIC (número 82574). Es más conocida como la vNIC “e1000e” . e1000e está disponible solamente en versión de Virtual Hardware 8. Es la tarjeta por defecto para Windows 8 y nuevas VM. No es compatible con Linux, al menos no se muestra desde la Interfaz de vSphere.
  • VMXNET 3: El adaptador VMXNET 3 ha sido creado para la siguiente generación, incluyendo un nivel y rendimiento de paravirtualización de la NIC increíble. Para VMXNET3 es necesario instalar las VMware Tools, de lo contrario no veremos presente esta tarjeta de Red.
best-vm-015  Segundo Consejo: Usar de controladra SCSI, VMware Paravirtual, diferencias entre los modelos de controladoras SCSI>> Volver Arriba
  • BusLogic – esta fue una de las primeras controladoras emuladas vSCSI que estuvieron disponibles en VMware. Versiones muy viejas de Windows traian este driver por defecto, lo cual era muy beneficioso para instalar cualquier Sistema Operativo de antaño.
  • LSI Logic Parallel (más conocido solamente por LSI Logic) – este fue otra controladora vSCSI emuladathis que estuvo disponible desde el inicio de VMware. Casi cualquier sistema operativo del planeta tiene este driver y es bastante conveniente seleccionarlo si no sabemos que estamos tocando en esta sección.
  • LSI Logic SAS – Es la evolución lógica del driver paralleo para los nuevos Sistemas Operativos que se lanzaron al mercado. Empezó a ser más popular cuando Microsoft requirió MCSC con Windows 2008 o nuevas versiones.
  • VMware Paravirtual (aka PVSCSI) – esta controladora vSCSI ha sido creada por y para entorno de virtualización, y además dieseñada para soportar un nivel muy alto de throughput con un proceso mínimo que lo convierte en el driver más eficiente.
best-vm-016Crearemos un nuevo disco.best-vm-017Tercer Consejo: Pensar antes de seleccionar aquí una de las tres opciones, la diferencia de rendimiento puede ser considerable, veamos: >> Volver Arriba
  • Thick Provisioning Lazy Zeroed: Lo peor de las dos siguientes opciones junto, primero porque se expande completamente ocupando los 40GB (por ejemplo) pero en vez de escribir todo a 0, va “formateando” según necesita, con lo que nunca sabremos el I/O real, porque es realmente variable.
  • Thick Provisionin Eager Zeroed: Si necesitamos rendimiento rápido y además tenemos espacio en el Datastore, esta es la mejor opción. Al tener todo el disco provisionado y escrito a 0, el trabajo y el I/O a nivel de disco puede ser monitorizado correctamente, sabiendo que el I/O que vemos es estable.
  • Thin Provision: El disco no ocupa todo el espacio asignado, va ocupando según se llena. Tiene muchas ventajas para entornos donde no tenemos mucho disco, pero sin emabrgo tenemos que monitorizar el estado del Datastore, y su capacidad, constantemente.
best-vm-018En esta ventana dejaremos por defecto.best-vm-019Y aquí podremos ver algutinados nuestros 3 primeros consejos. Voy a instalar un Windows Server 2012 R2 Standard Edition, asi que lo mapeo en mi VM en la parte de CD/DVDbest-vm-022Y marco la opción de conectar al arranque de la VM.best-vm-023Veremos el asistente de Microsoft cargando la última versión de su SSOO.best-vm-024El típico asistente para seleccionar idioma.best-vm-025Seleccionaremos Windows Server 2012 R2 Standard.best-vm-029Pulsaremos que queremos una instalación personalizada.best-vm-031No nos detectará ningún disco, aunque creamos uno antes de 40GB, esto esporque la controladora Paravirtual no viene por defecto en Windows Server 2012R2, ni en 2008 R2, ni en 2003 ni XP, etc. Por suerte, en el año 2014, tenemos unas imágenes de virtual Floppy, si como lees. Y tendremos que conectar nuestro floppy a nuestro datastore.best-vm-033Y la seleccionaremos bajo la ruta del Datastore vmimages/floppies/ y ahí estan las versiones para los distintos Sistemas Operativos.best-vm-034Volveremos a cargar y pulsaremos Cargar controlador y Aceptar.best-vm-036El Virtual floppy hará su trabajo y nos mostrará ya el driver para añadir a nuestro Sistema Operativo.best-vm-037Y voilá, ya tenemos nuestro disco de 40GB disponible mediante Controladora SCSI Paravirtual.best-vm-038Terminamos la instalación y al arrancar la VM, veremos que tampoco tenemos acceso a Internet, es porque tenemos que instalar las VM Tools en nuestra VM, esto se hace desde Guest > Install/Upgrade Vmware Tools.best-vm-040Nos mostrará un Autosetup para empezar a Instalar.best-vm-041A mí siempre me gusta darle a personalizado, aunque nunca suelo tocar nada, pero en este caso podemos ver lo que nos instalar, entre ello el driver de tarjeta de red VMXNET3best-vm-044Al terminar nos mostrará un mensaje para reiniciar, pulsaremos .best-vm-045Cuarto Consejo: >> Volver Arriba Al reiniciar, si nos vamos a nuestro Administrador de dispositivos, tenemos muchos que no nos van a servir nunca más (Tener en cuentra vuestra configuración propia) quizás usáis un Fax que está conectado a un Host físico, o una mochila de seguridad de un software. Si no fuera nada de esto, todo lo rojo nos sobra, nos molesta, y se lleva recursos para virtualizar algo que no vamos a usar.best-vm-048Lo primero que haremos será desmapear el CD/DVD(ISO) de Windows Server 2012 R2 y dejar la unidad de CD/DVD en modo Passthrough, con este método no tendremos acceso a la unidad de CD/DVD del host físico, que ya casi ninguno lo trae.best-vm-051También forzaremos para entrar en la BIOS en el siguiente Boot, que tenemos trabajo allí.best-vm-052Al arrancar en BIOS, iremos hasta Advanced.best-vm-053Y en la sección I/O Device Configurationbest-vm-054Veremos que todo está en Auto, Enabled, etc.best-vm-055Pues así debe quedar estas opciones para evitar toda esta carga a cada VM.best-vm-056Pulsamos F10 para salvar y salir.best-vm-057Y ya veremos que nuestro Administrador de dispositivos queda más limpio, y con menos recursos.best-vm-058Con esto ya hemos terminado, esta VM, está lista y optimizada. Quedaría muchas cosas a nivel de Windows, pero este tutorial era solamente para VMWare. Crear una VM son dos clicks, crear una VM y dejarla fina, son algunos más. Un saludo

domingo, 30 de noviembre de 2014

Descargar subtitulos para peliculas y series online

Creo que está un poco de moda el tema de mirar series ya hace algunos años, también el tema de descargar las películas para mirarlas cuando uno quiere, pero el principal problema que surge es el de encontrar los subtítulos que se ajusten a el archivo que se ha descargado. Esto ya lo he vivido con varios de mis amigos que me piden una serie, me "exigen" que sea en ingles porque les gusta verlas en el audio original, pero cuando se las das, dicen, ¿y los subtítulos?
Bueno ahí empieza mi odisea para intentar explicarles cómo hacer para encontrar los subtítulos, que normalmente me dicen, si si, entendí todo, pero al tiempo o vuelve a pedirme los subtítulos o no miran lo que me pidieron. Entonces en este pequeño resumen voy a comentar como hago yo para llegar a los subtítulos de forma fácil, no la quiero rebuscar en buscarlos en alguna página y ver los fps de la película para ver cual se adapta ni nada de eso, ya que yo lo sé hacer pero explicarlo me parece que sería pérdida de tiempo.

Entonces la forma más fácil, o la que utilizo mas es abrir la película con el reproductor BSPlayer, el free, no necesita ser el pago, y este automáticamente encuentra el subtítulo en 3 servidores que son de los más conocidos o que tienen más subtítulos en su base de datos. Si la película ya tienen algún subtitulo en otro idioma, por defecto BSPlayer no busca automáticamente, peor si van al menú, pueden forzar la búsqueda y forzar a que utilice el subtítulo que ustedes quieren, que se lo pueden bajar, y utilizar en otro momento.

Esta forma es la que utilizo en un 80% aproximadamente, la segunda es un programa también free que se llama Subligth, que se muy fácil utilizar, basta con arrastrar la película a el programa, y el se encarga de buscar el que se adapte mejor. Además tienen la funcionalidad de abrir el reproductor preferido (te da las opciones de todos los que tengas instalados) y ya incluir el subtítulo bajado.

Como ven es fácil, así que a probarlo.

miércoles, 26 de noviembre de 2014

Backup / Restore base de datos PostgreSQL

¿Cómo exportar e importar una base de datos postgreSQL?
La forma fácil, pero que no siempre funciona es hacerlo por el PgAdmin, ahí es gráfico y se puede hacer un bakup y un restore.
Lo que voy a explicar son un par de formas de hacerlo desde consola, para los que utilizamos Linux, que también se puede utilizar de Windows.

Backup:  $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}


Backup:  $ pg_dump -U user bd_name > archive_name.sql

Restore: $ psql -U user db_name < /directory/archive.sql