Skip to content

Commit b3ccefe

Browse files
committed
Update LEAME.md
1 parent 26fc3d1 commit b3ccefe

1 file changed

Lines changed: 150 additions & 24 deletions

File tree

docs/LEAME.md

Lines changed: 150 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ La ingesta de datasets y variantes se realiza mediante `impact-tools`, instalado
3030
- [Backup antes de actualizar](#backup-antes-de-actualizar)
3131
- [Preparar permisos y SELinux](#preparar-permisos-y-selinux)
3232
- [Construir y arrancar el stack](#construir-y-arrancar-el-stack)
33+
- [Gestión de usuarios administrativos](#gestión-de-usuarios-administrativos)
3334
- [Comprobaciones posteriores](#comprobaciones-posteriores)
3435
- [Actualizar el despliegue](#actualizar-el-despliegue)
3536
- [Rollback](#rollback)
@@ -65,7 +66,7 @@ El usuario que ejecuta Podman debe ser siempre el mismo usuario que gestiona la
6566
Los ejemplos de esta guía utilizan:
6667

6768
```text
68-
/opt/beacon/beacon2-pi-api-isciii
69+
/opt/containers_apps/beacon/beacon2-pi-api
6970
```
7071

7172
Las rutas reales se configuran en `.env`.
@@ -119,7 +120,7 @@ ${APACHE_LOG_DIR}/
119120
En la instalación validada:
120121

121122
```dotenv
122-
APP_ROOT=/opt/beacon/beacon2-pi-api-isciii
123+
APP_ROOT=/opt/containers_apps/beacon/beacon2-pi-api
123124
BIND_ROOT=/srv/containers/bind/beacon
124125
APP_LOG_DIR=/var/log/local/beacon/apps
125126
APACHE_LOG_DIR=/var/log/local/beacon/apache
@@ -164,27 +165,20 @@ En `dcontainers00` se utiliza:
164165
### Instalación nueva
165166

166167
```bash
167-
cd /opt/beacon
168+
cd /opt/containers_apps/beacon
168169

169170
git clone \
170-
https://github.com/BU-ISCIII/beacon2-pi-api.git \
171-
beacon2-pi-api-isciii
171+
https://github.com/BU-ISCIII/beacon2-pi-api.git
172172

173-
cd beacon2-pi-api-isciii
174-
```
175-
176-
Selecciona la rama de despliegue:
177-
178-
```bash
179-
git switch isciii-installation-v2.1.0
173+
cd beacon2-pi-api
180174
```
181175

182176
### Instalación existente
183177

184178
Entra en el repositorio con el mismo usuario que ejecuta Podman:
185179

186180
```bash
187-
cd /opt/beacon/beacon2-pi-api-isciii
181+
cd /opt/containers_apps/beacon/beacon2-pi-api
188182

189183
git status
190184
git fetch --all --prune
@@ -195,7 +189,7 @@ No actualices el código mientras existan cambios locales sin revisar.
195189
Para actualizar una rama ya configurada:
196190

197191
```bash
198-
git switch isciii-installation-v2.1.0
192+
git checkout main
199193
git pull --ff-only
200194
```
201195

@@ -262,7 +256,7 @@ ${BIND_ROOT}/etc/certs/beacon_server.crt
262256
${BIND_ROOT}/etc/certs/beacon_server.key
263257
```
264258

265-
**Pendiente:** certificados institucionales y terminación TLS en Apache de cara al exterior.
259+
**Pendiente:** certificados institucionales y terminación TLS en Apache para acceso exterior.
266260

267261
## Backup antes de actualizar
268262

@@ -450,6 +444,96 @@ apache-beacon
450444

451445
Los nombres concretos se obtienen de `.env`.
452446

447+
## Gestión de usuarios administrativos
448+
449+
Los usuarios administrativos se gestionan de forma independiente en Admin UI, Keycloak y MongoDB.
450+
451+
Antes de utilizar los comandos de esta sección, carga las variables del despliegue:
452+
453+
```bash
454+
set -a
455+
source .env
456+
set +a
457+
```
458+
459+
### Admin UI
460+
461+
Para crear un superusuario de Django:
462+
463+
```bash
464+
podman exec -it "${ADMIN_UI_CONTAINER}" \
465+
python manage.py createsuperuser --skip-checks
466+
```
467+
468+
El comando solicita de forma interactiva el nombre de usuario, el correo electrónico y la contraseña.
469+
470+
Los usuarios existentes pueden consultarse desde el panel de administración:
471+
472+
```text
473+
${PUBLIC_SCHEME}://${PUBLIC_HOST}:${PUBLIC_PORT}/admin-ui/admin/
474+
```
475+
476+
### Keycloak
477+
478+
El administrador inicial de Keycloak se define en `.env` antes del primer arranque:
479+
480+
```dotenv
481+
KEYCLOAK_ADMIN=admin
482+
KEYCLOAK_ADMIN_PASSWORD=<contraseña-segura>
483+
```
484+
485+
Estas variables crean el administrador únicamente durante la inicialización. Si PostgreSQL ya contiene una instalación de Keycloak, modificar sus valores en `.env` no cambia automáticamente la contraseña del usuario existente.
486+
487+
Los usuarios adicionales, sus contraseñas y sus roles deben gestionarse desde la consola de administración:
488+
489+
```text
490+
${PUBLIC_SCHEME}://${PUBLIC_HOST}:${PUBLIC_PORT}${KEYCLOAK_RELATIVE_PATH}/admin/
491+
```
492+
493+
Para conceder permisos administrativos, asigna al usuario los roles correspondientes desde la sección **Role mapping** de Keycloak.
494+
495+
### MongoDB
496+
497+
El usuario administrador inicial de MongoDB se configura en `.env`:
498+
499+
```dotenv
500+
MONGO_ROOT_USERNAME=root
501+
MONGO_ROOT_PASSWORD=<contraseña-segura>
502+
```
503+
504+
Estas variables solo crean el usuario cuando se inicializa una base de datos vacía. Modificarlas después no actualiza las credenciales almacenadas en una instalación existente.
505+
506+
Para acceder a la consola administrativa:
507+
508+
```bash
509+
podman exec -it "${MONGO_CONTAINER}" \
510+
mongosh \
511+
-u "${MONGO_ROOT_USERNAME}" \
512+
-p \ # -p "${MONGO_ROOT_PASSWORD}" \
513+
--authenticationDatabase "${MONGO_AUTH_SOURCE}"
514+
```
515+
516+
El parámetro `-p` solicita la contraseña de forma interactiva y evita incluirla directamente en el historial de la terminal.
517+
518+
### Mongo Express
519+
520+
Mongo Express no mantiene usuarios propios. Su acceso web utiliza autenticación básica configurada mediante variables de entorno.
521+
522+
```dotenv
523+
MONGO_EXPRESS_USERNAME=<usuario>
524+
MONGO_EXPRESS_PASSWORD=<contraseña-segura>
525+
```
526+
527+
Para comprobar el acceso:
528+
529+
```bash
530+
curl -s -u "${MONGO_EXPRESS_USERNAME}:${MONGO_EXPRESS_PASSWORD}" \
531+
-o /dev/null -w "HTTP %{http_code}\n" \
532+
"${PUBLIC_SCHEME}://${PUBLIC_HOST}:${PUBLIC_PORT}/mongo-express/"
533+
```
534+
535+
No deben utilizarse las credenciales predeterminadas `admin:pass`.
536+
453537
## Comprobaciones posteriores
454538

455539
### Estado de los contenedores
@@ -460,6 +544,17 @@ podman compose ps
460544

461545
Ningún contenedor debe permanecer en estado `Restarting` o `Exited`.
462546

547+
### Comprobar que todos los endpoints funcionan
548+
549+
Desde la raíz del repositorio, ejecuta:
550+
551+
```bash
552+
chmod +x deploy/check_endpoints.sh
553+
./deploy/check_endpoints.sh
554+
```
555+
556+
El script comprueba el acceso a Template UI, Beacon API, Keycloak, Admin UI y Mongo Express. Todos los endpoints deben devolver OK.
557+
463558
### Template UI
464559

465560
```bash
@@ -577,10 +672,10 @@ Guarda primero un backup siguiendo la sección anterior.
577672
Actualiza el código:
578673

579674
```bash
580-
cd /opt/beacon/beacon2-pi-api-isciii
675+
cd /opt/containers_apps/beacon/beacon2-pi-api
581676

582677
git fetch --all --prune
583-
git switch isciii-installation-v2.1.0
678+
git checkout main
584679
git pull --ff-only
585680
```
586681

@@ -624,7 +719,7 @@ Recupera el commit anterior:
624719

625720
```bash
626721
PREVIOUS_COMMIT="$(cat "${BACKUP_DIR}/git_commit.txt")"
627-
git switch --detach "${PREVIOUS_COMMIT}"
722+
git checkout --detach "${PREVIOUS_COMMIT}"
628723
```
629724

630725
Restaura `.env`:
@@ -661,10 +756,11 @@ podman compose up -d
661756

662757
Comprueba contenedores y endpoints.
663758

664-
Una vez validado el rollback, vuelve a una rama de despliegue normal antes de realizar nuevos cambios:
759+
Mantén la instalación en este commit mientras se investiga el problema. Una vez resuelta la causa del fallo y cuando quieras volver a la versión actual:
665760

666761
```bash
667-
git switch isciii-installation-v2.1.0
762+
git checkout main
763+
git pull --ff-only
668764
```
669765

670766
## Reparar permisos
@@ -675,7 +771,7 @@ Ejecuta `fix_permissions.sh` cuando:
675771
- se hayan restaurado datos desde un backup;
676772
- hayan cambiado propietarios en el host;
677773
- hayan cambiado los UIDs o GIDs definidos en `.env`;
678-
- Admin UI no pueda guardar configuraciones;
774+
- Admin UI no pueda guardar configuraciones (error en botón "save");
679775
- un contenedor falle con `Permission denied`;
680776
- se hayan perdido o modificado las etiquetas SELinux;
681777
- se haya movido la instalación a otra ruta.
@@ -786,6 +882,32 @@ podman system df
786882
podman info --format '{{.Store.GraphRoot}}'
787883
```
788884

885+
### Restablecer permisos de un servicio concreto
886+
887+
Detén el servicio, repara sus permisos y vuelve a arrancarlo:
888+
889+
```bash
890+
podman compose stop <servicio>
891+
./deploy/fix_permissions.sh <servicio>
892+
podman compose up -d <servicio>
893+
```
894+
895+
Servicios admitidos:
896+
897+
- `db`(mongodb)
898+
- `idp-db` (postgresql)
899+
- `admin-ui`
900+
- `beaconprod`
901+
- `apache-beacon`
902+
- `template-ui`
903+
904+
Para reparar todo el despliegue:
905+
```bash
906+
podman compose down
907+
./deploy/fix_permissions.sh
908+
podman compose up -d
909+
```
910+
789911
## Troubleshooting
790912

791913
### `Permission denied` en un bind mount
@@ -798,6 +920,10 @@ podman compose down
798920
podman compose up -d
799921
```
800922

923+
### Gestionar usuarios administrativos
924+
925+
Consulta la sección [Gestión de usuarios administrativos](#gestión-de-usuarios-administrativos).
926+
801927
### Admin UI no puede guardar cambios
802928

803929
Un error como:
@@ -811,9 +937,9 @@ sobre un fichero en `/home/app/web/beacon/` indica que falta la ACL del UID inte
811937
Repara los permisos:
812938

813939
```bash
814-
podman compose down
815-
./deploy/fix_permissions.sh
816-
podman compose up -d
940+
podman compose stop admin-ui
941+
./deploy/fix_permissions.sh admin-ui
942+
podman compose up -d admin-ui
817943
```
818944

819945
### MongoDB no arranca por ownership

0 commit comments

Comments
 (0)