WIP: Parametrizar dominios de redes principales #81

Closed
Numerica wants to merge 12 commits from feat/parametrizar_redes into issue42
Owner

Viene después de #76 y de #80

Viene después de #76 y de #80
Numerica added 7 commits 2025-12-01 20:08:52 +00:00
debido a que para este hay que arreglar la obtencion de certificados de DNS externos,
es necesario en HTTP (80) pasar la variable  a proxy_ssl_name ya que  viene vacia y esto
genera el error 500 responde tlsv1 unrecognized name (alert 112)
Añade soporte completo para usar dominios FQDN externos (ejemplo.com,
kipu.latina.red, etc.) además de subdominios .abyaya.la.

Cambios principales:
- Generación automática de subdominio .abyaya.la como alias
- Detección automática de TLDs compuestos (.com.ar, .co.uk, etc.)
- Actualización DNS multi-zona en Knot
- Procesamiento de múltiples dominios por servicio
- Certificados SSL para todos los dominios + wildcards

La detección de tipo de dominio (FQDN vs subdominio) es completamente
automática basada en el sufijo .abyaya.la.

Ver FQDN_AUTHORITATIVE.md para documentación completa.
y le saco el no a ssl para otra cosa
El uso de $host en lugar de $ssl_server_name no es correcto ya que:
- proxy_ssl_verify está deshabilitado, por lo que el SNI no importa
- $ssl_server_name es el valor correcto para SNI en proxies SSL
- $host causaba confusión innecesaria

Revierte a la configuración estándar y correcta.
bifurca de #issue42 en que ya estan parametrizadas zones y asi
Numerica requested review from fauno 2025-12-01 20:09:13 +00:00
Author
Owner

@fauno sería el último commit no más lo que hay que revisar aquí

@fauno sería el último commit no más lo que hay que revisar aquí
fauno changed target branch from master to issue42 2025-12-02 18:18:26 +00:00
fauno requested changes 2025-12-02 18:20:43 +00:00
@ -77,2 +77,2 @@
local=/comun/
domain=comun
local=/{{ dns_name }}/
domain={{ dns_name }}
Owner

no seria vpn_name?

no seria `vpn_name`?
fauno marked this conversation as resolved
@ -118,3 +118,3 @@
# interface (eg eth0) here.
# Repeat the line for more than one interface.
interface=comun
interface={{ dns_name }}
Owner

idem

idem
fauno marked this conversation as resolved
@ -52,2 +52,2 @@
has_abyayala_domain: "{{ item.domains | select('match', '.*\\.abyaya\\.la$') | list | length > 0 }}"
default_domain: "{{ item.service_name }}.abyaya.la"
has_abyayala_domain: "{{ item.domains | select('match', '.*\\.' ~ (main_zone | regex_escape) ~ '$') | list | length > 0 }}"
default_domain: "{{ item.service_name ~ '.q' ~ main_zone }}"
Owner

que es el .q?

que es el .q?
fauno marked this conversation as resolved
@ -6,3 +6,3 @@
listen {{ vhost.ports[0] }};
server_name {{ vhost.service_name }}.abyaya.la;
server_name {{ vhost.service_name ~ '.' ~ main_zone }};
Owner

es mas facil concatenar que hacer {{ variable }}.{{ otra_variable }}?

es mas facil concatenar que hacer `{{ variable }}.{{ otra_variable }}`?
fauno marked this conversation as resolved
Owner

@fauno sería el último commit no más lo que hay que revisar aquí

cuando configuras el pr podes hacer que en lugar de mergear a la rama principal sea a la rama que usas de base asi no me tenes que indicar que commits revisar

> @fauno sería el último commit no más lo que hay que revisar aquí cuando configuras el pr podes hacer que en lugar de mergear a la rama principal sea a la rama que usas de base asi no me tenes que indicar que commits revisar
Numerica added 1 commit 2025-12-02 20:18:31 +00:00
Numerica requested review from fauno 2025-12-02 20:19:05 +00:00
Author
Owner

@fauno será necesario hacer cambios en el repo de la RAP también para que esto funcione?

-${RAP} publish -u http://comun.abyaya.la ${NODE}
+${RAP} publish -u http://{{ vpn_name }}.{{ main_zone }} ${NODE}
@fauno será necesario hacer cambios en el repo de la RAP también para que esto funcione? ``` -${RAP} publish -u http://comun.abyaya.la ${NODE} +${RAP} publish -u http://{{ vpn_name }}.{{ main_zone }} ${NODE} ```
Author
Owner

Creo que no está autorizado abyayala.red @fauno

ERROR: failed to set default origin, invalid FQDN zone origin
Creo que no está autorizado __abyayala.red__ @fauno ``` ERROR: failed to set default origin, invalid FQDN zone origin ```
Numerica added the
no pasó el test
label 2025-12-02 22:13:51 +00:00
Owner

@fauno será necesario hacer cambios en el repo de la RAP también para que esto funcione?

-${RAP} publish -u http://comun.abyaya.la ${NODE}
+${RAP} publish -u http://{{ vpn_name }}.{{ main_zone }} ${NODE}

mmm no sé, eso asume que vamos a tener varias vpns desconectadas entre sí?

> @fauno será necesario hacer cambios en el repo de la RAP también para que esto funcione? > ``` > -${RAP} publish -u http://comun.abyaya.la ${NODE} > +${RAP} publish -u http://{{ vpn_name }}.{{ main_zone }} ${NODE} > ``` mmm no sé, eso asume que vamos a tener varias vpns desconectadas entre sí?
fauno added 23 commits 2025-12-06 15:08:32 +00:00
pero especificarlos en roles/proxy/files/custom, los sobrescribiria a estos o no?
es deseable que si
cerraria PR #65
Reviewed-on: #72
closes #39 o no??
- Reemplaza 'bookworm' hardcodeado con detección automática usando ansible_distribution_release
- Agrega validación explícita que solo permite Debian 12 (bookworm) o 13 (trixie)
- Mensaje de error claro si se intenta usar en versión no soportada
- Comentarios actualizados indicando versiones soportadas

Esto permite que el rol funcione automáticamente en Debian 12 y 13
sin necesidad de cambios manuales en el código.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Cambios realizados:
- Instalar Docker Compose v2 via docker-compose-plugin (apt) en lugar de pip
- Especificar paquetes Docker explícitamente: docker-ce, docker-ce-cli, containerd.io, docker-compose-plugin
- Reemplazar instalación de python-docker via pip por python3-docker desde apt
- Eliminar break_system_packages que rompe aislamiento PEP 668
- Eliminar instalación obsoleta de docker-compose via pip

Beneficios:
- Cumple con PEP 668 (externally managed environments)
- Docker Compose v2 más rápido y mejor integrado
- Gestión de paquetes más limpia y mantenible
- Compatible con Debian 12 y 13

Refs:
- https://peps.python.org/pep-0668/
- https://docs.docker.com/compose/install/linux/
- https://packages.debian.org/bookworm/python3-docker
- Reemplazar apt_key con get_url + keyrings directory
- Reemplazar apt_repository con deb822_repository (formato moderno)
- Detección automática de Debian 12 (bookworm) y 13 (trixie)
- Llave GPG específica por repositorio (más seguro)
- Requiere Ansible 2.15+

Beneficios:
- Formato DEB822 moderno y no deprecado
- Mayor seguridad con llaves por repositorio
- Compatible con Debian 12 y 13
- Cumple con mejores prácticas actuales

Refs:
- https://docs.ansible.com/ansible/latest/collections/ansible/builtin/deb822_repository_module.html
- https://manpages.debian.org/bookworm/apt/sources.list.5.en.html
- Reemplazar 9 usos de local_action con delegate_to: localhost
- 7 cambios en compose.yml (stat, blockinfile, lineinfile)
- 2 cambios en main.yml (file, template)
- Agregar ansible_connection=local en hosts.production para localhost

Beneficios:
- Cumple con mejores prácticas de Ansible
- Sintaxis moderna y no deprecada
- Evita intentos de conexión SSH a localhost
- Mismo comportamiento funcional que local_action

Refs:
- https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_delegation.html
- Eliminar software-properties-common (no existe en Debian, solo Ubuntu)
- Eliminar apt-transport-https (incluido por defecto en Debian moderno)
- Eliminar gnupg2 (no requerido explícitamente)
- Mantener solo paquetes esenciales: ca-certificates, curl, python3-pip

Cumple con requisitos oficiales de Docker para Debian:
https://docs.docker.com/engine/install/debian/

Compatible con Debian 12 (bookworm) y 13 (trixie)
- Definir host_ip: 157.180.114.62
- Requerido por rol knsupdate y certbot
Reviewed-on: #79
Reviewed-by: fauno <fauno@sutty.coop.ar>
Testeado por Pirra
Owner

@Numerica le mergeé master

@Numerica le mergeé `master`
Owner

Creo que no está autorizado abyayala.red @fauno

ERROR: failed to set default origin, invalid FQDN zone origin

los dns ya tienen esto con lo que ya estaría permitido

image.png image.png
> Creo que no está autorizado __abyayala.red__ @fauno > > ``` > ERROR: failed to set default origin, invalid FQDN zone origin > ``` > los dns ya tienen esto con lo que ya estaría permitido <img width="312" alt="image.png" src="attachments/2795c925-8c48-483f-9744-dcf9350756da"> <img width="251" alt="image.png" src="attachments/454a0057-585d-4592-a262-eda9c436b42e">
fauno added 3 commits 2025-12-08 16:55:13 +00:00
Author
Owner

ya fusionado

ya fusionado
Numerica closed this pull request 2025-12-22 20:31:39 +00:00
Numerica self-assigned this 2026-01-14 16:04:25 +00:00

Pull request closed

Sign in to join this conversation.
No description provided.