For the complete documentation index, see llms.txt. This page is also available as Markdown.

Instalar Devolutions Server para Linux

Devolutions Server está disponible para Linux con Microsoft Kestrel como servidor web integrado y Microsoft PowerShell 7 para la instalación por línea de comandos. El presente tema muestra cómo instalar manualmente Devolutions Server for Linux mediante indicaciones de Bash y scripts de PowerShell, así como cómo acceder a él y eliminarlo.

Como alternativa, Devolutions Server se puede instalar automáticamente utilizando los scripts que se encuentran en el repositorio ScriptLibrary de GitHub de Devolutions.

Instalación de los requisitos previos

  1. Si Microsoft SQL Server no está ya instalado, ejecute la siguiente indicación de Bash con la variable MSSQL_SA_PASSWORD cambiada por una contraseña robusta:

    source /etc/os-release
    curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/microsoft-prod.gpg
    curl -fsSL https://packages.microsoft.com/config/ubuntu/$VERSION_ID/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
    sudo apt-get update
    sudo apt-get install -y mssql-server
    sudo MSSQL_SA_PASSWORD="mystrongpassword" MSSQL_PID="evaluation" /opt/mssql/bin/mssql-conf -n setup accept-eula
    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    sudo systemctl restart mssql-server

    MSSQL_PID está establecido en evaluation en este ejemplo, pero en su lugar se puede introducir aquí una clave de producto.

  1. Ejecute esta indicación de Bash para instalar PowerShell 7:

    sudo apt-get update
    sudo apt-get install -y wget apt-transport-https software-properties-common
    source /etc/os-release
    wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    sudo apt-get update
    sudo apt-get install -y powershell

Asegúrese de que la instalación se realice en un directorio accesible para el usuario actual, ya que la línea de comandos wget descarga un paquete .deb en dicho directorio.

  1. Elija si desea instalar el módulo Devolutions.PowerShell para el usuario actual o para todos los usuarios.

    • Para el usuario actual (ubicación: /.local/share/powershell/Modules), ejecute:

    • Para todos los usuarios (ubicación: /opt/microsoft/powershell/7/Modules), ejecute:

    Es probable que aparezca una advertencia indicando que la instalación proviene de un repositorio que no es de confianza. El módulo está alojado en PowerShell Gallery, la ubicación oficial para alojar módulos de PowerShell gestionada por Microsoft. Para evitar ver esta advertencia en el futuro, ejecute:

    Aunque no es obligatorio, se recomienda encarecidamente aprovisionar usuarios y grupos separados para Devolutions Server. Aquí tiene una indicación de Bash para crear un usuario y un grupo, ambos denominados dvls, con el directorio de instalación establecido en /opt/devolutions/dvls:

Descargar e instalar Devolutions Server for Linux

  1. Ejecute el script de PowerShell que figura a continuación para descargar la última versión de Devolutions Server for Linux y extraer el fichero .tar.gz en la ubicación /opt/devolutions/dvls:

    Lo mejor es que Devolutions Server pueda responder a través de TLS. Si aún no existe un certificado, se puede generar uno rápidamente utilizando esta indicación de Bash:

    En el ejemplo anterior, subjectAltName utiliza DNS:. Para responder únicamente en una IP, utilice IP: en su lugar.

Tenga en cuenta que el certificado .pfx generado no tiene contraseña.

  1. Utilizando el módulo Devolutions.PowerShell, ejecute la instalación de Devolutions Server a través de PowerShell. Asegúrese de personalizar los valores que se indican aquí:

    • MYHOST

    • MSSQLHOST

    • DBUSERNAME

    • YOURSTRONGPASSWORD

    • MYEMAIL

    Si ya se ha generado un certificado, proceda a modificar el fichero appsettings.json para permitir que Kestrel responda a través de TLS utilizando este script de PowerShell:

    Para ofrecer la ejecución en segundo plano de Devolutions Server for Linux, se recomienda crear un fichero de unidad para systemd mediante esta indicación de Bash:

  2. Para iniciar Devolutions Server, ejecute:

Acceder a Devolutions Server for Linux

De forma predeterminada, Devolutions Server for Linux escucha en el puerto 5000 en la IP o el nombre de host del sistema de instalación, lo que habitualmente tiene este aspecto: http://MYHOST:5000. Tenga en cuenta que pueden producirse errores de OAuth en el primer inicio al intentar acceder a Devolutions Server desde una URL no configurada. Si es el caso, añada URI adicionales para escuchar, o modifique la principal ejecutando el siguiente script en PowerShell:

