sábado, 29 de septiembre de 2012

Compactando VDI en Linux

Introducción

Entorno:

  • Host: Windows 7
  • Guest: Ubunut 12.04 Server
  • Virtualizador: Virtual Machine

Como sabemos al eliminar un archivo de cualquier Sistema Operativo (SO) este no se elimina realmente del disco duro (DD), lo que se hace es se eliminan las direcciones de donde este se almacena  de esta manera esta "oculto" para el SO pero el espacio que utilizaba sigue estando "ocupado" por el archivo.

Esto no tiene repercusión en un DD físico utilizado por un SO pero sí para un DD virtual (VDI) ya que este espacio NO se reutiliza hasta que se comienza a llenar el VDI y obviamente nuestro archivo VDI que se almacena en el DD crece hasta el límite dependiendo del tamaño que le hallamos asignado en nuestra máquina virtual.

Supongamos este escenario:

  1. SO Linux instalado con todo lo que necesitamos: tamaño del VDI 2.5G, tamaño real usado*: 2.5G
  2. Copiamos videos a nuestra máquina virtual o cualquier archivo grande, tamaño del VDI 5.7G, Tamaño real usado*: 5.7G
  3. Eliminamos estos archivos de la máquina virtual, tamaño del VDI 5.7G, Tamaño real usado*: 2.5G

* Para conocer el tamaño real utilizado en Linux podemos teclear en una consola el siguiente comando.


df -h

Como nos podemos percatar en el punto 3 nuestro archivo ya utilizó el espacio anterior y NO vuelve a hacerse pequeño nuestro archivo VDI.

