refactor: change repository path to /srv/www/repo for SELinux compliance
- Update Caddy tasks and templates to serve from /srv/www/repo. - Update Koji Hub export script to target /srv/www/repo/. - Redeploy Caddy config via Ansible. - Update ADR-05 and package compilation documentation. - Log progress in the project journal. Co-developed-by: Gemini AI <renich+gemini@woralelandia.com> Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
This commit is contained in:
parent
c290878c96
commit
b7c28ade88
5 changed files with 8 additions and 7 deletions
|
|
@ -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: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 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: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.
|
||||||
|
|
|
||||||
|
|
@ -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``.
|
1. Consulta todas las compilaciones completadas bajo la etiqueta ``mxos0``.
|
||||||
2. Localiza los RPMs firmados en el almacenamiento compartido de Koji (``/mnt/koji/packages/``).
|
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``).
|
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``.
|
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/repo`` en el servidor de repositorios para regenerar los metadatos de DNF.
|
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:
|
Para ejecutar la exportación manualmente de todos los paquetes listos, ejecuta en Koji Hub:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,14 +31,14 @@ Adoptaremos la siguiente estrategia técnica:
|
||||||
|
|
||||||
3. **Servidor de Repositorio Dedicado con Caddy**:
|
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.
|
* 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.
|
* 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**:
|
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.
|
* 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.
|
* 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
|
Consecuencias
|
||||||
-------------
|
-------------
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
- name: Create repository directory
|
- name: Create repository directory
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: /srv/repo
|
path: /srv/www/repo
|
||||||
state: directory
|
state: directory
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
owner: root
|
owner: root
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
:80 {
|
:80 {
|
||||||
root * /srv/repo
|
root * /srv/www/repo
|
||||||
file_server browse
|
file_server browse
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue