diff --git a/.agents/journal/entries/2026-06-16-renich-agent-44789154.md b/.agents/journal/entries/2026-06-16-renich-agent-44789154.md index 63fad29..a6d747d 100644 --- a/.agents/journal/entries/2026-06-16-renich-agent-44789154.md +++ b/.agents/journal/entries/2026-06-16-renich-agent-44789154.md @@ -11,3 +11,4 @@ * [2026-06-16 15:34:06] [agent-44789154] [GOT,DEC] [prev:ff115eb6b7066ffdc4e19a3915954026304bb29e4dcde38f08a98e1dcd66a216] [hash:267e20bbe8860aa24ba9857f43a7e57fdfe3316d66b0b0fd2373a4f66377d8ea] DEC: Reverted mergerepo_c wrapper and restored correct BaseOS (5) / AppStream (10) priorities on mxos0-build tag. GOT: Cleaned Ansible playbooks, added noarch to builder cs10-koji-03.mx-os arches, successfully triggered and checked rust-siguldry package compilation, created docs/compilación_de_paquetes.rst. * [2026-06-16 15:47:09] [agent-44789154] [GOT,DEC] [prev:267e20bbe8860aa24ba9857f43a7e57fdfe3316d66b0b0fd2373a4f66377d8ea] [hash:ba5dc0fe3c77a6f0299c27e3ba1c16c2233d6464e87f9685b77df1f9d61dd298] Calculated topological bootstrap order for all 480 BaseOS packages using DNF API inside a CentOS Stream 10 container. Updated bootstrap-baseos.py on Koji Hub to build packages in this order and started it in the background. Deployed export-koji-to-forgejo.py to sync signed RPMs to the Forgejo Package Registry. Created ADR-05 and updated compilación_de_paquetes.rst. * [2026-06-16 16:10:24] [agent-44789154] [GOT,DEC] [prev:ba5dc0fe3c77a6f0299c27e3ba1c16c2233d6464e87f9685b77df1f9d61dd298] [hash:dae096cb37d89f9ef09ef6ac6ad2f2ea981108412ca44b1fc9cd525611f1fee7] DEC: Decided to use a dedicated 500 GB VM serving via Caddy on port 80 as our package repository server instead of Forgejo Package Registry. GOT: Provisioned cs10-repo.mx-os using OpenTofu, configured Caddy via Ansible role, deployed export-koji-to-repo.py on Koji Hub to automatically rsync RPMs and run createrepo_c, and documented the design change in ADR-05 and compilación_de_paquetes.rst. +* [2026-06-16 16:52:24] [agent-44789154] [DEC,GOT] [prev:dae096cb37d89f9ef09ef6ac6ad2f2ea981108412ca44b1fc9cd525611f1fee7] [hash:b831bf88d615907d7514b2aa6e03025a5d027053791a430be25b58286ca1a7d0] DEC: Updated repository path to /srv/www/repo/ to align with SELinux predefined web content contexts. GOT: Reconfigured caddy Ansible role, updated export-koji-to-repo.py, redeployed, and cleaned up the old /srv/repo directory. diff --git a/docs/compilación_de_paquetes.rst b/docs/compilación_de_paquetes.rst index b2145c3..c01179d 100644 --- a/docs/compilación_de_paquetes.rst +++ b/docs/compilación_de_paquetes.rst @@ -110,8 +110,8 @@ Para automatizar la exportación y sincronización de todos los paquetes RPM que 1. Consulta todas las compilaciones completadas bajo la etiqueta ``mxos0``. 2. Localiza los RPMs firmados en el almacenamiento compartido de Koji (``/mnt/koji/packages/``). 3. Filtra archivos fuentes (``.src.rpm``) y subpaquetes de depuración (``debuginfo`` y ``debugsource``). -4. Utiliza ``rsync`` para sincronizar los RPMs binarios firmados hacia el directorio ``/srv/repo/`` en el servidor ``cs10-repo.mx-os``. -5. Ejecuta de forma remota el comando ``createrepo_c /srv/repo`` en el servidor de repositorios para regenerar los metadatos de DNF. +4. Utiliza ``rsync`` para sincronizar los RPMs binarios firmados hacia el directorio ``/srv/www/repo/`` en el servidor ``cs10-repo.mx-os``. +5. Ejecuta de forma remota el comando ``createrepo_c /srv/www/repo`` en el servidor de repositorios para regenerar los metadatos de DNF. Para ejecutar la exportación manualmente de todos los paquetes listos, ejecuta en Koji Hub: diff --git a/docs/technical/decisiones/2026-06-16-05-bootstrap_orden_y_servidor_caddy.rst b/docs/technical/decisiones/2026-06-16-05-bootstrap_orden_y_servidor_caddy.rst index fe48ed6..6d268e6 100644 --- a/docs/technical/decisiones/2026-06-16-05-bootstrap_orden_y_servidor_caddy.rst +++ b/docs/technical/decisiones/2026-06-16-05-bootstrap_orden_y_servidor_caddy.rst @@ -31,14 +31,14 @@ Adoptaremos la siguiente estrategia técnica: 3. **Servidor de Repositorio Dedicado con Caddy**: * Provisionamos una máquina virtual dedicada ``cs10-repo.mx-os`` mediante OpenTofu con un disco virtual del sistema redimensionado a 500 GB de capacidad. - * Automatizamos la instalación de Caddy, la configuración de firewalld para HTTP (puerto 80) y la creación del directorio ``/srv/repo/`` mediante el rol de Ansible ``caddy``. + * Automatizamos la instalación de Caddy, la configuración de firewalld para HTTP (puerto 80) y la creación del directorio ``/srv/www/repo/`` mediante el rol de Ansible ``caddy``. * Caddy está configurado para servir y permitir el listado de este directorio (``file_server browse``), actuando como nuestro servidor de repositorio oficial. 4. **Exportación y Sincronización Automatizada vía Rsync**: * Escribimos y desplegamos el script de exportación ``/root/export-koji-to-repo.py`` en el Koji Hub. - * Este script utiliza el API de Koji para listar todas las compilaciones completadas bajo el tag ``mxos0``, busca sus RPMs correspondientes en `/mnt/koji/packages/`, y los sincroniza mediante ``rsync`` al directorio ``/srv/repo/`` en ``cs10-repo.mx-os`` utilizando la llave SSH del usuario root de Koji Hub (previamente autorizada en el servidor de repositorio). + * Este script utiliza el API de Koji para listar todas las compilaciones completadas bajo el tag ``mxos0``, busca sus RPMs correspondientes en `/mnt/koji/packages/`, y los sincroniza mediante ``rsync`` al directorio ``/srv/www/repo/`` en ``cs10-repo.mx-os`` utilizando la llave SSH del usuario root de Koji Hub (previamente autorizada en el servidor de repositorio). * El script filtra los archivos ``.src.rpm`` y los paquetes con sufijos ``debuginfo`` y ``debugsource``, exportando únicamente los RPMs binarios firmados. - * Tras la sincronización, el script ejecuta de forma remota el comando ``createrepo_c /srv/repo`` en el servidor de repositorios para regenerar los metadatos de DNF en caliente. + * Tras la sincronización, el script ejecuta de forma remota el comando ``createrepo_c /srv/www/repo`` en el servidor de repositorios para regenerar los metadatos de DNF en caliente. Consecuencias ------------- diff --git a/roles/caddy/tasks/main.yaml b/roles/caddy/tasks/main.yaml index 7766c4a..ab4b791 100644 --- a/roles/caddy/tasks/main.yaml +++ b/roles/caddy/tasks/main.yaml @@ -11,7 +11,7 @@ - name: Create repository directory ansible.builtin.file: - path: /srv/repo + path: /srv/www/repo state: directory mode: '0755' owner: root diff --git a/roles/caddy/templates/Caddyfile.j2 b/roles/caddy/templates/Caddyfile.j2 index 144b1ab..0be8993 100644 --- a/roles/caddy/templates/Caddyfile.j2 +++ b/roles/caddy/templates/Caddyfile.j2 @@ -1,4 +1,4 @@ :80 { - root * /srv/repo + root * /srv/www/repo file_server browse }