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

Installare Devolutions Server for Linux

Devolutions Server è disponibile per Linux con Microsoft Kestrel come server web integrato e Microsoft PowerShell 7 per l'installazione da riga di comando. Il presente argomento mostra come installare manualmente Devolutions Server for Linux utilizzando prompt Bash e script PowerShell, nonché come accedervi e rimuoverlo.

In alternativa, Devolutions Server può essere installato automaticamente utilizzando gli script disponibili nel repository Devolutions GitHub ScriptLibrary.

Installazione dei prerequisiti

  1. Se Microsoft SQL Server non è già installato, esegua il seguente prompt Bash modificando la variabile MSSQL_SA_PASSWORD con una password complessa:

    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

    In questo esempio MSSQL_PID è impostato su evaluation, ma è possibile inserire qui una chiave prodotto.

  1. Esegua questo prompt Bash per installare 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

Si assicuri che l'installazione avvenga in una directory accessibile all'utente corrente, poiché la riga di comando wget scarica un pacchetto .deb in tale directory.

  1. Scelga se installare il modulo Devolutions.PowerShell per l'utente corrente o per tutti gli utenti.

    • Per l'utente corrente (percorso: /.local/share/powershell/Modules), esegua:

    • Per tutti gli utenti (percorso: /opt/microsoft/powershell/7/Modules), esegua:

    È probabile che compaia un avviso indicante che l'installazione proviene da un repository non attendibile. Il modulo è ospitato su PowerShell Gallery, la posizione ufficiale per l'hosting dei moduli PowerShell gestita da Microsoft. Per evitare di visualizzare questo avviso in futuro, esegua:

    Sebbene non sia obbligatorio, si consiglia vivamente di creare utenti e gruppi separati per Devolutions Server. Ecco un prompt Bash per creare un utente e un gruppo entrambi denominati dvls con la directory di installazione impostata su /opt/devolutions/dvls:

Download e installazione di Devolutions Server for Linux

  1. Esegua lo script PowerShell qui sotto per scaricare l'ultima versione di Devolutions Server for Linux ed estrarre il file .tar.gz nel percorso /opt/devolutions/dvls:

    È preferibile che Devolutions Server sia in grado di rispondere tramite TLS. Se non esiste già un certificato, è possibile generarne rapidamente uno utilizzando questo prompt Bash:

    Nell'esempio qui sopra, subjectAltName utilizza DNS:. Per rispondere solo su un IP, utilizzi invece IP:.

Si noti che il certificato .pfx generato non ha una password.

  1. Utilizzando il modulo Devolutions.PowerShell, esegua l'installazione di Devolutions Server tramite PowerShell. Si assicuri di personalizzare i valori elencati qui:

    • MYHOST

    • MSSQLHOST

    • DBUSERNAME

    • YOURSTRONGPASSWORD

    • MYEMAIL

    Se è già stato generato un certificato, proceda a modificare il file appsettings.json per consentire a Kestrel di rispondere tramite TLS utilizzando questo script PowerShell:

    Per consentire l'esecuzione in background di Devolutions Server for Linux, si consiglia di creare un unit file per systemd tramite questo prompt Bash:

  2. Per avviare Devolutions Server, esegua:

Accedere a Devolutions Server for Linux

Per impostazione predefinita, Devolutions Server for Linux resta in ascolto sulla porta 5000 sull'IP o sul nome host del sistema di installazione, che nella maggior parte dei casi si presenta così: http://MYHOST:5000. Tenga presente che al primo avvio possono verificarsi errori OAuth quando si tenta di accedere a Devolutions Server da un URL non configurato. In tal caso, aggiunga ulteriori URI su cui restare in ascolto, oppure modifichi quello primario eseguendo il seguente script in PowerShell:

Se Devolutions Server rimane inaccessibile al di fuori del sistema installato, verifichi se le porte del firewall necessarie sono aperte, aggiungendo Uncomplicated Firewall al prompt, ad esempio: sudo ufw allow 5000.

Importare la chiave di crittografia di Devolutions Server

Esportazione da un'installazione Windows esistente

Importazione in una nuova installazione Linux

Aggiornare Devolutions Server for Linux

