# Proceso de actualización de Sherpa Orchestrator

## Actualización de Sherpa Orchestrator

### 1. Descarga de archivos

Descargue todos los archivos de actualización más recientes de Sherpa Orchestrator mediante los enlaces en la sección de preparación

### 2. Transferencia de archivos al servidor

Tras la descarga, transfiera todos los archivos al servidor Linux de destino por cualquier método conveniente:

#### Mediante SCP/SFTP

```bash
# Copie los archivos al servidor
scp *.tar.gz user@target-server:/path/to/installation/directory/
```

<details>

<summary>💡 Notas sobre la transferencia mediante SCP/SFTP</summary>

\**scp .tar.gz user\@target-server:/path/to/installation/directory/* - copia los archivos al servidor remoto

* `scp` - copia segura
* `*.tar.gz` - patrón para seleccionar archivos de actualización
* `user@target-server` - credenciales de conexión
* `/path/to/installation/directory/` - ruta de destino en el servidor

</details>

#### Mediante cliente SFTP

Utilice cualquier cliente SFTP (FileZilla, WinSCP, Cyberduck) para copiar archivos al servidor.

#### Mediante carpeta de red

Si el servidor es accesible por SMB/CIFS, utilice el Explorador de Windows o el comando `copy`.

#### Verificación de la transferencia

```bash
# Conéctese al servidor
ssh user@target-server

# Navegue al directorio con los archivos (generalmente opt/SherpaOrchestrator)
cd /path/to/installation/directory

# Verifique que todos los archivos están presentes
ls -la *.tar.gz

# Compruebe los tamaños de los archivos
ls -lh *.tar.gz
```

<details>

<summary>💡 Notas sobre la verificación de la transferencia</summary>

**ssh user\@target-server** - se conecta al servidor remoto mediante SSH

* `ssh` - secure shell
* `user@target-server` - credenciales de conexión

**cd /path/to/installation/directory** - navega al directorio con los archivos

\**ls -la .tar.gz* - muestra información detallada sobre los archivos descargados

* `-l` - formato largo
* `-a` - muestra archivos ocultos

\**ls -lh .tar.gz* - muestra los tamaños de archivos en formato legible

* `-h` - human readable (KB, MB, GB)

</details>

### 3. Detención de contenedores

```bash
# Detenga todos los servicios en ejecución
docker compose down
```

<details>

<summary>💡 Notas sobre la detención de contenedores</summary>

**docker compose down** - detiene todos los servicios de Docker Compose

* Detiene y elimina contenedores y redes
* Conserva los volumes e imágenes

**Verificación de la detención:** **docker ps -a | grep orchestrator** - verifica el estado de los contenedores

* `docker ps -a` - muestra todos los contenedores (incluidos los detenidos)
* `| grep orchestrator` - filtra por el nombre orchestrator

</details>

### 4. Carga de imágenes Docker

```bash
# Cree una copia de seguridad del archivo .env (si existe)
cp .env .env.backup

# Cree una copia de seguridad de la configuración
cp -r ./backend/config ./backend/config_backup

# Si se utilizan certificados personalizados, cópielos a un lugar seguro
cp -r ./backend/config/certs ./certs_backup

# Descomprima los archivos de actualización
tar -xvzf "$(ls docker_orchestrator_client_files_*.tgz | sort -V | tail -n 1)"

# Copie la configuración predeterminada de nginx (si no existe)
cp -r ./nginx/config/default/. ./nginx/config

# Haga los scripts ejecutables
chmod +x sh_scripts/*.sh

# Copie la configuración del orchestrator (los archivos son reemplazados por nuevos)
cp -af ./backend/config/default/. ./backend/config/

# Copie la configuración de vault (los archivos son reemplazados por nuevos)(si va a usar vault)
cp -af ./vault/config/default/. ./vault/config

# Si se creó una copia de seguridad de los certificados, restáurelos
cp -r ./certs_backup/* ./nginx/config/certs/

# Cargue todas las imágenes Docker
sudo ./sh_scripts/load_all_docker_images.sh
```

<details>

<summary>💡 Notas sobre la carga de imágenes Docker</summary>

**Creación de copias de seguridad:**

* `cp .env .env.backup` - copia de seguridad del archivo de configuración
* `cp -r ./backend/config ./backend/config_backup` - copia de seguridad del directorio config
* `cp -r ./backend/config/certs ./certs_backup` - copia de seguridad de los certificados SSL

**Descompresión y preparación:**

* `tar -xvzf "$(ls orchestrator_docker_update_*.tgz | sort -V | tail -n 1)"` - descomprime los archivos de actualización más recientes
* `chmod +x sh_scripts/*.sh` - hace los scripts ejecutables
* `cp -r ./certs_backup/* ./backend/config/certs/` - restaura los certificados

**sudo ./sh\_scripts/load\_all\_docker\_images.sh** - carga todas las imágenes Docker

**Verificación de la carga:** **docker images | grep orchestrator** - muestra las imágenes del orchestrator cargadas

</details>

### 5. Selección de la configuración de BD y verificación de las variables de entorno

```bash
# Copie el archivo compose cliente combinado
cp docker-compose.client.yml docker-compose.yml
```

<details>

<summary>💡 Notas sobre la selección de la configuración de BD</summary>

**cp docker-compose.client.yml docker-compose.yml** - selecciona la configuración cliente combinada

* El directorio de trabajo debe contener el archivo final `docker-compose.yml`
* Para MariaDB, ejecute el perfil `mariadb`
* Para PostgreSQL, ejecute el perfil `pg`

</details>

```bash
# Abra el archivo .env para revisión
nano ./.env

# Verifique la presencia de las variables obligatorias
grep -E "(HOST_IP|DB_PASSWORD|POSTGRES_PASSWORD|NGINX_DOMAIN_NAME)" .env

# Verifique la corrección de la sintaxis
cat .env | grep -v '^#' | grep '=' | wc -l
```

<details>

<summary>💡 Notas sobre la verificación de variables de entorno</summary>

**nano ./.env** - abre el archivo de configuración en el editor

**grep -E "(HOST\_IP|DB\_PASSWORD|POSTGRES\_PASSWORD|NGINX\_DOMAIN\_NAME)" .env** - verifica la presencia de las variables clave

* `-E` - expresiones regulares extendidas
* Lista las variables obligatorias separadas por |

**cat .env | grep -v '^#' | grep '=' | wc -l** - cuenta el número de variables

* `cat .env` - muestra el contenido del archivo
* `grep -v '^#'` - excluye los comentarios
* `grep '='` - deja solo las líneas con variables
* `wc -l` - cuenta el número de líneas

</details>

#### Verificación de config.ini y phinx.php

Asegúrese de que se especifican las mismas contraseñas que en el archivo .env:

* **backend/config/config.ini** — parámetro `database_password` (y al usar PostgreSQL — la configuración correspondiente);
* **backend/config/phinx.php** — en la sección `environments`, el parámetro `'pass'` en el bloque `'mysql'` o `'pgsql'` (deben coincidir con las contraseñas de `.env` y config.ini).

De lo contrario, las migraciones al iniciar los contenedores pueden fallar con error.

```bash
# Edite la configuración si es necesario
nano backend/config/config.ini
nano backend/config/phinx.php
```

{% hint style="warning" %} <mark style="color:$danger;">SI LA VERSIÓN ACTUAL DEL ORCHESTRATOR DESDE LA QUE ESTÁ ACTUALIZANDO ES MENOR O IGUAL A v141856, DEBE MONTAR EL ARCHIVO cache.bin DENTRO DEL CONTENEDOR orchestrator EN docker-compose.yml</mark>
{% endhint %}

```
    volumes:
      - orchestrator-storage:/opt/SherpaOrchestrator/backend/Storage
      - ./backend/config:/opt/SherpaOrchestrator/backend/config:z
      - ./path/to/cache.bin:/opt/SherpaOrchestrator/backend/app/cache.bin
```

### 6. Inicio de contenedores

```bash
# Inicie los servicios con el perfil de BD seleccionado
# Opción 1: MariaDB
docker compose --profile mariadb up -d

# Opción 2: PostgreSQL
docker compose --profile pg up -d

# Si se necesita Vault (opcional), agregue el perfil vault:
# Opción 1: MariaDB + Vault
docker compose --profile mariadb --profile vault up -d

# Opción 2: PostgreSQL + Vault
docker compose --profile pg --profile vault up -d
```

<details>

<summary>💡 Notas sobre el inicio de contenedores</summary>

**docker compose --profile \<mariadb|pg> up -d** - inicia los servicios en modo en segundo plano con la base de datos seleccionada

* `-d` - modo separado (en segundo plano)

**docker compose --profile \<mariadb|pg> --profile vault up -d** - inicia el sistema con Vault

* El perfil `vault` es opcional y se conecta solo cuando se necesita almacenamiento de secretos y migración a Vault

**Verificación del inicio:**

* `docker compose ps` - muestra el estado de todos los contenedores
* `docker compose logs -f orchestrator` - muestra los logs de inicio en tiempo real

</details>

La inicialización de Vault y la migración de secretos se describen en una guía separada: `6) VAULT.md`.

Tras una actualización exitosa, el sistema Sherpa Orchestrator está listo para usar.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/es/sherpa-rpa/sherpa-orchestrator/ustanovka-sherpa-orchestrator/s-ispolzovaniem-docker/process-obnovleniya-sherpa-orchestrator.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
