12.08.2014

Configurando Vagrant sobre Windows

Introducción

Vagrant funciona sobre varios sistemas operativos como MacOS X, Windows, Debian, Ubuntu, CentOS, RedHat, Fedora y más. En esta página se seguirá los pasos para tener una máquina virtual de Debian mediante Vagrant sobre Windows.

Entorno Windows

Para ejecutar Vagrant y la máquina virtual en un entorno Windows, vamos a seguir las siguientes secciones

  • Instalación de Vagrant 
  • Instalación de Oracle VirtualBox 
  • Instalación del emulador de consola CMDER 
  • Creación de la carpeta para las máquinas Vagrant 
  • Creación de la caja Debian-docker 
  • Creación de la máquina virtual
  • Configuraciones de la máquina virtual
  • Ejecución de la máquina virtual
  • Conección ssh a la máquina virtual
  • Suspendiendo y apagando la máquina virtual

Instalación de Vagrant

Primero descargamos el instalador de Vagrant de http://www.vagrantup.com/downloads.html y lo ejecutamos.

La instalación es simple, cuando pregunte sobre la ruta de instalación como vamos a usar la línea de comandos se recomienda usar una ruta corta, por ejemplo en la guía usaremos “D:\Vagrant”.

Instalación de Oracle VirtualBox

Ahora debemos instalar la versión más actual de VirtualBox del siguiente enlace https://www.virtualbox.org/wiki/Downloads

Con la instalación por defecto está bien.

Instalación del emulador de consola CMDER

Por defecto Windows no cuenta con un emulador de consola y un cliente ssh, hay varias aplicaciones para esto, nostros usaremos un emulador liviano llamado CMDER, tiene buenas funcionalidades incluyendo git y para los que están acostumbrados a la consola de Linux se sentirán como en casa.

Debemos descargar la versión completa de CMDER en el siguiente enlace http://bliker.github.io/cmder

Para ejecutarlo solo hay que descomprimir el archivo descargado en una carpeta y ejecutar Cmder.exe

Se recomienda configurar “Control de Acceso de Usuarios (CAU)” en la opción de "Nunca notificar". En Windows 7 en adelante debería encontrarse siguiendo el orden: Panel de control -> Systema y Seguridad -> Configuraciones de control de acceso de usuarios.

Los siguientes pasos se harán usando CMDER.

Creación de la carpeta para las máquinas Vagrant

Por facilidad, crearemos las carpetas dentro de D:\\Vagrant

Primero una carpeta llamada Proyectos y dentro una que contendrá nuestra máquina virtual de Debian-docker

C:\
λ cd D:\
D:\
λ cd Vagrant
D:\Vagrant
λ mkdir Proyectos
D:\Vagrant
λ mkdir Proyectos\Debian-docker
D:\Vagrant
λ cd Proyectos\Debian-docker
D:\Vagrant\Proyectos\Debian-docker
λ

Creación de la caja Debian-docker

No siempre es necesario empezar desde cero, descargaremos una caja lista que tiene Debian 8 y algunos ajustes listos para funcionar con Docker.io

D:\Vagrant\Proyectos\Debian-docker
λ vagrant box add williamyeh/debian-jessie64-docker --provider virtualbox
==> box: Loading metadata for box 'williamyeh/debian-jessie64-docker'
    box: URL: https://vagrantcloud.com/williamyeh/debian-jessie64-docker