Non estragga il nuovo archivio .tar.gz direttamente sopra /opt/devolutions/dvls. In tal modo si sovrascrivono appsettings.json ed encryption.config, il che rende il servizio incapace di avviarsi e può rendere indecifrabili i dati esistenti. Segua sempre il metodo di aggiornamento descritto in questa pagina.

  1. Esegua il backup del database. Ecco come farlo per Microsoft SQL Server (Linux o remoto):

    Il percorso completo di sqlcmd evita l'errore "command not found" nelle shell non di login in cui /etc/profile.d/mssql-tools.sh non è stato caricato.

    -C considera attendibile il certificato del server (necessario per le installazioni locali di SQL Server che utilizzano un certificato autofirmato).

    Esegua il backup in una directory scrivibile dall'utente MSSQL. /var/opt/mssql/data/ funziona da subito.

  2. Si assicuri che il file .bak esista e non sia vuoto prima di procedere al passaggio successivo.

  3. Arresti il servizio Devolutions Server utilizzando il seguente script:

  4. Esegua il backup dei file di installazione e di configurazione. Tenga presente che /opt/devolutions/dvls è in modalità 550 ed è di proprietà di dvls:dvls, pertanto i cmdlet di backup devono essere eseguiti come root. Avvii PowerShell con sudo pwsh, quindi incolli questo script:

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

    • Backup-DPSInstallationFiles conserva le cartelle personalizzate, la cartella di rilevamento delle anomalie ed eventuali risorse aggiunte dall'utente.

  5. Svuoti la directory di installazione tranne App_data, poiché contiene lo stato di runtime che sopravvive agli aggiornamenti. Utilizzi questo script per farlo:

    Utilizzi --strip-components solo se l'archivio ha una cartella di primo livello.

  6. Ripristini la configurazione e i dati personalizzati. In questo passaggio, appsettings.json (stringa di connessione al DB) e web.config vengono reinseriti nella nuova installazione. Poiché encryption.config è già stato conservato all'interno di App_Data/ dal passaggio n. 5, Restore-DPSConfigurationFiles non lo collocherà nella radice dell'installazione, perché non è lì che si trova su Linux. Ecco lo script di ripristino:

  7. Estragga le stringhe di connessione dal file appsettings.json ripristinato:

    Update-DPSDatabase non stampa alcun output in caso di successo. Verifichi che abbia funzionato controllando che il comando abbia restituito il codice di uscita 0 e che, dopo aver avviato il servizio al passaggio n. 9, il journal mostri voci Migration done with status Done senza righe [ERR].

  8. Riapplichi la proprietà e le autorizzazioni:

  9. Avvii il servizio e verifichi che funzioni correttamente:

Risoluzione dei problemi

  • Il servizio non si avvia, appsettings.json mancante o vuoto: ripristini da $BackupConfig/appsettings.json, ripeta i passaggi n. 8 e 9.

  • L'accesso funziona ma le voci non vengono decrittografate: encryption.config non è stato ripristinato. Copi $BackupConfig/encryption.config in $DVLSPath/App_Data/, corregga le autorizzazioni (chown dvls:dvls e chmod 660), quindi riavvii.

  • Errori dello schema del DB in fase di esecuzione: Update-DPSDatabase è stato saltato o non è riuscito. Ripeta il passaggio n. 7.

  • Rollback completo: arresti il servizio (veda il passaggio n. 3), svuoti /opt/devolutions/dvls tranne App_Data/ (passaggio n. 5), copi il contenuto di $BackupInstall nuovamente in /opt/devolutions/dvls, ripristini appsettings.json da $BackupConfig, riapplichi la proprietà e le autorizzazioni dal passaggio n. 8, ripristini il DB dal file .bak prodotto al passaggio n. 1, quindi riavvii.

Rimuovere Devolutions Server

Per rimuovere Devolutions Server, esegua il prompt Bash qui sotto e lo personalizzi per il sistema. Questo script si basa sul modulo PowerShell DbaTools per facilitare la rimozione del database MSSQL. Presuppone che localhost sia l'installazione MSSQL e dvls il nome del database.

Ultimo aggiornamento

È stato utile?