Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Creando volúmenes ZFS en FreeNAS paso a paso

DriveMeca logo FreeNAS
Mientras mas espacio en disco tenemos mas necesitamos, una frase con la que nos cruzamos todos los días. Pero cuando mas la vez es cuando duplicas información por todos tus equipos llevándote a un caos al perder recursos y tiempo al no saber donde tienes la ultima versión de ese proyecto/fotos/vídeos/etc tan importante. Bien, tiempo atrás hice un articulo sobre FreeNAS, una popular distribución para NAS (Network Attached Storage o almacenamiento conectado en red) basada en FreeBSD y hoy retomo el tema mostrandoles paso a paso como crear volúmenes y compartirlos a otros equipos en la LAN, en este caso Microsoft Windows. Como podrías aplicar estos artículos?, ok, darle uso a ese pc/portatil viejo que tienes acumulando polvo y que ya no usas; aunque recomiendo que si lo aplicas a compartir archivos pesados, entonces, mejor busca un pc con bastante memoria y discos duros lo suficientemente rápidos. Después de esta breve introducción, comencemos nuestro trabajo con FreeNAS.

-Nos conectamos a la consola web de nuestro FreeNAS
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Buscamos en el menú la ruta Almacenamiento - Volúmenes - Ver Discos y le damos click. Veremos nuestros dos discos (o dos particiones) las cuales se recomienda sean del mismo tamaño
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Nos vamos al menú Ver Todos los Volúmenes, en este caso no muestra nada porque aun no los hemos creado.
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Damos click al botón ZFS Volume Manager y nos sale una ventana donde colocaremos un nombre y agregaremos los discos, en este caso 2, eligiendo como crearemos el volumen en el combo box a la izquierda. Dependiendo la opción sera el tamaño disponible final de nuestro volumen.

Opciones de RAID y su significado

Stripe: requiere 1 disco
Mirror: requiere mínimo 2 discos
RAIDZ1: requiere mínimo 3 discos
RAIDZ2: requiere mínimo 4 discos
RAIDZ3: requiere mínimo 5 discos
log device: agregar un dispositivo de log dedicado
cache device: agrega un dispositivo de cache dedicado
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Para nuestro articulo usaremos el método Stripe, lo cual nos dará mas espacio (en todo momento podemos ver la capacidad libre calculada en el mensaje Capacity). Damos click al botón Add Volume
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-FreeNAS crea el volumen y lo alista para su uso
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Ya tenemos un volumen, si le damos click, en la parte inferior veremos una serie de botones para trabajar con el
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Podemos por ejemplo, codificarlo dándole click al botón de la llave
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Siguiente paso, crear Dataset ZFS. Damos click al botón Crear Dataset (cuarto botón de izquierda a derecha) y en la ventana que nos sale damos click al botón Modo Avanzado, colocamos un nombre, por ejemplo Fotos, en Share type elegimos Windows, Cuota para este conjunto de datos es donde escribimos la capacidad de disco que le daremos (el valor 0 es sin restricción de espacio) y damos click al botón Añadir un conjunto de datos
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Repetimos el proceso para otros Dataset ZFS que necesitemos, en este ejemplo, creo Fotos, Documentos y Software, limitando a Documentos y Fotos a 1Gb y Software lo dejo sin limites
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Continuamos dando click en el menú Servicios - CIFS. Colocamos un nombre en Nombre de NETBIOS (nombre que veremos en el entorno de red de Microsoft Windows), Grupo de Trabajo sera el que usemos en nuestra LAN, Descripcion es opcional, Mascara de permisos de archivos y Mascara de permisos de directorio lo activamos a 0777 (es un posible problema de seguridad pero tomando en cuenta que este servidor solo estará dentro de nuestra LAN, no debe haber problemas). Los demás parámetros los dejamos con sus valores por default y activamos cambios
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Ya activo el servicio CIFS, vamos al menú Compartido - Ver Compartidos de Windows (CIFS) SAMBA. Damos click al botón Add Compartidos de Windows (CIFS) SAMBA
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Nos sale una ventana donde colocaremos Nombre, Comentario y Ruta. Los demás valores quedan con sus defaults. Repetimos el proceso para todos los Dataset ZFS creados anteriormente
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Ya tenemos nuestros volúmenes ZFS compartidos para Windows (CIFS)
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Si vamos a un equipo Microsoft Windows, en este ejemplo, Windows 8.1, abrimos un Explorador de archivos y damos click a Red (Network) veremos aparecer nuestro FreeNAS, le damos doble click para abrirlo
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Vemos los volúmenes compartidos. Damos doble click a uno de ellos
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-La primera vez se nos pedirá un usuario y contraseña de acceso, escribimos los datos de la cuenta root y marcamos recordar. Damos click al botón Ok
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

