Proceso de instalación de Sherpa Orchestrator (versión local)#
Preparación del servidor#
Agregar usuario al grupo sudo#
# Inicie sesión como usuario root
su
# Agregue el usuario al grupo sudo
/sbin/usermod -aG sudo <userName>
# Reinicie el sistema para aplicar los cambios
exit
💡 Comentarios sobre la adición de usuario a sudo
/sbin/usermod -aG sudo - agrega al usuario al grupo sudo
-a- append (agrega a los grupos existentes)-G sudo- agrega al grupo sudo<userName>- reemplace con el nombre de su usuario
Importante: Después de ejecutar el comando, es necesario reiniciar el sistema para aplicar los cambios.
Configuración de la zona horaria#
# Establezca la zona horaria UTC
sudo timedatectl set-timezone UTC
# Verifique la configuración
timedatectl
💡 Comentarios sobre la configuración de la zona horaria
sudo timedatectl set-timezone UTC - establece la zona horaria UTC timedatectl - muestra la configuración actual de fecha y hora
Se recomienda utilizar UTC para aplicaciones de servidor.
Actualización del sistema#
# Actualice la lista de paquetes
sudo apt -y update
# Instale herramientas para trabajar con repositorios
sudo apt -y install software-properties-common gnupg2
# Actualice el sistema
sudo apt -y upgrade
💡 Comentarios sobre la actualización del sistema
sudo apt -y update - actualiza la lista de paquetes disponibles desde los repositorios sudo apt -y install software-properties-common gnupg2 - instala herramientas para trabajar con repositorios
software-properties-common- utilidades para gestionar repositoriosgnupg2- herramienta para trabajar con claves GPG
sudo apt -y upgrade - actualiza todos los paquetes instalados a las últimas versiones
-y- confirmación automática de la instalación
Descompresión del archivo de actualización#
En esta etapa, descomprimirá el archivo con los archivos de Sherpa Orchestrator y preparará el sistema para la instalación.
# Vaya al directorio con los archivos
cd /opt
# Encuentre y descomprima el archivo de actualización (se selecciona automáticamente la versión más reciente)
tar -xvzf "$(ls orchestrator_local_update_*.tgz | sort -V | tail -n 1)"
# Vaya al directorio con los archivos descomprimidos
cd SherpaOrchestrator
💡 Comentarios sobre la descompresión del archivo
cd /opt - cambia al directorio con los archivos de instalación tar -xvzf "$(ls orchestrator_local_update_*.tgz | sort -V | tail -n 1)" - descomprime el archivo de actualización
tar -xvzf- descomprime el archivo con salida detalladals orchestrator_local_update_*.tgz- encuentra todos los archivos de archivos de actualizaciónsort -V- ordena las versiones de manera natural (1.0 < 1.1 < 1.10)tail -n 1- selecciona el archivo más reciente
cd SherpaOrchestrator - cambia al directorio con los archivos descomprimidos
Resultado esperado: Se descomprimirán los archivos y directorios necesarios para la instalación de Sherpa Orchestrator.
Preparación de los scripts para su ejecución#
# Vaya al directorio sh_scripts
cd sh_scripts/
# Haga que todos los scripts sean ejecutables
chmod +x *.sh
# Regrese al directorio raíz del proyecto
cd ..
💡 Comentarios sobre la preparación de los scripts
cd sh_scripts/ - cambia al directorio con los scripts de instalación
*chmod +x .sh - establece permisos de ejecución para todos los scripts shell
chmod +x- agrega el derecho de ejecución*.sh- todos los archivos con la extensión .sh
cd .. - regresa al directorio raíz del proyecto
Inicialización de la configuración#
# Ejecute la inicialización de la configuración
sudo ./sh_scripts/create_config.sh
💡 Comentarios sobre la inicialización de la configuración
sudo ./sh_scripts/create_config.sh - ejecuta el script de inicialización de la configuración básica
- Crea los directorios necesarios
- Configura los parámetros básicos del sistema
- Prepara la estructura para la configuración posterior
Instalación de la base de datos MariaDB#
# Agregue el repositorio de MariaDB
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository "deb [arch=amd64] http://mariadb.mirror.liquidtelecom.com/repo/10.5/debian $(lsb_release -cs) main"
# Actualice la lista de paquetes
sudo apt update
# Instale MariaDB
sudo apt install mariadb-server mariadb-client
💡 Comentarios sobre la instalación de MariaDB
Adición del repositorio:
sudo apt-key adv --recv-keys- agrega la clave GPG del repositoriosudo add-apt-repository- agrega el repositorio de MariaDB$(lsb_release -cs)- determina automáticamente el nombre en clave de la distribución
Instalación de paquetes:
mariadb-server- servidor de base de datosmariadb-client- cliente para conectarse a la base de datos
Configuración básica de seguridad de MySQL/MariaDB#
# Ejecute el script de configuración de seguridad
sudo mysql_secure_installation
Preguntas y opciones de respuesta para la configuración de seguridad:
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
💡 Comentarios sobre la configuración de seguridad
mysql_secure_installation - script interactivo para la configuración básica de seguridad de MySQL/MariaDB
Respuestas recomendadas:
- Switch to unix_socket authentication - sí (y) - usar autenticación a través de unix socket
- Change the root password - sí (y) - establecer una contraseña para el usuario root
- Remove anonymous users - sí (y) - eliminar usuarios anónimos
- Disallow root login remotely - no (n) - permitir que root se conecte de forma remota
- Remove test database - sí (y) - eliminar la base de datos de prueba
- Reload privilege tables - sí (y) - recargar las tablas de privilegios
Configuración de la base de datos y el usuario#
# Conéctese a MySQL como root
mysql -u root -p
# Ejecute los siguientes comandos en el shell de MySQL:
-- Adición de usuario de la base de datos (reemplace la contraseña por una segura)
GRANT ALL ON orchestrator.* TO 'orchestrator'@'localhost' IDENTIFIED BY 'mD2vjt(HqZKW' WITH GRANT OPTION;
-- Recarga de privilegios
FLUSH PRIVILEGES;
-- Selección de la base de datos
USE orchestrator;
-- Actualización del registro de la cuenta
UPDATE `accounts` SET `parent_account_id` = '1' WHERE `accounts`.`id` = 1;
-- Salida de MySQL
exit;
💡 Comentarios sobre la configuración de la base de datos
GRANT ALL ON orchestrator. TO 'orchestrator'@'localhost'...* - crea el usuario orchestrator con todos los derechos sobre la base orchestrator
'orchestrator'@'localhost'- el usuario puede conectarse solo desde localhostWITH GRANT OPTION- el usuario puede otorgar derechos a otros usuarios
FLUSH PRIVILEGES - recarga las tablas de privilegios
UPDATE accounts... - establece parent_account_id para la cuenta del sistema
Importante: ¡Reemplace la contraseña 'mD2vjt(HqZKW' por una contraseña única y segura!
Instalación del servidor web y PHP#
# Instale los paquetes necesarios
sudo apt -y install lsb-release apt-transport-https ca-certificates curl
# Agregue el repositorio de PHP
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
# Actualice la lista de paquetes
sudo apt-get update
# Instale Nginx y PHP 8.5
sudo apt-get install -y nginx php8.5 php8.5-cli php8.5-fpm php8.5-opcache php8.5-curl php8.5-mbstring php8.5-zip php8.5-xml php8.5-mysql php8.5-pdo-mysql php8.5-pgsql
💡 Comentarios sobre la instalación del servidor web
Adición del repositorio de PHP:
- Se agrega la clave GPG del repositorio PHP de sury.org
- Se agrega el repositorio para PHP 8.5
Instalación de paquetes:
nginx- servidor webphp8.5- intérprete de PHPphp8.5-fpm- FastCGI Process Manager para PHPphp8.5-*- extensiones de PHP para diversas funciones
Configuración de PHP#
# Abra el archivo de configuración de PHP-FPM
sudo nano /etc/php/8.5/fpm/php.ini
# Busque y cambie los siguientes parámetros:
upload_max_filesize = 100M
post_max_size = 100M
# Guarde el archivo y reinicie PHP-FPM
sudo service php8.5-fpm restart
💡 Comentarios sobre la configuración de PHP
upload_max_filesize = 100M - tamaño máximo del archivo a cargar post_max_size = 100M - tamaño máximo de los datos POST
sudo service php8.5-fpm restart - reinicia PHP-FPM para aplicar los cambios
Configuración de Nginx#
# Abra el archivo de configuración de Nginx
sudo nano /etc/nginx/nginx.conf
# Busque la sección http y agregue:
client_max_body_size 100m;
# Guarde el archivo
💡 Comentarios sobre la configuración de Nginx
client_max_body_size 100m - establece el tamaño máximo del cuerpo de la solicitud del cliente
- Debe estar en la sección
http { ... } - El valor corresponde a la configuración de PHP
Configuración de dominio y configuración de Sherpa#
# Abra el archivo de configuración del dominio
sudo nano /opt/SherpaOrchestrator/backend/config/domain.conf
# Reemplace "orchestrator.sherparpa.ru" por su dominio o dirección IP (un total de 4 reemplazos)
# Defina la ruta al socket de PHP-FPM según el SO:
# Para Ubuntu 18.04:
# fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;
# Para Debian:
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
# Para CentOS 8:
# fastcgi_pass unix:/run/php-fpm/www.sock;
# Para CentOS 7:
# fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
💡 Comentarios sobre la configuración del dominio
Reemplazo de dominio: Es necesario reemplazar todas las ocurrencias de "orchestrator.sherparpa.ru" por su dominio real o dirección IP
Configuración del socket de PHP-FPM: La ruta depende de la distribución de Linux:
- Debian/Ubuntu generalmente:
/run/php/php8.5-fpm.sock - CentOS:
/run/php-fpm/www.sock
Importante: Si la ruta es incorrecta, revise los registros de Nginx: /var/log/nginx/error.log
Configuración de certificados SSL#
# Copie los certificados SSL en el directorio de configuración
# Reemplace las rutas por las rutas reales a sus certificados
sudo cp /path/to/your/certificate.crt /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo cp /path/to/your/private.key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
💡 Comentarios sobre los certificados SSL
Requisitos para los certificados:
- El certificado debe ser renombrado a
orchestrator.crt - La clave privada debe ser renombrada a
orchestrator.key - Formatos: .crt/.pem para el certificado, .key para la clave
Obtención de certificados:
- Consulte al administrador del sistema para obtener certificados corporativos
- Use Let's Encrypt para certificados gratuitos
- Para pruebas, se pueden crear certificados autofirmados
Configuración de la configuración de la aplicación#
# Abra el archivo de configuración de la aplicación
sudo nano /opt/SherpaOrchestrator/backend/config/config.ini
# Configure los parámetros de conexión a la base de datos:
database_host=127.0.0.1
database_port=3306
database_user=orchestrator
database_password="mD2vjt(HqZKW"
database_dbname=orchestrator
💡 Comentarios sobre la configuración de la aplicación
Parámetros de la base de datos:
database_host- dirección del servidor de la base de datos (generalmente 127.0.0.1 para instalación local)database_port- puerto MySQL/MariaDB (por defecto 3306)database_user- usuario de la base de datos (orchestrator)database_password- contraseña del usuario (debe coincidir con la creada anteriormente)database_dbname- nombre de la base de datos (orchestrator)
Importante: La contraseña debe coincidir exactamente con la contraseña establecida al crear el usuario de la base de datos
Configuración de phinx.php (migraciones de BD)#
El archivo backend/config/phinx.php es utilizado por Phinx para ejecutar migraciones. La contraseña en él debe coincidir con la contraseña de la base de datos del config.ini:
sudo nano /opt/SherpaOrchestrator/backend/config/phinx.php
En la sección environments en el bloque de la base de datos utilizada (por ejemplo, orchestrator o mysql), el parámetro 'pass' debe coincidir con database_password del config.ini. De lo contrario, las migraciones durante la instalación o actualización fallarán.
Activación de la configuración de Nginx#
# Copie la configuración en sites-available
sudo cp /opt/SherpaOrchestrator/backend/config/domain.conf /etc/nginx/sites-available/default
# Reinicie Nginx
sudo systemctl restart nginx
💡 Comentarios sobre la activación de Nginx
sudo cp ... /etc/nginx/sites-available/default - copia la configuración del sitio a las configuraciones activas de Nginx
sudo systemctl restart nginx - reinicia Nginx para aplicar la nueva configuración
Establecimiento de permisos#
# Establezca los permisos y propietario correctos
sudo chown -R www-data:www-data /opt/SherpaOrchestrator
sudo chmod -R 775 /opt/SherpaOrchestrator
💡 Comentarios sobre el establecimiento de permisos
sudo chown -R www-data:www-data /opt/SherpaOrchestrator - establece www-data como propietario de los archivos
www-data- usuario del servidor web Nginx/PHP-FPM-R- recursivamente para todos los archivos y directorios
sudo chmod -R 775 /opt/SherpaOrchestrator - establece permisos en los archivos
775- el propietario y el grupo pueden leer/escribir/ejecutar, los demás solo pueden leer/ejecutar
Creación de una base de datos de archivo#
-- Conéctese a MySQL
mysql -u root -p
-- Cree la base de datos de archivo
CREATE DATABASE IF NOT EXISTS orchestrator_archive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Salir
exit;
💡 Comentarios sobre la base de datos de archivo
CREATE DATABASE IF NOT EXISTS orchestrator_archive - crea la base de datos de archivo
IF NOT EXISTS- crea solo si no existeCHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci- establece la codificación UTF-8 con soporte para Unicode
Actualización de la estructura de la base de datos#
# Vaya al directorio de la aplicación
cd /opt/SherpaOrchestrator
# Verifique la configuración de conexión a la base de datos en el archivo phinx.php
sudo nano backend/config/phinx.php
# Ejecute la actualización de la base de datos
sudo ./sh_scripts/migrate.sh
Resultado esperado después de una actualización exitosa:
Phinx by CakePHP - https://phinx.org.
using config file ./backend/config/phinx.php
using config parser php
using migration paths
using seed paths
warning no environment specified, defaulting to: orchestrator
using adapter mysql
using database orchestrator
== 20241201120000 CreateInitialSchema: migrated 0.0123s ==
== 20241201120000 CreateInitialSchema: migrated 0.0123s ==
All Done. Took 0.0345s
💡 Comentarios sobre la actualización de la base de datos
Verificación de phinx.php:
'environments' => [
'orchestrator' => [
'adapter' => 'mysql',
'host' => 'localhost',
'name' => 'orchestrator',
'user' => 'orchestrator',
'pass' => 'mD2vjt(HqZKW',
// ...
],
],
sudo ./migrate.sh - ejecuta las migraciones de la base de datos a través de Phinx
- Actualiza la estructura de las tablas
- Agrega los índices necesarios
- Crea disparadores y procedimientos
Configuración de tareas CRON#
# Abra el editor CRON
sudo crontab -e
# Agregue la línea para ejecutar el programador de tareas:
* * * * * php /opt/SherpaOrchestrator/backend/app/scheduleCronRunner.php
# Guarde y salga del editor
💡 Comentarios sobre la configuración de CRON
sudo crontab -e - abre el editor CRON para el usuario root
* * * * *- se ejecuta cada minutophp /opt/SherpaOrchestrator/backend/app/scheduleCronRunner.php- ejecuta el programador de tareas de Sherpa
Programador de tareas:
- Gestiona el horario de ejecución de tareas
- Procesa trabajos pendientes
- Realiza limpieza automática
Instalación de Node.js y PM2#
# Instale Node.js 22.x
sudo curl -sL https://deb.nodesource.com/setup_22.x | bash -
sudo apt-get install -y nodejs
# Actualice npm
sudo npm install -g npm@latest
# Instale PM2
sudo npm install -g pm2
💡 Comentarios sobre la instalación de Node.js y PM2
curl -sL https://deb.nodesource.com/setup\_22.x | bash - - agrega el repositorio de Node.js
-sL- silencioso y seguir redireccionessetup_22.x- script para la versión 22.x de Node.js
sudo apt-get install -y nodejs - instala Node.js
sudo npm install -g pm2 - instala PM2 globalmente
- PM2 - gestor de procesos para aplicaciones de Node.js
- Reinicio automático de aplicaciones
- Gestión de logs y monitoreo
Configuración del servicio WebSocket#
# Vaya al directorio del servicio websocket
cd /opt/SherpaOrchestrator/backend/app/websocket/
# Instale las dependencias
sudo npm install
# Inicie el servicio a través de PM2
sudo pm2 start index.js --watch --ignore-watch="node_modules" --name "Websockets"
# Configure el inicio automático de PM2
sudo pm2 startup
# Guarde la configuración de PM2
sudo pm2 save
💡 Comentarios sobre la configuración de WebSocket
sudo npm install - instala las dependencias de Node.js desde package.json
sudo pm2 start index.js --watch --ignore-watch="node_modules" --name "Websockets"
--watch- reinicio al cambiar archivos--ignore-watch="node_modules"- ignorar cambios en node_modules--name "Websockets"- nombre del proceso en PM2
sudo pm2 startup - configura el inicio automático de PM2 al arrancar el sistema sudo pm2 save - guarda la configuración actual de los procesos
Configuración del nombre de dominio (opcional)#
Si le basta con acceder a la interfaz del Orquestador a través de la IP del servidor, omita este punto.
# Abra el archivo hosts
sudo nano /etc/hosts
# Agregue una entrada (reemplace con su IP y dominio):
192.168.1.100 orchestrator.mycompany.com
Inicialización del Orquestador#
- Acceda a la URL:
https://<su_dominio_o_IP>/setup.php - Si la dirección IP se muestra correctamente, haga clic en el botón "Enviar"
- En la respuesta del script se indicará el GUID del orquestador - anótelo junto con los datos de registro
¡Con esto la instalación está completa!
El sistema Sherpa Orchestrator está disponible en el navegador a través del nombre de dominio o la dirección IP.
A continuación, es necesario agregar y activar la licencia para el orquestador y la licencia para los robots en la interfaz web del orquestador.