==> box: Adding box 'williamyeh/debian-jessie64-docker' (v1.2.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/williamyeh/debian-jessie64-docker/version/5/provider/virtualbox.box    
    box: Progress: 100% (Rate: 482k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'williamyeh/debian-jessie64-docker' (v1.2.0) for 'virtualbox'!
Por defecto nos crea una imagen llamada williamyeh/debian-jessie64-docker, la renombraremos a debian-docker mediante los siguientes comandos

D:\Vagrant\Proyectos\Debian-docker
λ vagrant box repackage williamyeh/debian-jessie64-docker virtualbox 1.2.0
D:\Vagrant\Proyectos\Debian-docker
λ vagrant box add debian-docker package.box --provider virtualbox
==> box: Adding box 'debian-docker' (v0) for provider: virtualbox
    box: Downloading: file://D:/Vagrant/Proyectos/Debian-docker/package.box
    box: Progress: 100% (Rate: 526M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'debian-docker' (v0) for 'virtualbox'!

Podemos listar las cajas que tenemos
D:\Vagrant\Proyectos\Debian-docker
λ vagrant box list
debian-docker                     (virtualbox, 0)
williamyeh/debian-jessie64-docker (virtualbox, 1.2.0)

Creación de la máquina virtual

En la ubicación actual inicializaremos una máquina virtual basada en la caja debian-docker creada anteriormente

D:\Vagrant\Proyectos\Debian-docker
λ vagrant init debian-docker
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
D:\Vagrant\Proyectos\Debian-docker
λ ls
Vagrantfile
Inicializando la máquina virtual va a crear un archivo de configuración llamado Vagrantfile que "hereda" las configuraciones de la caja usada para su inicialización, en este caso debian-docker.
Este archivo contendrá cualquier configuración específica como memoria, red, carpetas compartidas, etc.

Configuraciones de la máquina virtual

Antes de ejecutar la máquina virtual, vamos a cambiar algunas configuraciones editando el archivo Vagrantfile con el editor de texto de nuestra preferencia.


D:\Vagrant\Proyectos\Debian-docker
λ NotePad Vagrantfile
Localizamos la parte de inicio de configuración “do |config|”. Desde la siguiente línea podemos configurar todo lo que deseemos.

Lo primero que haremos será crear una carpeta compartida en la máquina virtual llamada vagrant para que apunte a la misma ubicación donde se levanta dicha máquina.
Para esto añadimos la siguiente línea dejando saltos de línea arriba y abajo de la misma.

    config.vm.synced_folder"D:\\Vagrant\\Proyectos\\Debian-docker\\", "/media/vagrant"

Ejecución de la máquina virtual

Ahora es momento de iniciar nuestra máquina virtual.

D:\Vagrant\Proyectos\Debian-docker
λ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/Taoshi/Vagrant_Projects/Jessie-Docker
    default: /media/vagrant => C:/Users/Taoshi/Vagrant_Projects/Jessie-Docker
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: to force provisioning. Provisioners marked to run always will still run.

Podemos verificar el estado de la máquina

D:\Vagrant\Proyectos\Debian-docker
λ vagrant status
Current machine states:
defaultrunning (virtualbox)
The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

Conección ssh a la máquina virtual

Vagrant permite conexión ssh nativa hacia las máquina virtuales en ejecución.

D:\Vagrant\Proyectos\Debian-docker
λ vagrant ssh
Linux debian-8-amd64 3.13-1-amd64 #1 SMP Debian 3.13.5-1 (2014-03-04) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux testing (jessie)
Release:        testing
Codename:       jessie
vagrant@debian-8-amd64:~$


Podemos trabajar como en toda consola bash, para salir lo hacemos con el comando exit

vagrant@debian-8-amd64:~$ exit
logout
Connection to 127.0.0.1 closed.
C:\Vagrant\Proyectos\Debian-docker
λ

Suspendiendo y apagando la máquina virtual


Cuando no deseemos usar la máquina virtual, podemos suspenderla o apagarla.


D:\Vagrant\Proyectos\Debian-docker
λ vagrant suspend
D:\Vagrant\Proyectos\Debian-docker
λ vagrant halt
En cualquiera de los dos casos la reactivamos mediante vagrant up
D:\Vagrant\Proyectos\Debian-docker
λ vagrant up

Eso es todo lo básico para tener nuestras máquinas virtuales mediante Vagrant bajo Windows.

3.08.2013

OpenMediaVault - Almacenamiento compartido mediante Samba (I)

Una vez que hemos completado la instalación del servidor OpenMediaVault, seguramente necesitemos tener almacenamiento compartido en un entorno con sistemas Windows. Para ello existe SAMBA, que es la versión libre del protocolo SMB/CIFS. Pero no entremos en detalles y vamos directo a lo que nos interesa: almacenamiento de acceso público en nuestra red desde clientes Windows.

Como mencionaba en el post anterior sobre la instalación, es recomendable instalar el OMV teniendo conectado únicamente el disco donde va a quedar el sistema. Cuando ya hayamos reiniciado y comprobado que podemos ingresar por web a su IP con las credenciales por defecto admin / openmediavault apagamos el sistema y conectamos el o los discos a usar.

Una vez iniciado nuevamente el sistema, podremos ir a Almacenamiento - Discos Físicos  y comprobar que los discos han sido detectados.


El siguiente paso será crear una partición, para ellos iremos a Almacenamiento - Sistemas de Archivos en la parte superior le damos click a Crear y veremos un diálogo como el siguiente:


En este diálogo primero elegimos el disco en el cual vamos a crear la partición, luego le damos un nombre lo más descriptivo posible y por último elegimos el sistema de archivos deseado.El siguiente paso será Montar la partición creada, con lo que podremos ver su capacidad y uso.


Ahora que ya tenemos montada la partición estamos listos para crear una carpeta compartida, para ello nos dirigimos a Administración de permisos de acceso - Carpetas Compartidas y le damos a Añadir.


Empezamos dando un nombre a la carpeta, luego seleccionamos la partición que creamos anteriormente. En "Ruta" podemos escribir directamente la ruta, por ejemplo /compartido lo que creará esta carpeta en la raíz del disco, también tenemos el ícono a la derecha para crear carpetas y subcarpetas si deseamos árboles de directorios más complejos. Por úlitmo los permisos por defecto serán suficiente en la mayoría de los casos ya que un control más preciso se tiene directamente en cada usuario/grupo o por ACLs como lo haremos a continuación.

Dando click en ACL tendremos un cuadro con los permisos de todos los usuarios del sistema y otras opciones más como se puede ver en la captura siguiente:


Si queremos dar acceso completo a los usuarios conectados por Samba, eligimos Lectura/Escritura para el usuario sambashare y más abajo en Otros también elegimos Lectura/Escritura. Si bien esto no es muy seguro, por un lado estamos suponiendo un ambiente confiable en nuestra red local y por otro incialmente habilitamos el acceso completo pero luego ir gestionando usuarios y grupos con permisos específicos, eso vendrá en una publicación futura ;)

Ahora que hemos añadido una carpeta compartida, debemos habilitar el servicio que queramos haga uso de esta, en este caso el servicio Samba. Para ello nos dirigimos a Servicios - SMB/CIFS y habilitamos el servicio.


Podemos dejar el grupo de trabajo por defecto, pero para un control mayor podemos usar un nombre tomando en cuenta que todos los clientes windows en la red local deberán pertenecer a este grupo de trabajo para que tengan acceso al compartido. Se deberá habilitar la casilla de Navegable para que los usuarios puedan ingresar a las subcarpetas, si así se desea. Todo lo demás puede quedar por defecto.

Damos click en OK para que se guarden los cambios y nos pasamos a la pestaña "Compartidos".


Aquí añadiremos un nuevo compartido en el servidor Samba (SMB/CIFS). Primero le damos un nombre y un comentario descriptivo, luego seleccionamos la carpeta compartida que creamos hace un momento, el menu desplegable es muy util  ya que nos indica no solo las carpetas compartidas creadas sino también nos indica a qué partición (o arreglo) pertenece.
Para seguir con la política de acceso público, marcamos la casilla Público y la de Navegable, le damos a OK y tenemos listo nuestro compartido.

Desde un cliente Windows, en el navegador de archivos vamos a Red y se mostrará un equipo con el nombre que hayamos dado al servidor (esto lo podemos modificar en Sistema - Red en la pestaña
"General")


Con esto podemos leer y escribir en el disco compartido desde clientes windows sin ningún problema, en una próxima publicación hablaré un poco más acerca de los permisos para empezar a tener un control más detallado de los accesos al compartido. Estén atentos! y comenten!

Saludos a tod@s.

3.07.2013

Instalación de OpemMediaVault

OpenMediaVault es una distribición GNU/Linux pensada para ser la mejor solución NAS en código abierto con una configuración intuitiva y sencilla y administración via web. Además de eso, tiene la posibilidad de aumentar su funcionalidad mediante plugins y no está de más decir que al ser una distro linux, se le puede aumentar lo que creamos conveniente sea o no relacionado con su función principal. Y por si esto fuera poco, los requeremientos en mínimos en hardware son tan bajos que lo he provado en un AMD Athlon de 800Mhz (si Mhz, nada de Ghz) con 1Gb DDR1 y ha funcionado tranquilamente. Pero como mencionaba en su presentación, lo importante aquí es la conexión del almacenamiento a usar y de la red. Hoy en día es muy facil encontrar placas madre con 4 puertos SATA y bastaría una tarjeta PCI con 2 puertos más para pensar en arreglos RAID. En mi caso por ejemplo he usado una placa intel con procesador Atom de 1.2Ghz, 2Gb de ram y de momento dos discos WD de 500Gb, sin arreglo ya que son para usos específicos, el sistema está funcionando de maravillas, con 3 equipos enviando datos por la red, la carga no pasa del 4%

En esta instalación por cuestiones de facilidad estoy usando una máquina virtual mediante VirtualBox, pero no deja de ser un escenario válido para entornos de producción, sobre todo si la virtualización se hace en servidores dedicados como Xen, no solo que tenemos mayor capacidad de respuesta en caso de algún imprevisto, si no que los discos pueden ser tanto físicos como virtuales.

Bueno, empezemos. Realmente hay muy poco que decir del proceso de instalación, lo más importante a tomar en cuenta es que el sistema se instala en TODO el disco, es decir, borra particiones existentes si las hay y toma toda la capacidad física del disco. Por eso es recomendable tener conectado sólo el disco que queramos como sistema para no correr riesgos de haber elegido el disco incorrecto. El hacerlo mediante virtualización tiene la ventaja de que podemos crear un disco de muy poco tamaño para el sistema (4gb es más que suficiente)  y no perder espacio. Otra cosa que puede funcionar, aunque no la he intendado todavía es tener conectada un pendrive a un puerto usb e iniciar el sistema desde ahí ;)

Aparte del uso del disco, otro cambio que puede notarse durante la instalación es que se nos pide la contraseña y no la creación de un usuario. El sistema no crea nigún usuario, únicamente root como es natural y se le asigna la clave que ingresamos durante la instalación.

Cuando terminemos la instalación y reiniciemos, no es necesario ingresar por la consola. Desde cualquier equipo en la red apuntamos a la IP del servidor y veremos la pantalla de acceso.



Las credenciales por defecto del sistema son:

Usuario: admin
Contraseña: openmediavault

Por facilidad de uso puede ser util cambiar el tiempo de sesión activa ya que por defecto viene en 1 minuto.



La administración como verán está completamente en español y es bastante intuitiva y versatil. En un siguiente post indicaré como añadir un disco físico, crear una partición y compartirla por samba para acceso público desde clientes windows. Estén atentos! y no duden en escribir cualquier inquietud y comentario. Ya lo usan? Piensan hacerlo? Conocen otras opciones?


Salu2!

3.01.2013

OpenMediaVault o como tener un NAS fácil y de código abierto

 Hay muchas maneras de tener almacenamiento en nuestra red local, empezando desde un simple compartido, montando un servidor NFS, hasta un NAS. Esta última opción es la más "profesional" si se le quiere catalogar de alguna forma, pero (siempre hay un pero) las opciones en el mercado para este tipo de productos pueden llegar a ser prohibitivas en la mayoría de los casos, sobre todo si hablamos de redes locales para oficinas pequeñas o pequeñas empresas y las soluciones de bajo costo tienen la limitación de que no son expandibles y que disponemos de los servicios que el fabricante decida y que pueden no siempre ajustarse a nuestras necesidades.

¿Qué pasaría si tenemos un equipo modesto y un poco de almacenaje disponible y queremos tener almacenamiento de acceso en red en un ambiente mixto windows/linux?
¿Qué sucede cuando disponemos de un nuevo disco para aumentar el espacio y además requerimos de otro tipo de servicios para ciertos accesos como por ejemplo ftp y ssh?
¿Qué sucede si requerimos de un control estricto de accesos por parte de grupos y usuarios?

Para cubrir esas y muchas necesidades más tenemos OpenMediaVault. Una distribución GNU/Linux basada en Debian que hace posible tener un servidor NAS flexible y seguro en cuestión de minutos. Dispone de una administración avanzada via web, sistema completamente en español y de uso intuitivo.

Con un equipo de características más que modestas como puede ser un procesador 486, 1Gb de ram y 2Gb de espacio en disco, tendremos corriendo con tranquilidad a OMV. Lo importante aquí es por un lado la estabilidad y velocidad de la red y por otro el tipo de discos que usemos. Si es para un ambiente de tráfico normal, donde los usuarios acceden a sus archivos, discos SATA a 5200rpm será suficiente; si en cambio es para mantener bases de datos transaccionales donde el tráfico puede llegar a ser mucho mayor, se puede pensar a discos SSD.

Pero sea cual sea la situación, nosotros siempre tendremos el poder de decidir qué tecnología usar y cómo usarla. Podemos tener carpetas accesibles únicamente por ssh y otras por sftp, tener una partición dedicada a accesos desde clientes windows y otra invisible a todos excepto para el sistema de respaldos, las posiblidades son infinitas.

Otra gran ventaja de contar con un sistema como OpenMediaVault es la flexibilidad de configuración de los discos y particiones, pudiendo tener arreglos RAID de manera dinámica sin afectar la información, así como cambiar tamaños de particiones al vuelo, desmontar discos/particiones o cambiar puntos de montaje directamente desde la administración web.

Así que ya lo saben, si necesitan disponer de un NAS Gnu/Linux no duden en darle una oportunidad a OpenMediaVault.

En un próximo aporte subiré una guía sobre su instalación y confguración para tener espacio compartido con sistemas windows y un par de cosas útiles más. Estén atentos!

2.15.2013

INSTALANDO ADEMPIERE EN DEBIAN LINUX

Saludos a tod@s!

Retomando un poco la actividad en el blog en esta ocación voy a poner a disposición una guía de instalación del ERP Adempiere en Debian GNU/Linux testing. La documentación oficial si bien es bastante completa, en lo que se refiere a la instalación puede ser un tanto confusa y no he encontrado tutoriales o guias actuales excepto para Ubuntu 10.10 y 11.04 pero como probablemente saben, eso no es lo mismo que Debian :)