Si Devolutions Server sigue siendo inaccesible fuera del sistema instalado, compruebe si los puertos de cortafuegos necesarios están abiertos, añadiendo Uncomplicated Firewall a la indicación, por ejemplo: sudo ufw allow 5000.

Importar la clave de cifrado de Devolutions Server

Exportar desde una instalación de Windows existente

Importar a una nueva instalación de Linux

Actualizar Devolutions Server for Linux

No extraiga el nuevo archivo .tar.gz directamente sobre /opt/devolutions/dvls. Hacerlo sobrescribe appsettings.json y encryption.config, lo que deja el servicio sin poder iniciarse y puede hacer que los datos existentes no se puedan descifrar. Siga siempre el método de actualización detallado en esta página.

  1. Haga una copia de seguridad de la base de datos. Así es como se hace en Microsoft SQL Server (Linux o remoto):

    La ruta completa a sqlcmd evita el error "command not found" en shells sin inicio de sesión donde no se ha cargado /etc/profile.d/mssql-tools.sh.

    -C confía en el certificado del servidor (necesario para instalaciones locales de SQL Server que utilizan un certificado autofirmado).

    Haga la copia de seguridad en un directorio en el que el usuario MSSQL pueda escribir. /var/opt/mssql/data/ funciona de forma nativa.

  2. Asegúrese de que el fichero .bak existe y no está vacío antes de continuar con el paso siguiente.

  3. Detenga el servicio de Devolutions Server utilizando el siguiente script:

  4. Haga una copia de seguridad de los ficheros de instalación y de configuración. Tenga en cuenta que /opt/devolutions/dvls está en modo 550 y pertenece a dvls:dvls, por lo que los cmdlets de copia de seguridad deben ejecutarse como root. Inicie PowerShell con sudo pwsh y, a continuación, pegue este script:

    • Backup-DPSConfigurationFiles conserva: appsettings.json, web.config y encryption.config.

    • Backup-DPSInstallationFiles conserva las carpetas personalizadas, la carpeta de detección de anomalías y cualquier recurso añadido por el usuario.

  5. Vacíe el directorio de instalación excepto App_data, ya que contiene el estado de ejecución que se conserva entre actualizaciones. Utilice este script para hacerlo:

    Utilice --strip-components solo si el archivo tiene una carpeta de nivel superior.

  6. Restaure la configuración y los datos personalizados. En este paso, appsettings.json (cadena de conexión a la BD) y web.config se vuelven a colocar en la nueva instalación. Dado que encryption.config ya se conservó dentro de App_Data/ en el paso n.º 5, Restore-DPSConfigurationFiles no lo colocará en la raíz de la instalación, porque no es ahí donde se encuentra en Linux. Este es el script de restauración:

  7. Extraiga las cadenas de conexión del fichero appsettings.json restaurado:

    Update-DPSDatabase no imprime ningún resultado cuando se realiza correctamente. Verifique que ha funcionado comprobando que el comando devolvió el código de salida 0 y que, después de iniciar el servicio en el paso n.º 9, el diario muestra entradas Migration done with status Done sin líneas [ERR].

  8. Vuelva a aplicar la propiedad y los permisos:

  9. Inicie el servicio y compruebe si funciona correctamente:

Resolución de problemas

  • El servicio no se inicia, appsettings.json falta o está vacío: restáurelo desde $BackupConfig/appsettings.json y repita los pasos n.º 8 y 9.

  • El inicio de sesión funciona, pero las entradas no se descifran: encryption.config no se restauró. Copie $BackupConfig/encryption.config en $DVLSPath/App_Data/, corrija los permisos (chown dvls:dvls y chmod 660) y, a continuación, reinicie.

  • Errores de esquema de BD en tiempo de ejecución: se omitió Update-DPSDatabase o falló. Repita el paso n.º 7.

  • Reversión completa: detenga el servicio (véase el paso n.º 3), vacíe /opt/devolutions/dvls excepto App_Data/ (paso n.º 5), copie el contenido de $BackupInstall de nuevo en /opt/devolutions/dvls, restaure appsettings.json desde $BackupConfig, vuelva a aplicar la propiedad y los permisos del paso n.º 8, restaure la BD desde el .bak generado en el paso n.º 1 y, a continuación, reinicie.

Eliminar Devolutions Server

Para eliminar Devolutions Server, ejecute la indicación de Bash que figura a continuación y personalícela para el sistema. Este script se basa en el módulo de PowerShell DbaTools para facilitar la eliminación de la base de datos MSSQL. Supone que localhost es la instalación de MSSQL y dvls el nombre de la base de datos.

Última actualización

¿Te fue útil?