From 46b8e59b6569487d750d6bb65563551a13ca5c56 Mon Sep 17 00:00:00 2001 From: aagusfernandez02 Date: Wed, 1 Jul 2026 08:21:33 -0300 Subject: [PATCH] docs: update readme --- README.md | 132 ++++-------------------------------------------------- 1 file changed, 8 insertions(+), 124 deletions(-) diff --git a/README.md b/README.md index 555a364..14b0f16 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Jenkins centralizado para el despliegue de software en terminales SCO (Self-Chec ## Arquitectura -- **Jenkins master**: corre en Docker en el servidor Minio (`186.67.82.140`). +- **Jenkins master**: corre en Docker en un servidor (`172.19.13.204`). - **Agentes (SCOs)**: cada terminal SCO conecta al master vía JNLP (puerto 50000). El proceso del agente corre como `root`. - **Storage**: Minio almacena el software de cada cliente en buckets separados (ej: bucket `ralph`). @@ -39,7 +39,7 @@ Formato: `sco ` docker compose up -d --build ``` -Jenkins queda disponible en `http://:8080` (admin / H0l4mund0!). +Jenkins queda disponible en `http://:8080` (admin / admin123). ## Conectar un agente SCO @@ -100,126 +100,10 @@ Recibe el nombre del cliente como argumento (`$1`): 9. Inicializa carpetas y archivos de base de datos del cpi-server. 10. Genera `engine.properties` para SymmetricDS (solo en primera instalación). -## Operaciones de mantenimiento +## Agregar un nuevo cliente -### Agregar un nuevo cliente - -El deploy es idéntico para todos los clientes: el `install.sh` recibe el nombre del cliente como `$1`. -Solo cambia el nombre del job, el Jenkinsfile, y los nodos registrados. - -**1. Registrar los nodos en `data/jenkins/jenkins.yaml`** - -Bajo la clave `nodes`, añadir un bloque por cada SCO del cliente: - -```yaml -- permanent: - name: "nuevocliente-tienda1-sco01" - labelString: "sco nuevocliente tienda1" - remoteFS: "/opt/jenkins-agent" - numExecutors: 1 - retentionStrategy: "always" - launcher: - inbound: {} -``` - -Repetir para cada combinación tienda/SCO. Convención de nombres: -- Nombre del nodo: `--` (ej: `ralph-yabucoa-sco02`) -- Label: `sco ` (ej: `sco ralph yabucoa`) - -**2. Crear el Jenkinsfile en `data/jenkins/pipelines/Jenkinsfile.`** - -Copiar `Jenkinsfile.ralph` y ajustar dos cosas: - -```groovy -// En parameters: listar las tiendas del nuevo cliente -choices: ['tienda1', 'tienda2', 'tienda3'], - -// En el stage Deploy: cambiar el nombre del cliente (dos lugares) -def labelExpr = "nuevocliente && ${params.TIENDA}" -sh "bash install.sh 'nuevocliente'" -``` - -**3. Agregar el job en `data/jenkins/jenkins.yaml`** - -Al final de la sección `jobs`: - -```yaml -- script: | - pipelineJob('deploy-nuevocliente') { - description('Deploy de install.sh a los SCOs de NuevoCliente.') - definition { - cps { - script(new File('/opt/jenkins/Jenkinsfile.nuevocliente').text) - sandbox(true) - } - } - } -``` - -**4. Montar el Jenkinsfile en `docker-compose.yml`** - -```yaml -volumes: - - ./data/jenkins/pipelines/Jenkinsfile.nuevocliente:/opt/jenkins/Jenkinsfile.nuevocliente:ro -``` - -**5. Recrear el contenedor** - -```sh -docker compose up -d --build -``` - -En el servidor remoto: - -```sh -# Copiar los archivos modificados al servidor primero, luego: -docker compose up -d --build -``` - ---- - -### Agregar una tienda a un cliente existente - -**1. Añadir los nodos de la nueva tienda en `jenkins.yaml`** (un bloque por SCO, igual que arriba). - -**2. Agregar la tienda al dropdown del Jenkinsfile del cliente:** - -```groovy -choices: ['yabucoa', 'san-lorenzo', 'rio-grande', 'nueva-tienda'], -``` - -**3. Aplicar en el servidor:** - -```sh -docker compose restart jenkins -``` - -No hace falta rebuild completo si solo cambia `jenkins.yaml` o el Jenkinsfile — el contenedor los monta como volúmenes y JCasC los recarga. - -> Si agregaste nodos nuevos pero no reiniciaste Jenkins, también podés recargar desde la UI: *Manage Jenkins → Configuration as Code → Reload existing configuration*. - ---- - -### Agregar un SCO a una tienda existente - -Solo tocar `jenkins.yaml`: añadir el nodo nuevo bajo `nodes`. - -```yaml -- permanent: - name: "ralph-yabucoa-sco08" - labelString: "sco ralph yabucoa" - remoteFS: "/opt/jenkins-agent" - numExecutors: 1 - retentionStrategy: "always" - launcher: - inbound: {} -``` - -Luego recargar la configuración: - -```sh -docker compose restart jenkins -# o desde la UI: Manage Jenkins → Configuration as Code → Reload existing configuration -``` - -Una vez que Jenkins lo reconoce, conectar el agente en el SCO físico (ver sección "Conectar un agente SCO"). +1. Agregar los nodos del cliente en `data/jenkins/jenkins.yaml` con el label `sco `. +2. Crear `data/jenkins/pipelines/Jenkinsfile.` con el dropdown de tiendas. +3. Agregar el job en la sección `jobs` de `jenkins.yaml`. +4. Montar el nuevo Jenkinsfile en `docker-compose.yml`. +5. Recrear el contenedor: `docker compose up -d --build`.