Linux Ubuntu
En esta sección se explica paso a paso cómo instalar el Babel Licensing Service en Linux Ubuntu.
Con estas instrucciones podrá instalar y configurar el Babel Licensing Service en su sistema Ubuntu.
Requisitos previos
Para instalar correctamente el Babel Licensing Service en Linux Ubuntu LTS, compruebe que se cumplen los requisitos previos siguientes.
- Linux Ubuntu 22.04 LTS
- MariaDB o MySQL (el servicio para .NET 10 se ha probado con MySQL 8.4 y MariaDB 11.4)
- El entorno de ejecución de ASP.NET Core que corresponda al paquete del servicio (por ejemplo, .NET 10 para
babel_service_net100_x.y.z.w.zip) - Paquete ZIP del Babel Licensing Service (
babel_service_net100_x.y.z.w.zip). El mismo paquete sirve para las dos ediciones. - Archivo de licencia de Babel Licensing Server o Data Center (
babel.licenses)
Además, tenga a mano la contraseña de root durante la instalación. Esta contraseña es necesaria para realizar tareas administrativas, como instalar archivos y configurar el sistema.
Estos son los comandos con los que puede comprobar las versiones de los componentes instalados en su sistema Linux Ubuntu.
Comprobar la versión de Ubuntu
lsb_release -aEste comando muestra información detallada sobre su distribución de Ubuntu, incluido el número de versión.
Comprobar la versión de MariaDB
mariadb-admin --versionEste comando muestra la información de versión del servidor MariaDB instalado.
Comprobar las versiones del entorno de ejecución de .NET
dotnet --list-runtimesEste comando enumera las versiones del entorno de ejecución de .NET instaladas en su sistema.
Script de instalación
El script de Bash BabelLicensingService.sh está pensado para simplificar la instalación y la configuración del Babel Licensing Service en entornos Ubuntu Linux, tal como se describe en esta sección.
Antes de empezar la instalación, el script comprueba los requisitos previos, como los privilegios de root y la presencia de las herramientas necesarias, entre ellas el comando de la CLI de MariaDB y dotnet. Ofrece una interfaz intuitiva con la que se puede instalar el servicio y consultar su estado sin esfuerzo.
Durante la instalación, el script se ocupa de varias tareas: descomprimir el archivo de instalación, copiar el archivo de licencia, inicializar la base de datos, ajustar las cadenas de conexión en appsettings.json y configurar el servicio con los valores adecuados.
Para usar el script BabelLicensingService.sh, siga estos pasos:
Descargar el script
Descargue el script desde el vínculo indicado.
Mover el script a un directorio temporal
Mueva el script descargado a un directorio temporal (el directorio personal del usuario).
Añadir el zip del servicio y el archivo de licencia
Coloque el archivo zip del servicio de Babel (llamado babel_service_net100_x.y.z.w.zip, donde x.y.z.w es la versión) y el archivo de licencia (babel.licenses) en el mismo directorio temporal que el script.
Ejecutar el script
Ejecute los comandos siguientes para iniciar la instalación.
chmod +x ./BabelLicensingService.sh
sudo <a data-footnote-ref href="#user-content-fn-1">./BabelLicensingService.sh</a>Si prefiere no usar el script BabelLicensingService.sh, pase a las secciones siguientes, que contienen instrucciones detalladas para configurar el servicio manualmente.
Archivos de instalación
Para instalar el Babel Licensing Service, copie el archivo ZIP que contiene todos los ensamblados del servicio y el archivo de licencia en el directorio personal del usuario «babel» (/home/babel) y, después, extraiga el archivo, configure el servicio y prepare la base de datos. Suponiendo que se encuentra en el directorio en el que está el archivo ZIP, siga estos pasos:
Copiar los archivos al directorio personal del usuario babel
Abra un terminal y ejecute el comando siguiente para copiar el archivo ZIP y el archivo de licencia en la ubicación deseada:
cp babel_service_net100_x.y.z.w.zip /home/babel/
cp babel.licenses /home/babel/Ahora el archivo ZIP que contiene los ensamblados del Babel Licensing Service está disponible en el directorio personal del usuario «babel» (/home/babel). Puede continuar con la instalación y la configuración del Babel Licensing Service con los archivos de este directorio.
Crear la carpeta de instalación y extraer el archivo
Cree la carpeta «svc/babel» en «/var/www» y extraiga el contenido del archivo ZIP:
- En la ventana del terminal, ejecute el comando siguiente para crear la carpeta «svc/babel» en «/var/www»
sudo mkdir -p /var/www/svc/babelSe le pedirá la contraseña, ya que «sudo» concede los privilegios administrativos necesarios para crear directorios en el directorio del sistema.
- Cambie el directorio de trabajo actual a la carpeta «babel» recién creada:
cd /var/www/svc/babel- Extraiga el contenido del archivo ZIP en el directorio actual («/var/www/svc/babel»):
sudo unzip /home/babel/babel_service_net100_x.y.z.w.zipCon estos pasos se crea la estructura de carpetas necesaria y se extrae el contenido del archivo ZIP en el directorio «/var/www/svc/babel». Así puede continuar con la instalación y la configuración del Babel Licensing Service en la ubicación adecuada.
Copiar el archivo de licencia
Copie el archivo de licencia «babel.licenses» en el directorio «/var/www/svc/babel» con el comando siguiente:
sudo cp /home/babel/babel.licenses /var/www/svc/babel/Ahora que el archivo de licencia «babel.licenses» está instalado en el directorio «/var/www/svc/babel», puede continuar con la configuración del usuario que ejecutará el Babel Licensing Service.
El archivo de licencia determina la edición. Con una licencia Data Center, la aplicación web se sirve en la dirección del servicio. Con una licencia Server, esa dirección muestra una página de actualización con una comparación de ediciones; el servicio, su API y Babel Desktop siguen funcionando. Para actualizar, sustituya babel.licenses y reinicie el servicio; no hay que reinstalar nada.
Establecer el propietario de la aplicación
Con el archivo de licencia «babel.licenses» instalado en el directorio «/var/www/svc/babel», el paso siguiente es configurar el usuario que ejecutará el Babel Licensing Service. En este caso, el usuario será «www-data».
Para configurar el usuario, ejecute el comando siguiente en el terminal:
sudo chown www-data:www-data -R /var/www/svc/babelEste comando cambia el propietario del directorio «/var/www/svc/babel» y de su contenido al usuario y al grupo «www-data». Con el propietario correcto, el Babel Licensing Service puede ejecutarse con el usuario adecuado, que podrá acceder a los archivos y directorios necesarios y trabajar con ellos.
Configurar el servicio
Para configurar el Babel Licensing Service y editar el archivo appsettings.json con los ajustes de conexión a la base de datos y el resto de la configuración de la aplicación, siga estos pasos:
- En una ventana de terminal, use el comando siguiente para abrir el archivo
appsettings.jsonen el editor de texto Nano
sudo nano /var/www/svc/babel/appsettings.json- En el archivo
appsettings.json, busque la sección"Database". Establezca el valor de"Provider"en"MySQL"para indicar que usa MySQL como proveedor de base de datos
"Database": {
"Provider": "MySQL"
},- Busque la sección
"ConnectionStrings". En la clave"MySQL", modifique la cadena de conexión para que corresponda a la configuración de su servidor MySQL. Actualice los valores deserver,User,PasswordyDatabasesegún corresponda:
"ConnectionStrings": {
"SQLServer": "",
"MySQL": "Server=127.0.0.1;User=babel;Password=YourUniquePassword;Database=licenses",
"SQLite": ""
},En .NET 10 el servicio usa el proveedor Microting.EntityFrameworkCore.MySql, una bifurcación de Pomelo con licencia MIT compatible con Entity Framework Core 10. Los frameworks anteriores usan Pomelo. El nombre del proveedor MySQL, la cadena de conexión y el esquema son los mismos en todos los frameworks.
Recuerde sustituir "YourUniquePassword" por una contraseña segura de su elección. Se recomienda encarecidamente combinar letras mayúsculas y minúsculas, números y caracteres especiales para crear una contraseña segura. Conserve la contraseña, porque la necesitará más adelante al configurar la base de datos.
- De forma opcional, puede personalizar otros ajustes de la aplicación. Por ejemplo, en la sección
"Serilog"puede configurar el registro y ajustar el nivel de registro mínimo:
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Debug",
"System": "Debug",
"Grpc": "Debug"
}
},
...
},Para depurar problemas de instalación puede ser útil establecer el nivel de registro mínimo en Debug. Cuando el servicio esté en funcionamiento, se puede volver al nivel Information o Warning.
- Más abajo, en la sección
"Application", puede indicar el"LicenseFile"(babel.licenses) y personalizar los valores de"SigningKey"y"TokenExpiration"según sus necesidades:
"Application": {
"AdminUsername": "your-admin-user",
"AdminEmail": "admin@example.com",
"AdminPassword": "<strong-initial-password>",
"LicenseFile": "babel.licenses",
"SigningKey": "Secret Token Key",
"TokenExpiration": "00:30:00"
},Sustituya Secret Token Key por su propia clave única. Se usará para proteger la comunicación entre las aplicaciones cliente y el Babel Licensing Service.
Desde la versión 11.7.0: el servicio ya no se distribuye con las credenciales predeterminadas admin / admin, y SigningKey ya no viene rellenada. Rellene AdminUsername y AdminPassword antes del primer arranque para crear la cuenta del administrador inicial (AdminEmail es opcional, pero se recomienda); si alguno de los dos valores obligatorios está vacío, el servicio arranca igualmente, pero no se crea ningún usuario administrador, de modo que no es posible iniciar sesión en la aplicación web (Data Center) con esa cuenta y Babel Desktop no dispone de una clave API de administrador con la que conectarse, hasta que los establezca y reinicie el servicio. Si SigningKey se deja vacía, se genera una clave aleatoria al arrancar, pero se vuelve a generar en cada reinicio y no se comparte entre instancias; en producción, establezca siempre un valor explícito (por ejemplo, mediante la variable de entorno BABEL_SERVICE_APPLICATION__SIGNINGKEY).
- Para guardar los cambios y salir de Nano, pulse
Ctrl + X, después pulseYpara confirmar los cambios y, por último, pulseEnterpara guardar el archivo.
Con estos pasos habrá configurado el servicio de Babel mediante la edición del archivo appsettings.json. La configuración actualizada incluye los ajustes correctos de conexión a la base de datos y las demás personalizaciones que haya hecho.
Para saber más sobre el archivo de configuración del Babel Licensing Service, consulte el apartado Configuración.
Crear la base de datos
Hay que crear la base de datos «licenses» configurada en la cadena de conexión establecida para el Babel Licensing Service. Después se crea el usuario «babel», se le conceden privilegios sobre la base de datos y se comprueban sus permisos.
- Abra un terminal.
- Inicie sesión en la consola de MariaDB como usuario root con el comando siguiente:
sudo mariadb -u root -pSe le pedirá la contraseña de root.
- Una vez iniciada la sesión en la consola de MariaDB, puede enumerar todas las bases de datos existentes con el comando:
SHOW DATABASES;- Para enumerar todos los usuarios existentes, ejecute la consulta siguiente:
SELECT User FROM mysql.user;- Cree la base de datos «licenses» con el comando:
CREATE DATABASE licenses;- Cree el usuario «babel» y concédale todos los privilegios sobre la base de datos «licenses» con los comandos siguientes:
CREATE USER babel@localhost IDENTIFIED BY 'YourUniquePassword';
GRANT ALL PRIVILEGES ON licenses.* TO babel@localhost;
FLUSH PRIVILEGES;Sustituya 'YourUniquePassword' por la contraseña que estableció en la cadena de conexión MySQL del Babel Licensing Service.
- Para comprobar que el usuario «babel» tiene los permisos adecuados, puede usar la instrucción siguiente:
SHOW GRANTS FOR babel@localhost;Ya puede salir de la consola de MariaDB escribiendo el comando quit y pulsando ENTER.
Con estos pasos habrá creado la base de datos «licenses» y el usuario «babel», le habrá concedido privilegios sobre la base de datos y habrá comprobado sus permisos.
Iniciar el Babel Licensing Service
Para iniciar el Babel Licensing Service, siga estos pasos:
Abrir un terminal
Abra una ventana de terminal.
Ir al directorio del servicio
Vaya al directorio en el que se encuentra el Babel Licensing Service. Por ejemplo:
cd /var/www/svc/babelEjecutar el servicio
Ejecute el comando siguiente para iniciar el Babel Licensing Service:
dotnet Babel.Licensing.Service.dllSi todo está configurado correctamente, verá cómo arranca el servicio. El registro del terminal muestra información sobre la inicialización del servicio, incluida la creación de las tablas en la base de datos, según el nivel de registro elegido en el archivo appsettings.json.
Esté atento a los errores o advertencias que aparezcan en el registro del terminal. Si hay algún problema, revise la configuración, los ajustes de conexión a la base de datos y los permisos para comprobar que son correctos.
Si el Babel Licensing Service arranca correctamente, queda listo para atender las operaciones de licencias y prestar servicios de licencias a sus aplicaciones.
Se recomienda ejecutar el Babel Licensing Service como proceso en segundo plano o configurar un administrador de servicios para que siga en ejecución después de cerrar el terminal.
Configurar como proceso en segundo plano
En Linux, los archivos de servicio, también llamados archivos de unidad de servicio, son archivos de configuración con la extensión «.service» que controlan el comportamiento de los demonios o servicios. Estos archivos definen distintos ajustes y parámetros del servicio, como su nombre, su descripción, el comando de ejecución, el directorio de trabajo, las variables de entorno y otros.
Para configurar el Babel Licensing Service como servicio del sistema en Linux, siga estos pasos:
Abrir el archivo de servicio
Abra un terminal y ejecute el comando siguiente para crear y editar el archivo de servicio:
sudo nano /etc/systemd/system/babel.licensing.servicePegar la configuración del servicio
Pegue la configuración siguiente en el archivo:
[Unit]
Description=Babel Licensing Service
[Service]
WorkingDirectory=/var/www/svc/babel/
ExecStart=/usr/bin/dotnet /var/www/svc/babel/Babel.Licensing.Service.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=babel-licensing-svc
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.targetGuardar el archivo de servicio
Guarde el archivo pulsando Ctrl+O y, después, salga del editor pulsando Ctrl+X.
Iniciar el servicio
Inicie el Babel Licensing Service con el comando siguiente:
sudo systemctl start babel.licensingComprobar el estado del servicio
Para comprobar el estado del servicio, use el comando siguiente:
systemctl status babel.licensingEste comando muestra el estado actual del servicio, incluidos los mensajes de error o las advertencias:
● babel.service - Babel Licensing Service
Loaded: loaded (/etc/systemd/system/babel.licensing.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2023-05-19 09:24:53 UTC; 1s ago
Main PID: 2710499 (dotnet)
Tasks: 17 (limit: 4392)
Memory: 28.0M
CPU: 903ms
CGroup: /system.slice/babel.licensing
└─2710499 /usr/bin/dotnet /var/www/svc/babel/Babel.Licensing.Service.dll
May 19 09:24:57 babel-licensing-svc[2710499]: [09:24:57 DBG] Hosting startedHabilitar el inicio automático
De forma predeterminada, el servicio no está configurado para iniciarse automáticamente al arrancar el servidor. Para que el servicio se inicie automáticamente, ejecute el comando siguiente:
sudo systemctl enable babel.licensingAl habilitar el servicio, este se inicia automáticamente después de reiniciar el servidor.
Con estos pasos habrá configurado el Babel Licensing Service como servicio de systemd en Linux. El servicio se inicia automáticamente al arrancar el sistema y puede administrarse con el comando systemctl.