2014-07-27

Haciendo Cronogramas de Proyectos con OpenProj

Debido a mi trabajo debo presentar la planeación de los proyectos y establecer un diagrama de Grannt correctamente elaborado, para esto no existe mejor herramienta que MS Project, pero como no uso windows y como siempre existe una excelente opción en Open Source, esta vez no es la excepción.

Existe un proyecto denominado OpenProj, el cual esta en http://sourceforge.net/projects/openproj/ y de donde deben descargar el instalador de Debian que se llama openproj_1.4-2.deb, Una vez esta en la maquina se debe instalar con apt-get así

root@localhost:~# apt-get install-local openproj_1.4-2.deb

Ya con esto tienen instalado el paquete pero al intentar acceder al programa, este no funciona por un error en Java, bueno como siempre existe una solución y es modificar los archivos de ejecución del programa, los cuales están en la rutas $HOME/.openproj/run.conf y en la ruta /usr/bin/openproj

$HOME/.openproj/run.conf debe modificarse la variable JAVA_OPTS así

JAVA_OPTS="-Xms128m -Xmx768m"

por 

JAVA_OPTS="-Djava.vendor="Sun Mycrosystems Inc." -Xms128m -Xmx768m"

En el archivo /usr/bin/openproj  deben buscar el segmento llamado run_openproj y modificarlo así

run_openproj() {
if [ "$LOG_LEVEL" ] && [ "x$LOG_LEVEL" = "xDEBUG" ]; then
"$JAVA_EXE" $JAVA_OPTS -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > "$LOG_FILE"
else
"$JAVA_EXE" $JAVA_OPTS -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > /dev/null 2>&1
fi
}

Por

run_openproj() {
if [ "$LOG_LEVEL" ] && [ "x$LOG_LEVEL" = "xDEBUG" ]; then
"$JAVA_EXE" $JAVA_OPTS -Djava.vendor="Sun Microsystems Inc." -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > "$LOG_FILE"
else
"$JAVA_EXE" $JAVA_OPTS -Djava.vendor="Sun Microsystems Inc." -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > /dev/null 2>&1
fi
}

Una vez realicen esto pueden ejecutar el programa y tras aceptar la licencia y crear un proyecto deben ver algo como esto



Listo para usar y gestionar los proyectos, espero que les sirva

2014-07-21

VirtualBox Administrado por Consola

Para los que vean mi blog usualmente saben que no me gusta mucho el entorno gráfico y que todo lo administro por consola, entonces tuve que empezar a aprender a gestionar las maquinas virtuales a través de la consola. Inicialmente necesitaba cambiar el tipo y la asignación de las tarjetas de red de la maquina virtual.

Bueno empezare diciendo que la maquina base posee dos tarjetas de red, una conectada a Internet y la otra a la LAN de la empresa; la maquina virtual solo posee una tarjeta de red la cual inicialmente esta configurada en modo NAT, lo cual lo confirmamos con el siguiente comando:

usuario@localhost:~$ VBoxManage showvminfo Procesos
Name:            Procesos
Guest OS:        Red Hat (64 bit)
UUID:            3cac1663-9b0e-4d55-b062-0c80ca3277c5
Config file:     /home/usuario/VirtualBox VMs/Procesos/Procesos.vbox
Snapshot folder: /home/usuario/VirtualBox VMs/Procesos/Snapshots
Log folder:      /home/usuario/VirtualBox VMs/Procesos/Logs
Hardware UUID:   3cac1663-9b0e-4d55-b062-0c80ca3277c5
Memory size:     2048MB
Page Fusion:     off
VRAM size:       12MB
CPU exec cap:    100%
HPET:            off
Chipset:         piix3
Firmware:        BIOS
Number of CPUs:  2
Synthetic Cpu:   off
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): HardDisk
Boot Device (2): DVD
Boot Device (3): Not Assigned
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          on
PAE:             on
Time offset:     0 ms
RTC:             UTC
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging:   on
Large Pages:     off
VT-x VPID:       on
State:           powered off (since 2014-07-21T17:09:28.988000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Storage Controller Name (0):            IDE
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
Storage Controller Name (1):            SATA
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      1
Storage Controller Bootable (1):        on
IDE (1, 0): /dev/sr0 (UUID: 00445644-0000-0000-2f64-65762f737230)
SATA (0, 0): /home/usuario/VirtualBox VMs/Procesos/Snapshots/{07adc385-9427-49c6-bb78-24607674fa53}.vdi (UUID: 07adc385-9427-49c6-bb78-24607674fa53)
NIC 1:           MAC: 0800275A8815, Attachment: NAT Interface , Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1:          disabled
UART 2:          disabled
Audio:           disabled
Clipboard Mode:  disabled
VRDE:            disabled
USB:             disabled
USB Device Filters:

Available remote USB devices:

Currently Attached USB Devices:

Shared folders:

VRDE Connection:    not active
Clients so far:     0
Guest:
Configured memory balloon size:      0 MB
OS type:                             RdHat_64
Additions run level:                 0
Guest Facilities:
No active facilities.
Snapshots:
   

Entonces para cambiar la configuración de la tarjeta usamos el comando pero con la opción modifyvm, la cual permite hacer modificaciones de a la configuración de la maquina, pero esta no puede estar ejecutándose, por lo que deben apagarla antes de ejecutar el siguiente comando:

usuario@localhost:~$ VBoxManage modifyvm Procesos --nic1 bridged --bridgeadapter1 eth1

Una vez se ejecuta este comando se usa el primero que vimos y se puede apreciar como se modifico la configuración de la maquina

NIC 1:           MAC:0800275A8815, Attachment: Bridged Interface 'eth1', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny

Se arranca la maquina, lo cual lo puedes hacer con el siguiente comando si tienes habilitado el entorno gráfico

usuario@localhost:~$  VBoxManage startvm Procesos

Para confirmar que se esta ejecutando puedes usar el siguiente comando

usuario@localhost:~$ VBoxManage list runningvms
"Asterisk" {e9e12f34-69ad-0000-00e2-0edddf34f87c}
"Kali-Linux" {f8e44db3-f31d-0000-a2de-c0c27a48d377}
"Procesos" {570e6bef-0000-40f3-9d4b-e0bda514fbfe}

Ya confirmado que la maquina subió bien, necesito sacarle un snapshot que es un respaldo para recuperar fácilmente el estado de una maquina en caso de cualquier daño. Lo primero es apagar la maquina y cuando este apagada se lanza el siguiente comando

usuario@localhost:~$ VBoxManage snapshot Procesos take BK140721-Procesos
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%


Vuelves a subir la maquina y listo. Espero que estos pocos ejemplo sirvan de guía para que administren las maquinas virtuales a través de la consola.

2014-07-17

Accediendo a una Maquina Virtual con NAT

En muchas ocasiones montamos las maquinas virtuales pero no tenemos direcciones IP para poder colocarlas en modo Bridge y así a cada maquina asignarle una dirección IP, es por esto que toca configurar el NAT, pero cuando necesitamos acceder a una a de esas maquinas desde una red externa como hacemos.

Bueno eso es lo que pretendo explicar en esta entrada, entonces se tiene una maquina virtual configurada en modo NAT en la tarjeta de red como se ve a continuación


Entonces lo que hacemos es dar click en "Reenvio de puertos" que es donde indicaremos a que puerto nos conectaremos y que puerto nos realizara el NAT a la maquina virtual, en la siguiente imagen se puede apreciar como es la configuración


Lo que se denomina puerto anfitrión, es el puerto que se va a habilitar en el servidor base. Y lo que se denomina puerto invitado, es el puerto al que se va a direccionar el tráfico en la maquina virtual.

Entonces con esta configuración desde la red externa hacer un SSH al puerto 2222 en la IP de la maquina anfitrión y esta conexión sera dirigida al puerto 22 de la maquina virtual.

2014-07-10

Arrancando las Maquinas Virtuales de VirtualBox Automaticamente

Debido a mi trabajo era necesario instalar un servidor de maquinas virtuales y por facilidad instale con VirtualBox sobre Debian7, pero se me presento el problema que cuando se reiniciaba el servidor no subían las maquinas automáticamente.

Como siempre toco investigar y encontré que existe un administrador por consola que te permite gestionar completamente el sistema de VirtualBox, como siempre la consola salva el día. Bueno el trabajo lo base en estas dos URLs http://cjenkins.wordpress.com/2010/08/21/iniciar-maquinas-virtuales-de-virtualbox-al-inicio/ https://www.virtualbox.org/manual/ch08.html#vboxmanage-startvm pero como siempre con mis modificaciones.

Bueno lo primero es aprender como arrancar las maquinas virtuales desde la consola y con que parámetros los podemos arrancar así no este activo el entorno gráfico. Eso se hace con el siguiente comando siendo root:

root@localhost:~# su - user -c "VBoxManage --nologo startvm "Maquina 1" --type headless"

Toca enviarlo así para que no arranquen como root sino con los parámetros del usuario y así proteger la seguridad del servidor. Los parámetros del comando VBoxManage son para lo siguiente:

- nologo: Suprime la información del logo de instalación, se debe usar para los scripts.
- type headless: Este indica el tipo de arranque de la maquina, con el headless aseguramos que no suba el entorno gráfico y así podemos hacer que la maquina suba sin problemas en el arranque.

Entonces aprovechando el script de arranque que según la versión de virtualbox que este instalada esta en el script /etc/init.d/virtualbox o /etc/init.d/vboxdrv y creo un nuevo segmento para arrancar las maquinas el cual llamo start_vms para seguir con el orden del script original, se ve en la siguiente imagen:


Como ven uso las variables que se crean en /etc/default/virtualbox, para poder indicarle con que usuario realizar la acción de ejecutarlo. Ahora para que suba cuando se suba el servicio se debe colocar la ejecución en otro segmento del mismo archivo y queda así



Así cuando el sistema arranque suben las maquinas virtuales sin importar si ha subido el entorno grafico. espero les sirva