RancherOS: Tutorial de cómo instalar este servidor Docker

En este post vamos a explicar, paso a paso, cómo instalar un servidor de Docker, más en concreto RancherOS. Este servidor Docker es una distribución de Linux muy ligera que contiene únicamente lo necesario para ejecutar nuestros contenedores de la forma más eficiente posible.

Docker

Para poder llevar acabo este tutorial, deberemos disponer en nuestra red de un servidor DHCP, vienen en la mayoría de los routers, así que esto no debería ser un problema. En caso de que no dispongáis de dicho servicio, escribidme y os indicaré de los pasos adicionales a realizar.

Comenzaremos con descargar RancherOS en formato ISO a través del siguiente enlace. Una vez descargado, deberemos arrancar con él, bien a través de un CD, usb,  o lo que prefiramos. Esto arrancará la versión Live de RancherOS, mostrando la siguiente pantalla.

RancherOS Live CD

Desde aquí procederemos a instalar RancherOS en nuestro servidor, para ello deberemos realizar los siguientes pasos:

  • Accederemos al shell Bash
sudo bash
  • Establecemos el password del usuario rancher.
passwd rancher
  • Una vez preparado el usuario rancher, accedemos remotamente al servidor a través de un cliente ssh, más en concreto con el PuTTY. Accederemos mediante esta aplicación, la dirección IP a utilizar es la que se nos mostró al arrancar RancherOS, tal y como puede verse en la siguiente imagen.

IP RancherOS

Una vez entremos con el PuTTY, accederemos con el usuario rancher, una vez ahí realizaremos los siguientes pasos:

  • Crearemos un archivo denominado cloud-confing.yml, éste es el responsable de configurar el proceso de instalación.
vi ./cloud-config.yml
  • Una vez dentro, establecemos el siguiente contenido
#cloud-config

hostname: rancheros-01

rancher:
  network:
    interfaces:
     eth*:
      dhcp: false
     eth0:
      address: 192.168.0.21/24
      gateway: 192.168.0.1
    dns:
     nameservers:
       - 8.8.8.8
       - 8.8.4.4

ssh_authorized_keys:

  -
  • Procedemos a explicar cada uno de los parámetros que están puestos en negrita:
    • hostname: Este corresponde con el nombre que le queremos dar a nuestros servidor, en mi caso, rancheros-01.
    • dhcp: Si montamos un servidor un poco serio, debería disponer de una dirección ip fija, por esto el parámetro dhcp se establece a false. En cambio, si queremos que nuestro RancherOS tenga un ip dinámica, deberemos establecer este parámetro a true (dhcp : true) y eliminar la configuración asociada el eth0 y al dns.
    • eth0: Aquí estableceremos la configuración de red de nuestro servidor.
      • address: La dirección ip, junto con las máscara de red.
      • gateway: Nuestra puerta de enlace.
    • dns: Servidos DNS, en el ejemplo he usado del servidor de nombres de Google.
  • Queda definir la configuración del ssh_authorized_keys, que como veréis hemos dejado vacía. Cuando tengamos el servidor instalado, por seguridad, no permite acceder a su administración mediante un usuario / contraseña, requiere de algo más seguro, un cliente ssh con una clave privada, ahora procederemos a explicar cómo generar esto.
  • Ejecutamos el PuTTYgen, PuTTY Key Generator, mostrándose una pantalla similar a la siguiente.

PuTTy Key Generator

  • Pulsamos en Generate y movemos el ratón de forma aleatoria dentro del área de la aplicación con el título Key, esto es necesario para generar una clave pública y privada aleatoria. Deberemos hacer esto hasta que la barra verde mostrada se complete, veamos una imagen para ilustrarlo.

Generando clave pública y privada

  • Una ver termine, se nos mostrará el contenido de la clave generada, vamos al campo denominado Key comment y establecemos el valor RancherOSKey, quedando la pantalla de la siguiente forma

Configuración cable pública y privada

  • Guardamos la clave pública y privada en dos ficheros, esto es lo que usaremos en un futuro para poder acceder a nuestro servidor de forma remota. Para ello , pulsamos en Save public key y indicamos la ruta del fichero en donde guardaremos la clave pública, y hacemos lo mismo para la clave privada, pero esta vez pulsando en Save private Key. Una vez hecho esto, seleccionamos el contenido del recuadro Public key for pasting into OpenSSH authorized_keys file, tal y como se muestra en la siguiente ilustración, debemos copiarla toda.

Copiar clave pública

  • Volvemos a nuestra sesión remota ssh con RancherOS, y rellenamos el parámetro que habíamos dejado pendiente, ssh_authorized_keys, con la clave que acabamos de copiar al portapapeles, quedando de la siguiente forma:
#cloud-config

hostname: rancheros-01

rancher:
  network:
    interfaces:
     eth*:
      dhcp: false
     eth0:
      address: 192.168.0.21/24
      gateway: 192.168.0.1
    dns:
     nameservers:
       - 8.8.8.8
       - 8.8.4.4

ssh_authorized_keys:

  - ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAuQgGzCnNEWTKMjjkWsaynz4C1kU4htFe3AYESr55K1B/0fSUc/4NrAo+yye1hvuDeFQGrn9oxmCXyk0rkPKfWvy7dIfHAeHLY09JwliXjzwRwHliHeMf40tzKnkGyUE5DI1dEx+rtk653bU6CfmxiNnaHawOqTTHGYA/whwXL4GItzWxKPTWL3sC18ke6WDlP8vj2kxWqBoggRTY3vztsKrgVtnRGSc/CQzbj/tl3lBN7Q5vLMe47RM+v6tbribPRyPqRN02epBAFkG6SZWuc2kSOnn8PfCmNZe/BsEV4bQp6DNf3G6FQsTFm+DgNoRlvYllsFEMElRBTnTOnV0pMQ== RancherOSKey
  • Guardamos el fichero (comando vi :wq), y ahora por fin, procederemos a instalar nuestro servidor con el siguiente comando
sudo ros install -c cloud-config.yml -d /dev/sda
  • El parámetro -d /dev/sda/ es el disco, dentro de nuestro servidor, en donde deseamos realizar la instalación, así que este valor puede variar en función del servidor que utilicemos.

Una vez termine la instalación, quitamos el CD del live de RancherOS, o lo que hayamos utilizados, y reiniciamos el equipo.

Una vez arrancado y para acceder a él, deberemos usar de forma remota un cliente SSH, por ejemplo el putty. Para ello deberemos proceder a su configuración previa, ya que como hemos dicho, por defecto el servidor Docker no permite acceder mediante usuario y contraseña, para esto deberemos seguir los siguientes pasos.

Configuración Putty

  • Arrancamos el PuTTY y establecemos la información de acceso a nuestro servidor:
    • Host Name: Establecemos la ip de nuestro servidor, en nuestro ejemplo la 192.168.0.21
    • Connection Type: Establecemos SSH.
    • Saved Sessions: Un nombre que nos permita identificar la conexión, por ejemplo, rancheros-01 .

Configuración login PuTTY

  • Accedemos a la categoría Connection > Data (En la parte derecha del PuTTY), y en el parámetro Auto-login username, establecemos el valor rancher, esto identifica el usuario con el que queremos entrar en el servidor.

  • Accedemos a la categoría Connection > SSH > Auth (En la parte derecha del PuTTY) y establecemos la ubicación del fichero correspondiente a la clave privada que generamos anteriormente.
  • Volvemos al área de Session (En la parte derecha del PuTTY), pulsamos sobre el botón Save, con el objeto de guardar la configuración, y pulsamos Open, con esto ya podemos acceder a nuestro servidor Docker.

Si queremos administrar nuestro servidor Docker vía web, podemos ejecutar el siguiente comando

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

 

Esto arrancará un cliente Web que nos hará la vida más facil, para acceder http://<la ip de nuestro servidor>:9000 en nuestro caso http://192.168.0.21:9000/