-Ya podemos copiar archivos en nuestros volúmenes creados y compartidos por medio de FreeNAS
DriveMeca creando volumenes ZFS en FreeNAS paso a paso

Y hemos llegado al final de este articulo dejando un servidor FreeNAS con 3 volúmenes ZFS creados para compartir a equipos Microsoft Windows. No fue difícil cierto? Usas FreeNAS, en tu casa o en el trabajo? Que tal te ha parecido?
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Implementa contenedores de aplicaciones con Docker en Linux Ubuntu

Docker, desarrolla, empaqueta y ejecuta tus aplicaciones en cualquier lugar. Tu código en producción tan rápido como es posible. Pregonan sus desarrolladores de esta nueva solución. Si eres lector de mi blog sabes que uso en la mayoría de mis proyectos la virtualizacion de servidores o desktop's y de hace un tiempo a la fecha hemos escuchado de un nuevo "jugador" en este campo, Docker, el cual hoy les mostrare como instalarlo, configurarlo y dar sus primeros pasos en Linux Ubuntu 14.04.

Algunas de sus ventajas con respecto al ya conocido sistema de virtualizacion

  • Puesta rápida en producción de sus aplicaciones.
  • Implementacion y escalabilidad sencilla
  • Alta densidad con menor carga de trabajo
  • Implementacion rápida con un manejo sencillo

Componentes Docker

  • El motor Docker: Tecnología de virtualizacion de contenedores
  • Docker Hub: Servicio SaaS para compartir y manejar nuestros contenedores


-Nos creamos una cuenta gratis en Docker
DriveMeca instalando Docker en Linux Ubuntu 14.04

-Verificamos nuestro apt-get pueda manejar https

ls -la /usr/lib/apt/methods/https
-rwxr-xr-x 1 root root 76928 jun 13 12:42 /usr/lib/apt/methods/https

-En caso de no tenerlo, instalamos

sudo apt-get -y install apt-transport-https

-Agregamos la llave del repositorio

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

-Agregamos el repositorio para apt

sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

-Actualizamos repositorios e instalamos docker

sudo apt-get update
sudo apt-get install lxc-docker

-Verificamos haya quedado instalado correctamente ejecutando bash en un contenedor Ubuntu. Al este no estar localmente, se descarga (pull)

sudo docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
c4ff7513909d: Download complete 
511136ea3c5a: Download complete 
1c9383292a8f: Download complete 
9942dd43ff21: Download complete 
d92c3c92fa73: Download complete 
0ea0d582fd90: Download complete 
cc58e55aa5a5: Download complete 
root@e020536c98ef:/# 

-Salimos con exit

-Por default el firewall de Ubuntu (si lo estamos ejecutando) bloquea todo el trafico forwarding, que es el necesario si queremos probar aplicaciones en nuestros containers desde la LAN, por tanto podemos habilitarlo. Salimos guardando

sudo vi /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

-Reiniciamos el servicio

sudo ufw reload

-Agregamos el puerto de docker a ufw

sudo ufw allow 2375/tcp
Rules updated
Rules updated (v6)

-Verificamos por linea de comandos nuestra cuenta en Docker, si no esta creada, por este medio quedara creada