Existen comandos de VirtualBox que "compactan" este archivo pero si los utilizamos en este punto nos daremos cuenta que al finalizar el comando el archivo sigue teniendo exactamente el mismo tamaño :(

Manos a la Obra.

1. Instalando lo necesario

sudo apt-get install secure-delete

2. Secure Delete tiene 4 herramientas que les pueden ser muy útiles

srm (secure remove), que permite borrar archivos y directorios en forma permanente
smem (secure memory wiper), que permite limpiar tu memoria RAM
sfill (secure free space wiper), que limpia en forma permanente todo el espacio libre de tus discos
sswap (secure swap wiper), que limpia en forma permanente toda la información almacenada en la partición swap.

3. De momento solo utilizaremos una de ellas: sfill

sudo sfill -f /

Este proceso demora bastante así que les recomiendo realizarlo en la noche xD

Una vez finalizado observarán que el archivo VDI creció al límite, es decir si hicieron el VDI de tamaño 100G en VitualBox ahora el archivo utiliza 100G.

Esto es normal puesto que sfill llenó de ceros TODO el espacio libre del VDI

4. Compactando el VDI

Ahora si estamos listos para compactar nuestro archivo y como el VDI tiene perfectamente identificado el espacio libre esta compactación resultará como esperamos.

Windows.

Como ahora utilizo Windows como Host (y es magnifico por cierto) encuentro todo con un click, existe un programa llamado Clone VDI, lo pueden descargar de http://allmyapps.com/apps/clonevdi-virtualbox.

Lo ejecutamos y dejamos estas opciones:



Linux

VBoxManage modifyhd /RUTA/NOMBRE_DEL_ARCHIVO --compact

Listo ahora tenemos de nuevo nuestro archivo de 2.G.

Saludos !



sábado, 22 de septiembre de 2012

Tutoriales en vídeo de OpenERP 6.1

Tutorial en vídeo para usar OpenERP 6.1

He publicado algunos vídeos acerca de OpenERP que me gustaría compartir:

www.youtube.com/grupoaltegra

Si algo les gustaría que documentara en vídeo envíenme un inbox o comenten por aquí en la medida de lo posible lo realizo.

Saludos

¿Desarrollando para OpenERP en Windows?

Intrducción

Si aunque parezca extraño algunos tenemos esa "extraña" necesidad, trabajar en Windows pero editando archivos de OpenERP, probando cambios y lo mas importante subiendo estos a Launchpad.

El primer problema con el que nos encontramos es que es exageradamente tedioso instalar todas las librarías  de Python para correr las fuentes de OpenERP en Windows, si lo logras hacer después de mucho "googlear" bien por ti pero te encontrarás con otros dos enormes problemas:

1. Windows no "conoce" los enlaces "suaves" de Linux con los cuales se recomienda enlazar los módulos de OpenERP a una carpeta principal y esto te obligara a utilizar un "experimento" de enlaces llamado MKLINK en cual deja mucho que desear.

2. Windows no respeta el estándar de fecha por lo que al utilizar Launchpad te darás de topes en la pared ya que te intentará subir "cambios" en archivos que no has tocado.

Después de este punto maldecirás mil veces Windows y regresaras al feo pero muy "estable" Ubuntu.

Estable entre comillas SI, lo puse bien, y es que a pesar de utilizar Linux desde hace mas de 10 años (utilizándolo todos los días no solo un rato) me siento en la total libertad de expresar mi opinión:

Linux NO es nada estable en entorno gráfico, veamos:

Gnome 3, se brinca todas los estándares de usabilidad,
Unity ni siquiera sirve para trabajos cotidianos,es lento y tiene muy poca funcionalidad,
Cinnamon (del cual escribí un artículo aquí) cumple lo requerido para ser usable pero se traba horrores, y no solo lo digo yo, tengo un equipo de trabajo con el cual probamos todos lo mismo para comprobar que no sea error de usuario o error pasajero.
KDE, este sí que es bonito y un poco estable, de todos es el mas aceptado de momento para mi (aunque en el artículo anterior mencione que Cinnamon, si, ¿y? tengo derecho a cambiar de opinión). Pues bien en este escritorio encontré aún algunos fallos, sobre todo al trabajar con varios monitores y al suspender sistema, se queda colgado algunas veces.

Y algo que no es culpa del escritorio pero que se extraña es la Hibernación del sistema, yo estoy muy acostumbrado a Hibernar mi máquina para regresar al siguiente día y simplemente retomar donde me quedé y no construir de nuevo mis ventanas y procesos.

Del Libre Office ni se diga, deja mucho que desear y Windows 7 pues no es tan malo como parece y es compatible con todo.

Lo único que extrañaba en Windows de Linux era el poder hacer "Seguridad Wireless" pero desde la aparición de iWEP para iPhone ya no utilizo mucho esa función, desde mi iPhone en menos de 30 segundos obtengo lo que quiero.

Me pudiera extender con mil cosas por las cuales alguien querría regresar a Windows y sé que es un tema polémico que a mas de uno lo hará pegar un brinco, pero el mundo se divide en opiniones y elecciones y esta es la mía.

Manos a la Obra.

1. Instalar VirtualBox, a mi parecer el mejor manejador de Máquinas Virtuales.
2. Crear una máquina Virtual e instalar Linux 12.04 Server
3. En la máquina virtual instalar OpenERP desde las fuentes siguiendo este tutorial.
4. En la máquina virtual instalar SAMBA en linux

# sudo apt-get install samba samba-client smbfs smbclient


5. En la máquina virtual configurar Samba para compartir la carpeta de OpenERP con Windows

Consideraciones:
No podemos usar la compartición de VirtualBox ya que esta comparte una carpeta del sistema Host con el Anfitrión, nosotros requerimos que Linux comparta la carpeta para que Linux controle los archivos no Windows (por las fechas)

Para compartir una carpeta en Linux simplemente editamos el archivo:

# sudo nano /etc/samba/smb.conf

Y agregamos al final

[openerp]
comment = "Carpeta a compartir desde Linux"
path = /home/ubuntu/openerp
public = yes
writable = yes
browseable = yes

6. Asignando los permisos a la carpeta

# sudo chmod -R 777 /home/ubuntu

7. Configurando la tarjeta de red para la red "local" entre Linux y Windows

Esto es muy importante, nosotros crearemos una unidad en Windows conectada a la carpeta openerp que compartimos en Linux y debemos decidir en que esquema queremos trabajar.

7.1. Configurar la red de VirtualBox como adaptador puente (opción por default de VirtualBox):


De esta manera Linux se conectará a nuestro switch como si fuera una máquina independiente y se le dará una IP en el mismo segmento que nuestra máquina en Windows.

El problema de esta configuración es que si cambiamos constantemente de redes se reasignará la IP de nuestra máquina virtualizada así como del anfitrión.

7.2. Conectar como Host-Only (recomendada),


De esta manera se creará otra red interna entre Linux y Windows, cada una con una IP y esta IP no cambiará con reinicios por lo cual si montamos la unidad de Windows.

En cualquier caso debemos conocer la IP que tenemos en Linux, esto lo realizamos tecleando en la máquina virtual:

# ifconfig

eth0   Link encap:Ethernet  HWaddr 08:00:27:1e:58:2a
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe1e:582a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3767 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5261 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:601342 (601.3 KB)  TX bytes:5322988 (5.3 MB)

Otra manera de hacerlo es por el nombre de la máquina:

# cat /etc/hostname

En mi caso el comando anterior me devuelve: ubuntuvm

Copiamos la dirección que tenga eth0 en este ejemplo la marque en azul y en negrita o el nombre de la máquina para utilizarlo en el siguiente paso.

8. Creando la unidad virtual en Windows.


Pueden poner la IP o el Hostname.

9. Levantando la máquina virtual al iniciar Windows.

Si trabajamos todo el tiempo con OpenERP será recomendable que la máquina virtual se levante automáticamente al iniciar Windows.

9.1 Creamos un archivo .bat (si es como los .sh de Linux, Windows también tiene lo suyo xD) con el siguiente contenido


 cd C:\Program Files\Oracle\VirtualBox
 VBoxManage.exe startvm Ubuntu

Donde Ubuntu es el nombre de la máquina virtual con Linux.

9.2 Copiamos ese archivo a la carpeta de inicio de windows:

C:\Users\daimon\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

daimon es el nombre de usuario con el cual nos logeamos a Windows, o si queremos que la máquina inicie para todos los usuario copiamos el archivo en:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup


10. Buen trabajo


Con lo anterior tenemos corriendo nuestro OpenERP en Linux, podremos conectarnos vía SSH y parar el servidor de OpenERP o hacerlo directamente desde VirtualBox y podemos realizar cambios en los archivos fuente con toda confianza ya que estos están almacenados en nuestro Linux.

Saludos y ¡ happy windows !


jueves, 6 de septiembre de 2012

Cliente de OpenVPN en Ubuntu de forma gráfica

Muchas veces tenemos la necesidad de conectarnos por OpenVPN a nuestra oficina o casa en Linux y para hacerlo lo hacemos mediante línea de comando:

# openvpn archivo_de_configuracion.conf

Lo anterior funciona pero si utilizamos modo gráfico de Linux es más cómodo tener el control desde el demonio de redes inalámbricas que se encuentra en nuestra área de notificación.

1. Instalación de OpenVPN

# sudo apt-get install openvpn openssl

2. Lo primero que debemos tener son nuestros archivos necesarios que nos debieron haber entregado, estos los deben guardar en una carpeta a la cual ustedes tengan acceso como Documentos:

user.crt
user.key
ca.crt
ovpn.conf

El archivo .conf ya debe estar configurado correctamente para leer nuestros archivos de claves y tiene los parámetros de configuración para la conexión a nuestra VPN.

Posiblemente en otra entrada explique como configurar una VPN en modo servidor :)

