Todas las entradas por Leopoldo Virosta Ruiz

Me gusta la tecnología, seguir aprendiendo rodeado de mis equipos, mi música. Hacer deporte al aire libre, con mi bicicleta, mis paseos por la montaña. Como se suele decir, sin prisa pero sin pausa.

Cómo Implementar Servidores Web con Ansible

Previamente necesario tener instalado Ansible y sshpass en nuestro ordenador.

Crear estructura de archivos de nuestro proyecto de Ansible

Primero vamos a crear una estructura base de nuestro proyecto que contiene:

  • Archivo de inventario llamado hosts con los equipos donde vamos a desplegar
  • Archivo ansible.cfg que le dice a Ansible donde encontrar el archivo de inventario.
  • Archivo un archivo de playbook llamado site.yml con instrucciones para ejecutar la implementación
  • Estructura de carpeta de roles para contener el rol webservers
Contenido de ansible.cfg
Crear archivo hosts

Definimos un grupo llamado webservers en el archivo hosts con el nombre de host o IP de la maquina o máquinas destino.

Verificar comunicación con el servidor

Con el módulo ping de Ansible comprobamos que hay conexión.

Con el módulo command le pedimos que nos conteste con ‘Test exitoso’

Crear archivo de playbook

En este paso creamos el contenido de site.yml con las instrucciones necesarias para instalar un servidor web Apache en nuestro servidor.

  • hosts: webservers hace referencia al grupo de servidores en el archivo hosts.
  • become: yes activa la ejecución del comando sudo para permitir instalar aplicaciones.
  • handlers o controladores son llamados por las tareas, en este caso la tarea ‘Habilitar MOD_REWRITE’ llama al controlador ‘RESTART APACHE2’
Ejecutar archivo de playbook

Ejecutamos el archivo site.yml para desplegar la tarea con la instrucción:

sudo ansible-playbook -v site.yml

Verificamos que se ha instalado el servidor Apache2 en el destino.

Personalizar playbook con algunas opciones

Vamos a decirle a Apache que escuche por otro puerto, por ejemplo el 8081. Creamos un archivo site81.yml para el ejemplo.

Ejecutamos ansible-playbook y comprobamos que escucha por el puerto solicitado.

Crear playbook y definir roles

Otra manera de desplegar la infraestructura es mediante roles, al principio creamos una estructura en la carpeta roles con el rol webservers. Vamos a crear un nuevo playbook que llame a este rol, lo vamos a llamar siteByRol.yml

El código para el rol esta en el archivo main.yml de la carpeta task

El rol tiene dos tareas:

  1. Desplegar Apache2.
  2. Copiar un archivo index.html en la raiz de Apache2 reemplazando al original. El archivo lo creamos en la carpeta files

Ejecutamos el playbook y comprobamos que se ha desplegado correctamente.

Instalar sshpass

Instalación de sshpass en SO Ubuntu 22.04.1 LTS 64 bits, versión de GNOME 42.5 y sistema de ventanas Wayland, todo ello virtualizado en Oracle VM VirtualBox 6.1

sshpass se usa cuando quieres conectar vía ssh desde un script, sin tener que esperar introducir la contraseña, esta se la damos con el comando sshpass.

Ejemplo de sshpass

La opción -p contiene la contraseña del usuario que se va a a conectar por ssh.

Compartir carpeta en Ubuntu 22.04

Una vez tengamos claro la carpeta que vamos a compartir con el botón derecho pinchamos en ‘Recurso compartido de red local

El sistema nos indica que el servicio de compartición no esta instalado.

Instalamos el servicio para poder compartir la carpeta.

Una vez instalado el servicio creamos la compartición dándole un nombre a la carpeta compartida, y seleccionando ‘Permitir a otras personas crear y eliminar archivos en esta carpeta’, o ‘Acceso invitado’. En teoría si seleccionas la opción de Acceso invitado’ no debería pedir contraseña cuando te conectas. Yo he seleccionado las dos opciones y cuando he intentado conectarme desde Windows me ha pedido usuario y contraseña.

Para establecer una contraseña para el usuario de Samba lo hacemos con el comando smbpasswd

Instalar RPi-Monitor

RPi-Monitor es una aplicación para monitorizar tu Raspberry Pi. Puedes ver el consumo de la CPU, temperatura, Uptime, memoria, espacio en disco, red, servicios…

Para instalar visitar la página oficial.

Por defecto las pestañas Network y Servers no vienen activas.

Para activar Network ir a /etc/rpimonitor/template y modificar el archivo network.conf

Para activar la pestaña de Servers ir a /etc/rpimonitor/data.conf y descomentar la siguiente línea.

Para ver los servicios activos en caso necesario ejecuta el comando netstat -ntl

Los servicios se configuran en el archivo /etc/rpimonitor/template/services.conf