sudo docker login
Username: drivemeca
Password: 
Email: pepe@gmail.com
Login Succeeded

-Ya podemos comenzar a usar Docker. Un ejemplo de ejecución de una aplicación dentro de un contenedor

sudo docker run ubuntu:14.04 /bin/echo 'Hola DriveMeca'
Unable to find image 'ubuntu:14.04' locally
Pulling repository ubuntu
c4ff7513909d: Download complete 
511136ea3c5a: Download complete 
1c9383292a8f: Download complete 
9942dd43ff21: Download complete 
d92c3c92fa73: Download complete 
0ea0d582fd90: Download complete 
cc58e55aa5a5: Download complete 
Hola DriveMeca

Ejecutara un contenedor Ubuntu 14.04 con el comando run ubuntu:14.04 (como no lo tengo local la primera vez, se ejecuta un pull que lo descarga de Docker Hub) y dentro de el ejecutara un comando echo

-Siguiente ejemplo, esta vez, interactivo

sudo docker run -t -i ubuntu:14.04 /bin/bash
root@8f0586aa8765:/# 

Esta vez pasamos a ejecutar con run y los parámetros -t (asigna una terminal) y -i (conexión interactiva por medio de STDIN) un /bin/bash

-Ya dentro es como si estuviéramos en un Linux Ubuntu normal y corriente

root@8f0586aa8765:/# ps -ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /bin/bash
    9 ?        R+     0:00 ps -ax
root@8f0586aa8765:/# ls -la
total 17296
drwxr-xr-x  52 root root     4096 Aug 14 15:27 .
drwxr-xr-x  52 root root     4096 Aug 14 15:27 ..
-rwxr-xr-x   1 root root        0 Aug 14 15:27 .dockerenv
-rwx------   1 root root 17636446 Aug 14 14:57 .dockerinit
drwxr-xr-x   2 root root     4096 Jul 22 22:51 bin
drwxr-xr-x   2 root root     4096 Apr 10 22:12 boot
drwxr-xr-x   4 root root      360 Aug 14 15:27 dev
drwxr-xr-x  81 root root     4096 Aug 14 15:27 etc
drwxr-xr-x   2 root root     4096 Apr 10 22:12 home
drwxr-xr-x  16 root root     4096 Jul 22 22:50 lib
drwxr-xr-x   2 root root     4096 Aug 12 03:30 lib64
drwxr-xr-x   2 root root     4096 Jul 22 22:48 media
drwxr-xr-x   2 root root     4096 Apr 10 22:12 mnt
drwxr-xr-x   2 root root     4096 Jul 22 22:48 opt
dr-xr-xr-x 292 root root        0 Aug 14 15:27 proc
drwx------   2 root root     4096 Jul 22 22:51 root
drwxr-xr-x   7 root root     4096 Jul 22 22:50 run
drwxr-xr-x   2 root root     4096 Aug 12 03:30 sbin
drwxr-xr-x   2 root root     4096 Jul 22 22:48 srv
dr-xr-xr-x  13 root root        0 Aug 14 15:27 sys
drwxrwxrwt   2 root root     4096 Aug 12 03:30 tmp
drwxr-xr-x  15 root root     4096 Jul 22 22:48 usr
drwxr-xr-x  16 root root     4096 Jul 22 22:51 var
root@8f0586aa8765:/# exit
exit

-Siguiente ejemplo, esta vez como ejecutar un contenedor y dejarlo corriendo indefinidamente con una tarea

sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hola DriveMeca; sleep 1; done"
[sudo] password for cabrera: 
c206c1d3ee3b752a412458049eedaf5911bd1ef21c29844cf9ff80becbba6ab7

Usamos el comando run con el parámetro -d (ejecutar en background, dejarlo corriendo)  y ejecutamos unas lineas por medio de /bin/sh. Pero, este no muestra el Hola DriveMeca sino una cadena. Esta cadena es el ID o identificador del contenedor y es único para cada uno

-Buscamos los contenedores ejecutándose actualmente prestando atención a las columnas CONTAINER ID y NAMES