3. Ahora debemos instalar el plugin para controlar la VPN desde el demonio gráfico:

# sudo apt-get install network-manager-openvpn-gnome

4. Ahora damos click en el icono de red en el área de notificación y seleccionamos: Conexiones VPN -> Configurar VPN

5. Configurando la conexión.

Se nos ha abierto un dialogo para configurar su VPN, pueden realizar la selección de archivos y configuración por medio de ese asistente, pero como en este caso tenemos un archivo .ovpn es mas fácil importar la configuración por lo tanto damos click en IMPORTAR y seleccionamos el archivo .ovpn

Esto nos abra creado las configuraciones automáticamente.

Ahora debemos dar click en la pestaña Ajustes de IPv4 -> Rutas y seleccionar la opción: usar esta conexión solo para los recursos en su red, de esta manera cuando nos conectemos a la VPN el tráfico de red local pasará por la puerta de enlace actual y no através de la VPN.

Para finalizar damos click en GUARDAR y posteriormente cerramos esa ventana.

6. Ahora para conectarnos damos click en el icono de red en el área de notificación y seleccionamos: Conexiones VPN -> NOMBRE_DE_NUESTRA_VPN

Listo con esto la VPN estará coenctada y tendremos una IP de la VPN asignada.

7. Viendo la IP asignada

Para saber que IP privada nos asigno la VPN tecleamos:

# ifconfig

Y vemos la IP en la interfaz TAP o TUN según sea el caso.

Saludos !