Linux Ubuntu
Questa sezione è una guida passo per passo all’installazione del Babel Licensing Service su Linux Ubuntu.
Seguendo queste istruzioni potrai installare e configurare il Babel Licensing Service sul tuo sistema Ubuntu.
Prerequisiti
Per installare correttamente il Babel Licensing Service su Linux Ubuntu LTS devi verificare che siano soddisfatti i prerequisiti seguenti.
- Linux Ubuntu 22.04 LTS
- MariaDB o MySQL (il servizio per .NET 10 è testato con MySQL 8.4 e MariaDB 11.4)
- Il runtime ASP.NET Core corrispondente al pacchetto del servizio (per esempio .NET 10 per
babel_service_net100_x.y.z.w.zip) - Pacchetto ZIP del Babel Licensing Service (
babel_service_net100_x.y.z.w.zip). Lo stesso pacchetto serve entrambe le edizioni. - File di licenza Babel Licensing Server o Data Center (
babel.licenses)
Assicurati inoltre di avere a disposizione la password di root durante l’installazione. La password serve per le operazioni amministrative, come l’installazione dei file e la configurazione del sistema.
Ecco i comandi che puoi usare per controllare le versioni dei componenti installati sul tuo sistema Linux Ubuntu.
Controllare la versione di Ubuntu
lsb_release -aQuesto comando mostra informazioni dettagliate sulla tua distribuzione Ubuntu, compreso il numero di versione.
Controllare la versione di MariaDB
mariadb-admin --versionQuesto comando restituisce le informazioni sulla versione del server MariaDB installato.
Controllare le versioni del runtime .NET
dotnet --list-runtimesQuesto comando elenca le versioni del runtime .NET installate sul tuo sistema.
Script di installazione
Lo script Bash BabelLicensingService.sh semplifica l’installazione e la configurazione del Babel Licensing Service negli ambienti Ubuntu Linux, descritte in questa sezione.
Prima di avviare l’installazione lo script verifica i prerequisiti, come i privilegi di root e la presenza degli strumenti necessari, tra cui il comando CLI di MariaDB e dotnet. Offre un’interfaccia intuitiva, con cui puoi installare il servizio e controllarne lo stato senza fatica.
Durante l’installazione lo script si occupa di varie operazioni: estrae l’archivio di installazione, copia il file di licenza, inizializza il database, adegua il file appsettings.json con le stringhe di connessione corrette e configura il servizio con le impostazioni giuste.
Per usare lo script BabelLicensingService.sh, segui questi passi:
Scarica lo script
Scarica lo script da questo collegamento .
Sposta lo script in una cartella temporanea
Sposta lo script scaricato in una cartella temporanea (la cartella home dell’utente).
Aggiungi lo zip del servizio e il file di licenza
Metti il file zip del servizio Babel (chiamato babel_service_net100_x.y.z.w.zip, dove x.y.z.w è la versione) e il file di licenza (babel.licenses) nella stessa cartella temporanea dello script.
Esegui lo script
Esegui i comandi seguenti per avviare l’installazione.
chmod +x ./BabelLicensingService.sh
sudo <a data-footnote-ref href="#user-content-fn-1">./BabelLicensingService.sh</a>Se preferisci non usare lo script BabelLicensingService.sh, passa alle sezioni successive, che contengono le istruzioni dettagliate per l’installazione manuale del servizio.
Preparare i file
Per installare il Babel Licensing Service, copia il file ZIP che contiene tutti gli assembly del servizio e il file di licenza nella cartella home dell’utente “babel” (/home/babel), poi estrai l’archivio, configura il servizio e prepara il database. Supponendo che tu sia nella cartella in cui si trova il file ZIP, segui questi passi:
Copia i file nella cartella home dell’utente babel
Apri un terminale ed esegui il comando seguente per copiare il file ZIP e il file di licenza nella posizione desiderata:
cp babel_service_net100_x.y.z.w.zip /home/babel/
cp babel.licenses /home/babel/Ora il file ZIP con gli assembly del Babel Licensing Service è disponibile nella cartella home dell’utente “babel” (/home/babel). Puoi procedere con l’installazione e la configurazione del Babel Licensing Service usando i file di questa cartella.
Crea la cartella di installazione ed estrai l’archivio
Crea la cartella “svc/babel” in “/var/www” ed estrai il contenuto dell’archivio ZIP:
- Nella finestra del terminale esegui il comando seguente per creare la cartella “svc/babel” in “/var/www”
sudo mkdir -p /var/www/svc/babelTi verrà chiesta la password, perché “sudo” concede i privilegi amministrativi necessari per creare cartelle in una cartella di sistema.
- Passa alla cartella “babel” appena creata, che diventa la cartella di lavoro corrente:
cd /var/www/svc/babel- Estrai il contenuto dell’archivio ZIP nella cartella corrente (“/var/www/svc/babel”):
sudo unzip /home/babel/babel_service_net100_x.y.z.w.zipCon questi passi crei la struttura di cartelle necessaria ed estrai il contenuto dell’archivio ZIP nella cartella “/var/www/svc/babel”. Potrai così procedere con l’installazione e la configurazione del Babel Licensing Service nella posizione corretta.
Copia il file di licenza
Copia il file di licenza “babel.licenses” nella cartella “/var/www/svc/babel” con il comando seguente:
sudo cp /home/babel/babel.licenses /var/www/svc/babel/Ora che il file di licenza “babel.licenses” è installato nella cartella “/var/www/svc/babel”, puoi procedere con la configurazione dell’utente che eseguirà il Babel Licensing Service.
Il file di licenza determina l’edizione. Con una licenza Data Center l’applicazione web è disponibile all’indirizzo del servizio. Con una licenza Server quell’indirizzo mostra una pagina di upgrade con un confronto tra le edizioni; il servizio, la sua API e Babel Desktop continuano a funzionare. Per fare l’upgrade, sostituisci babel.licenses e riavvia il servizio; non c’è nulla da reinstallare.
Imposta il proprietario dell’applicazione
Una volta installato il file di licenza “babel.licenses” nella cartella “/var/www/svc/babel”, il passo successivo è configurare l’utente che eseguirà il Babel Licensing Service. In questo caso usiamo l’utente “www-data”.
Per configurare l’utente, esegui nel terminale il comando seguente:
sudo chown www-data:www-data -R /var/www/svc/babelQuesto comando assegna la proprietà della cartella “/var/www/svc/babel” e del suo contenuto all’utente e al gruppo “www-data”. Con il proprietario corretto, il Babel Licensing Service può essere eseguito dall’utente appropriato, che può accedere ai file e alle cartelle necessari e operare su di essi.
Configura il servizio
Per configurare il Babel Licensing Service e inserire nel file appsettings.json le impostazioni di connessione al database e le altre configurazioni dell’applicazione, segui questi passi:
- In una finestra del terminale usa il comando seguente per aprire il file
appsettings.jsonnell’editor di testo Nano
sudo nano /var/www/svc/babel/appsettings.json- Nel file
appsettings.jsonindividua la sezione"Database". Imposta il valore di"Provider"su"MySQL"per indicare che usi MySQL come provider di database
"Database": {
"Provider": "MySQL"
},- Individua la sezione
"ConnectionStrings". Sotto la chiave"MySQL", modifica la stringa di connessione in base alla configurazione del tuo server MySQL. Aggiorna di conseguenza i valoriserver,User,PasswordeDatabase:
"ConnectionStrings": {
"SQLServer": "",
"MySQL": "Server=127.0.0.1;User=babel;Password=YourUniquePassword;Database=licenses",
"SQLite": ""
},Su .NET 10 il servizio usa il provider Microting.EntityFrameworkCore.MySql, un fork di Pomelo con licenza MIT che supporta Entity Framework Core 10. I framework precedenti usano Pomelo. Il nome del provider MySQL, la stringa di connessione e lo schema sono gli stessi su tutti i framework.
Ricorda di sostituire "YourUniquePassword" con una password robusta a tua scelta. Per creare una password sicura è vivamente consigliato combinare lettere maiuscole e minuscole, numeri e caratteri speciali. Conserva la password: ti servirà più avanti, durante la configurazione del database.
- Facoltativamente puoi personalizzare altre impostazioni dell’applicazione. Per esempio, nella sezione
"Serilog"puoi configurare le impostazioni dei log e regolare il livello minimo di log:
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Debug",
"System": "Debug",
"Grpc": "Debug"
}
},
...
},Per individuare i problemi di installazione può essere utile impostare il livello minimo di log su Debug. Quando il servizio è in esecuzione, puoi riportare il livello di log a Information o Warning.
- Più in basso, nella sezione
"Application", puoi specificare"LicenseFile"(babel.licenses) e personalizzare i valori"SigningKey"e"TokenExpiration"in base alle tue esigenze:
"Application": {
"AdminUsername": "your-admin-user",
"AdminEmail": "admin@example.com",
"AdminPassword": "<strong-initial-password>",
"LicenseFile": "babel.licenses",
"SigningKey": "Secret Token Key",
"TokenExpiration": "00:30:00"
},Sostituisci Secret Token Key con una tua chiave univoca. Verrà usata per proteggere la comunicazione tra le applicazioni client e il Babel Licensing Service.
Dalla versione 11.7.0: il servizio non viene più distribuito con le credenziali predefinite admin / admin, e SigningKey non è più precompilata. Compila AdminUsername e AdminPassword prima del primo avvio per creare l’account dell’amministratore iniziale (AdminEmail è facoltativo ma consigliato); se uno dei due valori obbligatori è vuoto il servizio si avvia comunque, ma non viene creato alcun utente amministratore: non è quindi possibile accedere all’applicazione web (Data Center) con quell’account e Babel Desktop non ha una chiave API di amministratore con cui connettersi, finché non li imposti e riavvii il servizio. Se SigningKey resta vuota, all’avvio viene generata una chiave casuale, che però viene rigenerata a ogni riavvio e non è condivisa tra le istanze: in produzione imposta sempre un valore esplicito (per esempio con la variabile d’ambiente BABEL_SERVICE_APPLICATION__SIGNINGKEY).
- Per salvare le modifiche e uscire da Nano premi
Ctrl + X, poi premiYper confermare le modifiche e infine premiEnterper salvare il file.
Con questi passi hai configurato il servizio Babel modificando il file appsettings.json. La configurazione aggiornata contiene le impostazioni corrette di connessione al database e tutte le altre personalizzazioni che hai apportato.
Il paragrafo Configurazione spiega in dettaglio il file di configurazione del Babel Licensing Service.
Crea il database
Devi creare il database “licenses” configurato nella stringa di connessione impostata per il Babel Licensing Service. Poi crea l’utente “babel”, concedigli i privilegi sul database e verificane i permessi.
- Apri un terminale.
- Accedi alla console di MariaDB come utente root con il comando seguente:
sudo mariadb -u root -pTi verrà chiesta la password di root.
- Una volta effettuato l’accesso alla console di MariaDB, puoi elencare tutti i database esistenti con il comando:
SHOW DATABASES;- Per elencare tutti gli utenti esistenti, esegui la query seguente:
SELECT User FROM mysql.user;- Crea il database “licenses” con il comando:
CREATE DATABASE licenses;- Crea l’utente “babel” e concedigli tutti i privilegi sul database “licenses” eseguendo i comandi seguenti:
CREATE USER babel@localhost IDENTIFIED BY 'YourUniquePassword';
GRANT ALL PRIVILEGES ON licenses.* TO babel@localhost;
FLUSH PRIVILEGES;Sostituisci 'YourUniquePassword' con la password che hai impostato nella stringa di connessione MySQL del Babel Licensing Service.
- Per verificare che l’utente “babel” abbia i permessi corretti, puoi usare l’istruzione seguente:
SHOW GRANTS FOR babel@localhost;Ora puoi uscire dalla console di MariaDB digitando il comando quit seguito da ENTER.
Con questi passi hai creato il database “licenses”, creato l’utente “babel”, concesso i privilegi sul database e verificato i permessi dell’utente.
Avviare il Babel Licensing Service
Per avviare il Babel Licensing Service, segui questi passi:
Apri un terminale
Apri una finestra del terminale.
Vai alla cartella del servizio
Vai alla cartella in cui si trova il Babel Licensing Service. Per esempio:
cd /var/www/svc/babelEsegui il servizio
Esegui il comando seguente per avviare il Babel Licensing Service:
dotnet Babel.Licensing.Service.dllSe tutto è configurato correttamente, vedrai il servizio avviarsi. Il log del terminale mostra le informazioni sull’inizializzazione del servizio, compresa la creazione delle tabelle nel database, in base al livello di log scelto nel file appsettings.json.
Tieni d’occhio il log del terminale per individuare eventuali errori o avvisi. In caso di problemi, ricontrolla la configurazione, le impostazioni di connessione al database e i permessi per accertarti che siano corretti.
Se il Babel Licensing Service si avvia correttamente, è pronto a gestire le operazioni sulle licenze e a fornire i servizi di licenza alle tue applicazioni.
È consigliabile eseguire il Babel Licensing Service come processo in background, oppure configurare un gestore di servizi, in modo che continui a funzionare anche dopo la chiusura del terminale.
Configurare come processo in background
In Linux i file di servizio, detti anche file unit di servizio, sono file di configurazione con estensione “.service” usati per controllare il comportamento dei daemon o dei servizi. Questi file definiscono varie impostazioni e parametri del servizio, come il nome, la descrizione, il comando di esecuzione, la cartella di lavoro, le variabili d’ambiente e altro ancora.
Per configurare il Babel Licensing Service come servizio di sistema in Linux, segui questi passi:
Apri il file di servizio
Apri un terminale ed esegui il comando seguente per creare e modificare il file di servizio:
sudo nano /etc/systemd/system/babel.licensing.serviceIncolla la configurazione del servizio
Incolla nel file la configurazione seguente:
[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.targetSalva il file di servizio
Salva il file premendo Ctrl+O, poi esci dall’editor premendo Ctrl+X.
Avvia il servizio
Avvia il Babel Licensing Service eseguendo il comando seguente:
sudo systemctl start babel.licensingControlla lo stato del servizio
Per controllare lo stato del servizio, usa il comando seguente:
systemctl status babel.licensingQuesto comando mostra lo stato corrente del servizio, compresi eventuali messaggi di errore o avvisi:
● 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 startedAbilita l’avvio automatico
Per impostazione predefinita il servizio non viene avviato automaticamente all’avvio del server. Per abilitare l’avvio automatico del servizio, esegui il comando seguente:
sudo systemctl enable babel.licensingUna volta abilitato, il servizio si avvia automaticamente dopo ogni riavvio del server.
Con questi passi hai configurato il Babel Licensing Service come servizio systemd in Linux. Il servizio si avvia automaticamente all’avvio del sistema e può essere gestito con il comando systemctl.