La versión de Adempiere en esta guía es la 3.7.0LTS que es la última que ha visto la luz y como su nombre lo indica es versión con soporte extendido (Long Time Support), el Debian usado es la rama testing por razones de versiones de java y postgresql principalmente, se puede usar la rama stable pero habría que ver que versiones hay en los backports o hacer apt pinning o usar una versión anterior de Adempiere, pero para no complicarnos la vida, mejor Debian testing :)

A continuación enumero los pasos que se van a seguir:
  1. Instalación y configuración de Java.
  2. Instalación y configuración de PostgresSQL.
  3. Instalación y configuración de Adempiere.
  4. Inicialización de la Base de datos de Adempiere.
  5. Iniciación del Servidor de Aplicación Adempiere.
  6. Iniciación del Cliente localmente. 

2.28.2012

Servidor Local: Arch + Xampp + Joomla 2.5 + Ja T3 Framework

En esta guía voy a reproducir los pasos que he seguido para correr Joomla! sobre XAMPP (Apache, MySQL, PHP y Pearl) en un sistema ArchLinux, todo esto como servidor local; por último instalo JA T3 Framework y una plantilla. Con eso se tendría todo lo básico necesario para empezar la codificación, diseño y administración de un sitio ya sea para uso interno o para luego exportarlo a un hosting.

2.21.2012

Desactivar el sonido "beep" en el sistema.

Esto es algo rápido que suelo hacer cuando sobretodo el terminal hace repetidamente el molesto sonido "beep". Este sonido es reproducido por el pequeño parlante conectado a la tarjeta madre de nuestro equipo y según la experiencia creo que puedo decir que el 99% de los casos de equipos caseros, es parlante no se usa para nada XD
Algunas otras aplicaciones también puede que usen ese recurso para avisos audible de error como PCManFM por ejemplo, en ocaciones desactivar este sonido se puede hacer en alguna preferencia o configuración propia de la aplicación, pero por lo dicho anteriormente creo que es completamente seguro desactivar por completo su uso. Para ello en el caso de la distro Arch, uso la opción de blacklisting para evitar la carga del módulo que maneja ese parlante llamado pcspkr desde el inicio del sistema.

La mejor práctica es crear un archivo .conf dentro de /etc/modprobe.d/ donde ponemos todos los módulos que no queremos que se cargen o uno por cada módulo si lo queremos, por ejemplo en este caso:

$ vim /etc/modprobe.d/nobeep.conf
Y su contenido sería:

# Módulo para pc speaker
blacklist pcspkr

Y al iniciar nuevamente el sistema no se cargará este módulo y por enede no más beeps molestos ;)

Para saber qué módulos son cargados por el initramfs podemos ejecutar mkinitcpio -v y mkinitcpio -M, otro comando útil es lsmod.

Una vez que sepámos el módulo y queramos verificar si ese es el del parlante ejecutamos el comando:

$ rmmod
  Si por el contrario quisiéramos cargar el módulo en caso de nescesitarlo pues ejecutamos:

$ modprobe

Bueno, eso es todo, algo rápido pero útil :)

Saludos.

Comando del día: dominios de un servidor WHM desde linea de comandos

Si se quiere obtener los dominios y subdominios (no dominios adicionales o addon domains ) por usuario propietario (resellers): whmapi1 li...