openwisp.wifi_login_pages
ansible-openwisp-wifi-login-pages
Rol de Ansible para desplegar y gestionar openwisp-wifi-login-pages.
Variables requeridas:
wifi_login_pages_domains: una lista con el nombre de dominio donde la aplicación será accesible.wifi_login_pages_organizations_src: ruta local del directorio que contiene la configuración de las organizaciones.
Uso (tutorial)
Si no sabes cómo usar ansible, no te preocupes, este procedimiento te guiará hacia una instalación básica y funcional de openwisp-wifi-login-pages.
Si ya sabes cómo usar ansible, puedes saltarte este tutorial.
Primero, necesitas entender dos conceptos clave:
- por "servidor de producción" nos referimos a un servidor (¡no a una laptop o una computadora de escritorio!) con ipv4 / ipv6 pública que se utiliza para alojar openwisp2.
- por "máquina local" nos referimos al equipo desde el que lanzas ansible, por ejemplo, tu propia laptop.
Ansible es una herramienta de gestión de configuración que funciona accediendo a servidores de producción a través de SSH, así que necesitas instalarla y configurarla en la máquina desde la que se realiza el despliegue y esta máquina debe poder conectarse por SSH al servidor de producción.
Ansible se ejecutará en tu máquina local y desde allí se conectará al servidor de producción para instalar openwisp-wifi-login-pages.
Instalar ansible
Instala ansible (versión 2.13 o superior) en tu máquina local (¡no en el servidor de producción!) si aún no lo has hecho.
Para instalar ansible, te sugerimos seguir la guía de instalación oficial de ansible. Se recomienda instalar ansible a través de un entorno virtual para evitar problemas de dependencia.
Asegúrate de tener la versión correcta de Jinja instalada en tu entorno de Python:
pip install Jinja>=2.11
Elegir un directorio de trabajo
Elige un directorio de trabajo en tu máquina local donde colocarás la configuración de openwisp-wifi-login-pages.
Esto será útil cuando necesites actualizar openwisp-wifi-login-pages.
Ejemplo:
mkdir ~/openwisp-wifi-login-pages-ansible-playbook
cd ~/openwisp-wifi-login-pages-ansible-playbook
Poner este directorio de trabajo bajo control de versiones también es una muy buena idea.
Instalar el rol de ansible desde ansible-galaxy
ansible-galaxy install openwisp.wifi_login_pages
Crear un archivo de inventario
El archivo de inventario es donde se definen los grupos de servidores. En nuestro caso simple, podemos definir solo un grupo en el que pondremos un solo servidor.
Crea un nuevo archivo llamado hosts en el directorio de trabajo de tu máquina local (el directorio creado en el paso anterior), con el siguiente contenido:
[openwisp-wifi-login-pages]
openwisp-wifi-login-pages.mydomain.com
Crear un archivo de playbook
Crea un nuevo archivo de playbook playbook.yml en tu máquina local con el siguiente contenido:
- hosts: openwisp-wifi-login-pages
become: "{{ become | default('yes') }}"
roles:
- openwisp.wifi_login_pages
vars:
wifi_login_pages_domains: ["wifi.openwisp.org"]
La línea become: "{{ become | default('yes') }}" significa que ansible usará el programa sudo para ejecutar cada comando. Puedes eliminar esta línea si no la necesitas (por ejemplo, si estás usando el usuario root en el servidor de producción).
Puedes reemplazar openwisp-wifi-login-pages en el campo hosts con el nombre de dominio de tu servidor de producción si lo deseas.
La variable wifi_login_pages_domains es la única variable requerida. Es una lista con el nombre de dominio donde la aplicación será accesible.
Ejecutar el playbook
Ahora es el momento de desplegar openwisp-wifi-login-pages en el servidor de producción.
Ejecuta el playbook desde tu máquina local con:
ansible-playbook -i hosts playbook.yml -u <usuario> -k --become -K
Sustituye <usuario> con el nombre de usuario de tu servidor de producción.
El argumento -k requerirá el programa sshpass.
Puedes eliminar -k, --become y -K si tu clave SSH pública está instalada en el servidor.
Consejos:
- Si tienes un error como
Error de autenticación o permiso, intenta usar el usuario root:ansible-playbook -i hosts playbook.yml -u root -k - Si tienes un error acerca de añadir la huella digital del host al archivo
known_hosts, puedes conectarte al host a través de SSH y responder sí cuando se te pida; luego puedes ejecutaransible-playbooknuevamente.
Desplegar configuraciones y activos de organizaciones
Para desplegar archivos de configuración YAML de organizaciones y sus activos estáticos relacionados (logo, CSS, etc.), procede con los siguientes pasos:
Paso 1: Cambia al directorio con el archivo de playbook.
cd <ruta_al_archivo_de_playbook>
Paso 2: Crea el directorio files.
mkdir files
Paso 3: Copia toda la configuración de las organizaciones y los activos del directorio organizations al files/owlp_organizations.
cp -r <ruta_al_directorio_de_organizaciones> files/owlp_organizations
Desplegar traducciones
Para desplegar traducciones normales y personalizadas copia todas las traducciones del directorio i18n al files/owlp_i18n.
cp -r <ruta_al_directorio_de_i18n> files/owlp_i18n
Ahora ejecuta el playbook y los archivos serán subidos al remoto.
Desplegar contenido estático personalizado
Para desplegar contenido estático personalizado (archivos HTML, PDF, etc.) añade todo el contenido estático dentro del directorio files/owlp_static.
Los archivos dentro de owlp_static se subirán al directorio static en remoto mientras se ejecuta el playbook.
Cómo ejecutar pruebas
Si deseas contribuir a ansible-openwisp-wifi-login-pages, debes ejecutar pruebas en tu entorno de desarrollo para asegurarte de que tus cambios no están rompiendo nada.
Para hacerlo, sigue estos pasos:
Paso 1: Clona ansible-openwisp-wifi-login-pages
Clona el repositorio mediante:
git clone https://github.com/<tu_fork>/ansible-openwisp-wifi-login-pages.git
Paso 2: Instala docker
Si aún no has instalado docker, necesitas instalarlo (ejemplo para sistemas linux debian/ubuntu):
sudo apt-get install docker.io
Paso 3: Instala molecule y dependencias
pip install molecule[docker] yamllint ansible-lint docker
Paso 4: Descarga imágenes de docker
docker pull geerlingguy/docker-ubuntu2404-ansible:latest
docker pull geerlingguy/docker-ubuntu2204-ansible:latest
docker pull geerlingguy/docker-ubuntu2004-ansible:latest
docker pull geerlingguy/docker-debian11-ansible:latest
docker pull geerlingguy/docker-debian12-ansible:latest
Paso 5: Instala las dependencias de ansible
ansible-galaxy collection install community.docker
Paso 6: Ejecuta la prueba de molecule
molecule test -s local
Si no obtienes ningún mensaje de error, significa que las pruebas se ejecutaron correctamente sin errores.
Consejo Pro: Usa molecule test --destroy=never para acelerar las siguientes ejecuciones de pruebas.
ansible-galaxy install openwisp.wifi_login_pages