Celular, Llaves, MiniDocker, listo, VAMONOS!!!!

Celular, Llaves, MiniDocker, listo, VAMONOS!!!!
Hola Lector

Creíste que me había olvidado de ti?, la verdad, un poquito.
simplemente no hubo tiempo en el día para dedicarle al blog, y pues aunque siento un poco de culpa, he creado en estos días tanto material para compartir, que no se ni con que empezar.

Docker

Docker, es el sueño húmedo de los developers, fabuloso para ambientes de desarrollo, personalmente, no soy fan, pero definitivamente es una tecnología llamativa.

Pero los contenedores no son nuevos, son mas viejos que los hypervisores, y personalmente no los veo tan flexibles como me gustaría, ya que no puedes correr ambientes muy diferentes de tu host, es decir, puedo correr contenedores centOS dentro de un Ubuntu, por ejemplo, pero, no puedo correr Windows (ok, no quiero, pero si quisiera, no podría)

También los considero inseguros, dado el completo aislamiento que provee un servidor virtualizado, comparado con docker, aunque muchos prodrian argüir que dado el tamaño del contenedor y la ausencia de un sistema operativo completo, la superficie de ataque es significativamente menor.

Después de hablar un poco mal de Docker, vamos a lo que nos importa, hoy haremos un miniDocker, listo para tus sesiones de desarrollo lejos de casa (a quien engaño, los developers ni saben leer, mucho menos van a hacer uno de estos, se los dejo a ustedes sysadmins, gente que respeto y aprecio).

Raspberry Pi

No sera la ultima vez que hable de estos aparatos, son buenísimos, baratos, y aunque aun son un tanto difíciles de conseguir, cuando tienes uno, un mundo de posibilidades se abren

Hoy en particular, trabajaremos con un Pi Zero v1.3, pero este tutorial funciona con cualquier versión de Pi Zero.

Lograremos nuestro cometido usando el denominado "modo gadget", esto nos permite utilizar el puerto miniUSB de datos como fuente de poder, y ademas como interfaz TCP/IP para conectar directamente a tu computadora

cabe mencionar que esta guía no tendrá muchos detalles sobre como compartir tu conexión de Internet, ya que, esto puede variar de acuerdo a tu Sistema Operativo

Para este miniDocker necesitaran

  1. Rasbian lite (la version mas reciente aqui, y digo la versión lite porque no necesitamos ambiente gráfico aquí, esa es la versión mas pequeña que me ha funcionado)
  2. Pi Zero (yo la compre aqui, pueden comprar cualquier versión, la mas barata es de 5USD)
  3. Tarjeta MicroSD (yo recomiendo de 8G para arriba)

Comencemos

Vamos a ponerle Raspbian a la MicroSD

Hay tantas formas de hacerlo, que no voy a entrar en detalles, yo prefiero usar etcher, pero seguro hay aquí un montón de puristas que les gusta la consola, así que ni me voy a poner a discutir.

Ya tenemos la memoria, hagamos algunos ajustes

Tu MicroSD ahora tiene 2 particiones, /boot (fat) y / (ext4), vamos a editar un par de archivos en /boot, el primero cmdline.txt, agregaremos estas palabras en la misma linea después de rootwait

modules-load=dwc2,g_ether

El segundo archivo es config.txt donde agregaremos un par de lineas al final del documento

dtoverlay=dwc2  
gpu_mem=16

esto habilitara el modo gadget y reducirá la memoria del GPU al mínimo, ya que no lo utilizaremos y la memoria en estos dispositivos es limitada.

También podemos comentar dtparam=audio=on con un #, ya que muy seguramente no nos interesa que el servidor tenga sonido.

después de esto, para habilitar SSH debemos crear un archivo, este puede ser vació, pero se tiene que llamar ssh, es muy importante que lo pongas ahí, ya que de no ser así, ssh estará deshabilitado y no tendremos forma de entrar a nuestro servidor

Listo, ahora a ponerle Docker

Ya tenemos nuestro servidor listo para entrar, solo queda ponerle la MicroSD, y conectarla a nuestra computadora favorita

Zero1

Tenemos que esperar unos minutos, lo primero que hace un raspbian nuevo es re-dimensionar el sistema de archivos para usar la MicroSD en su totalidad.

Y ahora, entramos
ssh pi@raspberrypi.local

la contraseña es raspberry, te recomiendo que cambies el usuario y la contraseña tan pronto como te sea posible, aunque sea una computadora de desarrollo, debemos siempre pensar en como hacer cualquier dispositivo, mas seguro.

Necesitaremos tener acceso a Internet, esto depende de tu computadora, pero generalmente los sistemas de escritorio tienen una modalidad para compartir Internet, solo necesitas habilitarla para tu nueva conexión punto a punto, que generalmente se presenta como una nueva interfaz.

PÁSATE AL USUARIO root

Cuando este listo, recuerda actualizar tu sistema operativo
apt-get update; apt-get upgrade; reboot

y Finalmente, instalamos docker
curl -sSL get.docker.com | sh

Lo se, una linea, es una burla, lo fácil que es, pero ahí esta

después deberías agregar un usuario, con privilegios para usar docker, pero nadamas, si eres nuevo y le tienes miedo al peligro, no uses root como tu usuario de diario, puedes cometer errores de los que luego te arrepientes (me ha pasado tantas veces). Una vez agregado, solo debes ejecutar el siguiente comando para que pueda usar docker.
sudo usermod -aG docker minuevousuario

Ya tienes docker, ahora que vas a hacer con el

Hay algunas cosas que tienes que saber antes de usar docker en una RaspberryPi, ahí te van

  1. Estamos hablando de ARM
    No hay ni remotamente tantas imágenes como las hay para x64, simplemente tendrás que hacerte a la idea que es lo que hay, pero por ese tamaño y ese precio, no es nada despreciable
  2. No confíes en nadie
    Bueno, puedes confiar en mi (digo, si ya me conoces), pero el hecho es que hay mucha gente jugando con IoT, y mucha gente anda por ahí, haciendo imágenes con algún extra, que les ayuda a que tus dispositivos participen en esos famosos ataques DDOS entonces, y no puedo poner esto mas claro no uses imagenes no oficiales
  3. Esta cosa sabe hablar con otros dispositivos Tu Pi Zero, tiene interfaces programables que le permiten obtener información de sensores, switches, leds, piensa locamente, que puedo poner a hacer a mi Pi Zero aquí en la casa

Bueno, eso es todo por hoy, espero que te guste