sudo docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
c206c1d3ee3b        ubuntu:14.04        /bin/sh -c 'while tr   6 minutes ago       Up 6 minutes                            grave_galileo

Docker automáticamente acorta el ID y nos crea el nombre grave_galileo para nuestro contenedor

-Visualizamos la salida del script

sudo docker logs grave_galileo | less
Hola DriveMeca
Hola DriveMeca
Hola DriveMeca
Hola DriveMeca
...
...
...

-Detenemos nuestro contenedor

sudo docker stop grave_galileo
grave_galileo

-Verificamos no se este ejecutando aun

sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

-Quieres una imagen de Linux Centos? no hay problemas, usa el comando

sudo docker pull centos

-Para verificar que imágenes tenemos instaladas localmente

sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              14.04               c4ff7513909d        2 days ago          225.4 MB
ubuntu              latest              c4ff7513909d        2 days ago          225.4 MB
centos              centos6             b1bd49907d55        2 weeks ago         212.5 MB
centos              centos7             b157b77b1a65        2 weeks ago         243.7 MB
centos              latest              b157b77b1a65        2 weeks ago         243.7 MB

Quieres mas practicas? te aconsejo el tutorial interactivo de Docker en este URL (en Ingles)
Todo el mundo esta fascinado con Docker y tu, ya lo estas usando? Para que proyectos? En que OS Linux.
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

No todo esta perdido, Aun podemos recuperar la cuenta root

DriveMeca Centos Logo
Con la llegada de RedHat 7/Centos 7 también hubieron muchos cambios, incluida la forma de cambiar la contraseña de root de un servidor al cual hayamos perdido acceso. Hasta la versión 6 podíamos entrar en modo single-user o emergency y cambiar la contraseña. Esta forma ya no te funcionara en la versión 7 de estos OS y es por eso que hoy te quiero mostrar paso a paso como resetear/borrar la contraseña actual de la cuenta root haciendo unas pequeñas modificaciones a grub2 antes de hacer boot. Para este articulo mostraremos como hacerlo en un Linux Centos 7 aunque el proceso es el mismo en un Linux RedHat 7. De mas esta decir seguir los pasos con cuidado y no me responsabilizo por daños en tu configuración, tal cual muestro me funciona.

-Comenzamos haciendo boot de nuestro equipo y presionamos e encima del kernel mas actual que tengamos instalado en la pantalla de inicio de grub, es decir, el primero de arriba hacia abajo
DriveMeca reseteando contrraseña de cuenta root en Linux Centos 7

-Ya dentro de la configuración, bajamos con el cursor y agregamos al final de la linea linux o linuxefi el parámetro init=/bin/sh
DriveMeca reseteando contrraseña de cuenta root en Linux Centos 7

DriveMeca reseteando contrraseña de cuenta root en Linux Centos 7

-Eliminamos de esa misma linea los parámetros rhgb y quiet y presionamos Ctrl-x para hacer boot
DriveMeca reseteando contrraseña de cuenta root en Linux Centos 7

-Al caer en el prompt debemos volver a montar el filesystem con permisos de escritura (el filesystem estara de solo lectura o ro) o no podremos hacer el cambio de contraseña. Ejecutamos el siguiente comando

mount -o remount,rw /

-Cambiamos la contraseña con el comando

passwd root
DriveMeca reseteando contrraseña de cuenta root en Linux Centos 7

-Activamos cambios de context para que SELinux funcione bien después del boot

touch /.autorelabel

-Hora de reiniciar nuestro equipo para entrar con la nueva contraseña. Ejecutamos

exec /sbin/reboot
DriveMeca reseteando contrraseña de cuenta root en Linux Centos 7

-Al reiniciar ya podemos logearnos como root con la nueva contraseña
DriveMeca reseteando contrraseña de cuenta root en Linux Centos 7
En cuestión de minutos podemos recuperar el acceso como root a nuestro servidor en caso de perdida de contraseña. Te ha pasado ya con Centos 7? que hiciste para ganar acceso?
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark