Paso 1 – Creación de la máquina virtual en Virtual box
La MV la crearé con las siguientes características:
- Nombre: Ubuntu 20.04 server
- Disco duro: 50 GB
- Procesador: 2 CPUs
- Memoria RAM: 4108 MB
- Acceso a red: Adaptador puente
Detalles:
Paso 2 – Instalación del SO
Se debe descargar la ISO de instalación de la página oficial: https://ubuntu.com/download En este tutorial se utilizará la versión 20.04 LTS.
Después deberemos introducirla en la unidad óptica de la MV
Una vez introducida la iso de instalación del SO en la unidad óptica, podremos iniciar la MV para comenzar la instalación. Lo primero será elegir el idioma.
El asistente de instalación propone una actualización disponible, la 22.02.2, que es la versión estable actual, pero es preferible no escoger una versión que no sea LTS para que tenga más soporte nuestra version instalada y para no tener que actualizar en un largo tiempo.
Las siglas LTS provienen de Long Time Support, lo cual significa soporte a largo plazo. Una LTS tiene 5 años de soporte y esto significa que durante los cinco años siguientes a la liberación de dicha versión tendremos actualizaciones importantes y de seguridad para Ubuntu y así el sistema operativo será seguro. Las versiones que no son LTS acostumbran a tener un soporte de 9 meses, aun siendo versiones estables, son las que se utilizan para probar las nuevas funcionalidades que va implantando la empresa al SO.
Desde Canonical es habitual que lancen una versión estable nueva de Ubuntu cada 6 meses, de las cuales, una de cada 4 es LTS. Suelen sacarlas en abril y en octubre, coincidiendo las versiones LTS cada abril de año par. Por eso la versión 20.04, en estos momentos aun no ha salido la versión 22.04.
Volviendo al tutorial, se debe clicar en «Continuar sin actualizar»
Se escoge el idioma del teclado. Es preferible seleccionar con la tecla espacio y clicar en Intro tan solo cuando tengamos las configuraciones efectuadas. Algunos asistentes de configuración detectan el Intro como tecla de guardar los cambios y seguir, esto podría tener la consecuencia de no poder volver atraś, aunque en Ubuntu no sea el caso.
Como se ha configurado la red «Adaptador puente» el sistema ha localizado el DHCP de mi red local y le ha dado una IP. Puede tardar unos segundos.
Por ahora no configuramos nada de la red, clicamos «Hecho»
No configuramos ningún proxy. Clicamos hecho.
Dejamos el repositorio que viene por defecto. Clicamos hecho.
El disco lo utilizaremos entero. En el caso que se quiera personalizar las particiones deberemos seleccionar «Custom storage layout»
No crearmos ninguna partición. Clicamos en Hecho
Nos pedirá confirmación ya que en este paso, si estuviesemos con un disco físico y no lógico o estuvieramos instalando encima de otro disco de MV, se borrarían los datos.
Clicamos en Continuar
Le damos el nombre al usuario principal, al servidor, el nombre de usuario de login y su contraseña. Después clicamos en Hecho.
Se instalará el servicio OpenSSH para ahorrar la instación posterior. No importaremos la identidad SSH por ahora. Clicamos en Hecho.
Nota: Si no hemos configurado bien la red no se podrá instalar.
Ahora nos ofrece una serie de servicios del que elegiremos docker. Click en Hecho
Y comenzará la instalación. Puede llevar unos minutos. Tendremos que esperar que aparezca en la parte superior «Se ha completado la instalación» y en la inferior «Reiniciar».
Después del reinicio tendremos el prompt para introducir nuestro usuario y contraseña.
Paso 3 – Configuración del SO
Se introduce el usuario y la contraseña configurado para entrar en el prompt. Este usuario tendrá privilegios sudo.
Lo primero que se debe hacer es una actualización. Revisamos que los repositorios son los correctos:
sudo nano /etc/apt/sources.list
Comprobamos las actualizaciones y las ejecutamos:
sudo apt update && sudo apt upgrade -y
Quizá tarde unos minutos, sobretodo la primera vez que se actualiza si la versión instalada es antigua sin las revisiones.
Luego se configura la IP a una estática, ya que así el servicio DHCP no cambiará ésta con el dolor de cabeza que puede suponer para los servicios y conexiones en red. La IP estática debe ser una reservada de la red local o en también se podría cambiar el tipo de red de la MV a NAT.
Para configurar la red lo haremos con el archivo de configuración de netplan:
sudo nano /etc/netplan/00-installer-config.yaml
Aplicamos los cambios con el comando:
sudo netplan apply
Si todo ha ido bien no imprimirá ningun error en pantalla.
Podemos comprobar el resultado con
ip -c a
y efectuando ping a internet u otros equipos de la red
ping google.es
ping 192.168.1.39
Se podría configurar la interfaz gráfica con:
sudo apt-get install ubuntu-desktop
Pero personalmente prefiero no hacerlo para optimizar los recursos.
También se puede instalar el programa “tasksel” para instalar distintos programas, servicios y configuraciones del sistema.
También se deben instalar los paquetes necesarios para la configuración del idioma con este comando para el español:
sudo apt install language-pack-es language-pack-es-base aspell-es myspell-es
Le decimos Y para confirmar. (En la instalación de programas con apt, si añadimos la opción -y evitamos que nos pregunte para confirmar)
Para configurar el idioma tenemos que añadir las siguientes líneas en los ficheros “/etc/environment” y “/etc/default/locale”:
LANG="es_ES.UTF-8"
LC_ALL="es_ES.UTF-8"
LANGUAGE="es_ES"
Para aplicar los cambios usamos el comando:
sudo dpkg-reconfigure locales
Marcar las opciones de español de España.
Y para el entorno gráfico seria:
sudo apt install language-pack-gnome-es language-pack-gnome-es-base
Compruebo su configuración con “locale”
Paso 4 – Configuraciones/instalaciones necesarias y recomendadas
Ahora ya deberiamos poder entrar por ssh. Con lo cual podemos salir del prompt con «exit».
Si queréis hacer un reinicio lo podéis hacer con «reboot». Para apagar con «shutdown -h now».
Abrimos la terminal y ejecutamos el siguiente comando:
ssh nombre-usuario@dirección-ip
Para mantener la comunicación encriptada dice de descargar un certificado. Se le dice «yes».
Pedirá el password del usuario y al entrar dará un resumen de documentación y del estado actual del servidor. También cambiará el prompt con el usuario y el nombre de host del servidor.
Ahora ya podemos trabajar desde aquí. Será más cómodo a la hora de copiar y pegar, revisar documentación o antiguos comandos hacia arriba, etc.
Para securizar un poco más la conexión ssh, vamos a impedir que se pueda conectar el usuario root. Editamos el archivo de configuración
sudo nano /etc/ssh/sshd_config
Buscamos la línea:
# PermitRootLogin prohibit-password
Descomentamos la línea y cambiamos a no:
PermitRootLogin no
Y para que se apliquen los cambios reiniciamos el servicio:
/etc/init.d/ssh restart
En este mismo documento podemos cambiar muchos parámetros interesantes para la seguridad. Siendo una MV no es necesario que os molestéis mucho, pero me parece que no permitir el root es una medida de autoprotección, recomiendo que no se use root más que para momentos muy concretos.
En el mismo archivo también podemos configurar un banner para cuando intentamos entrar meadiante ssh.
sudo nano /etc/ssh/sshd_config
Banner /etc/ssh/mensaje
Guardamos y cerramos el archivo. Creamos el mensaje.
sudo nano /etc/ssh/mensaje
Reiniciamos el servicio
sudo systemctl reload ssh.service
Salimos de ssh y volvemos a entrar
Paso 4.1 – Instalaciones de paquetes básicos
Cada uno puede tener una visión distinta de cuáles son los paquetes básicas a instalar después de una instalación de un servidor Linux. Personalmente son los siguientes que resumo en un comando:
sudo apt install unzip zip tree curl ufw
Como siempre, es mejor asegurarse que los repositorios están al día con «sudo apt update». Puede que algunos paquetes ya estén instalados.
También instalaremos un firewall. Comprobamos si lo tenemos
sudo ufw status
Si el comando nos devuelve «activo» o «inactivo» es que ya lo tenemos, si no, lo instalamos:
sudo apt-get install ufw
Y vamos a permitir el tráfico básico para el uso que le daremos al servidor
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
Y habilitamos el servicio:
sudo ufw enable
Paso 4.2 – Instalación de docker
Antes de empezar con la instalación, nos aseguramos que no tenemos instaladas otras versiones de docker o sus dependencias:
sudo apt-get remove docker docker-engine docker.io containerd runc
Si no tienes instalado nada dirá que no puede localizar el paquete, si tienes alguna instalación la eliminará.
Ahora, se debe actualizar para tener los repositorios actuales.
sudo apt update
Si se pueden instalar paquete se pude hacer «sudo apt upgrade», a gusto.
Ahora se instalará los paquetes que son necesarios antes de la instalación de docker:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Con la opción -y instalará sin preguntar
Añadimos la clave GPG para el repositorio oficial de Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Agregamos el repositorio:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Actualizamos de nuevo los repositorios (sudo apt update) para que se agreguen los paquetes del repositorio recien añadido. Después ya podemos instalar los paquetes docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io
Podemos comprobar el estado del servicio:
sudo systemctl status docker
Si tenéis dudas acudid siempre a la fuente oficial: https://docs.docker.com/engine/install/ubuntu/
Para usar docker sin el sudo se debe añadir al usuario al grupo de docker:
sudo usermod -aG docker ${USER}
Para aplicar la nueva membresía de grupo se debe cerrrar la sesión del servidor y volver a iniciar o con el siguiente comando:
su - ${USER}
Pedirá la contraseña.
Se puede confirmar que ahora el usuario se agregó al grupo docker escribiendo lo siguiente:
id -nG
Podemos probar el servicio con el típico «Hola mundo»:
docker run hello-world
2 comentarios. Dejar nuevo
Muchas gracias! Me ha resultado muy práctico
[…] Preparación de entorno de pruebas local para docker […]