Linux Ubuntu
このセクションでは、Babel Licensing Service を Linux Ubuntu にインストールする手順を順を追って説明します。
この手順に従うと、お使いの Ubuntu システムで Babel Licensing Service をセットアップして設定できます。
前提条件
Babel Licensing Service を Linux Ubuntu LTS に正しくインストールするには、次の前提条件を満たしている必要があります。
- Linux Ubuntu 22.04 LTS
- MariaDB または MySQL(.NET 10 のサービスは MySQL 8.4 と MariaDB 11.4 でテストされています)
- サービスのパッケージに対応する ASP.NET Core ランタイム(たとえば
babel_service_net100_x.y.z.w.zipの場合は .NET 10) - Babel Licensing Service の ZIP パッケージ(
babel_service_net100_x.y.z.w.zip)。同じパッケージが両方のエディションに対応しています。 - Babel Licensing の Server または Data Center のライセンスファイル(
babel.licenses)
また、インストール中に root のパスワードを使えるようにしておいてください。このパスワードは、ファイルのインストールやシステムの設定などの管理作業に必要です。
Linux Ubuntu システムにインストールされているコンポーネントのバージョンは、次のコマンドで確認できます。
Ubuntu のバージョンを確認する
lsb_release -aこのコマンドは、バージョン番号を含む、お使いの Ubuntu ディストリビューションの詳細情報を表示します。
MariaDB のバージョンを確認する
mariadb-admin --versionこのコマンドを実行すると、インストールされている MariaDB サーバーのバージョン情報が表示されます。
.NET ランタイムのバージョンを確認する
dotnet --list-runtimesこのコマンドを実行すると、システムにインストールされている .NET ランタイムのバージョンが一覧表示されます。
インストールスクリプト
Bash スクリプト BabelLicensingService.sh は、このセクションで説明する Ubuntu Linux 環境への Babel Licensing Service のインストールと設定を簡単にするためのものです。
このスクリプトは、インストールを始める前に、root 権限や、MariaDB の CLI コマンド、dotnet といった必要なツールの有無などの前提条件を確認します。わかりやすいインターフェイスを備えており、サービスのインストールと状態の確認を簡単に実行できます。
インストール中、スクリプトは、インストールアーカイブの展開、ライセンスファイルのコピー、データベースの初期化、接続文字列を正しく設定するための appsettings.json の調整、適切な構成でのサービスのセットアップなどの作業を行います。
BabelLicensingService.sh スクリプトを使用するには、次の手順に従います。
スクリプトをダウンロードする
スクリプトをこちらのリンク からダウンロードします。
スクリプトを一時ディレクトリに移動する
ダウンロードしたスクリプトを一時ディレクトリ(ユーザーのホームディレクトリ)に移動します。
サービスの zip とライセンスファイルを追加する
Babel サービスの zip ファイル(名前は babel_service_net100_x.y.z.w.zip で、x.y.z.w はバージョンです)とライセンスファイル(babel.licenses)を、スクリプトと同じ一時ディレクトリに置きます。
スクリプトを実行する
次のコマンドを実行して、インストールを開始します。
chmod +x ./BabelLicensingService.sh
sudo <a data-footnote-ref href="#user-content-fn-1">./BabelLicensingService.sh</a>BabelLicensingService.sh スクリプトを使用しない場合は、以降のセクションに進んでください。サービスを手動でセットアップする詳しい手順を説明しています。
ファイルのセットアップ
Babel Licensing Service をインストールするには、サービスのすべてのアセンブリを含む ZIP ファイルとライセンスファイルを「babel」ユーザーのホームディレクトリ(/home/babel)にコピーし、展開と設定を行って、データベースをセットアップします。現在のディレクトリが ZIP ファイルのあるディレクトリであるものとして、次の手順に従います。
ファイルを babel ユーザーのホームディレクトリにコピーする
ターミナルを開き、次のコマンドを実行して、ZIP ファイルとライセンスファイルを目的の場所にコピーします。
cp babel_service_net100_x.y.z.w.zip /home/babel/
cp babel.licenses /home/babel/これで、Babel Licensing Service のアセンブリを含む ZIP ファイルが、「babel」ユーザーのホームディレクトリ(/home/babel)に置かれます。このディレクトリのファイルを使って、Babel Licensing Service のインストールと設定に進めます。
インストールディレクトリを作成してアーカイブを展開する
「/var/www」の下に「svc/babel」ディレクトリを作成し、ZIP アーカイブの内容を展開します。
- ターミナルウィンドウで次のコマンドを実行して、「/var/www」の下に「svc/babel」ディレクトリを作成します。
sudo mkdir -p /var/www/svc/babel「sudo」は、システムディレクトリの下にディレクトリを作成するための管理者権限を与えるので、パスワードの入力を求められます。
- 現在の作業ディレクトリを、新しく作成した「babel」ディレクトリに変更します。
cd /var/www/svc/babel- ZIP アーカイブの内容を、現在のディレクトリ(「/var/www/svc/babel」)に展開します。
sudo unzip /home/babel/babel_service_net100_x.y.z.w.zipこの手順により、必要なディレクトリ構造が作成され、ZIP アーカイブの内容が「/var/www/svc/babel」ディレクトリに展開されます。これで、適切な場所で Babel Licensing Service のインストールと設定に進めます。
ライセンスファイルをコピーする
次のコマンドで、ライセンスファイル「babel.licenses」を「/var/www/svc/babel」ディレクトリにコピーします。
sudo cp /home/babel/babel.licenses /var/www/svc/babel/これで、ライセンスファイル「babel.licenses」が「/var/www/svc/babel」ディレクトリにインストールされました。続いて、Babel Licensing Service を実行するユーザーを設定します。
エディションはライセンスファイルで決まります。Data Center ライセンスの場合、サービスのアドレスで Web アプリケーションが提供されます。Server ライセンスの場合、そのアドレスにはエディションの比較を含むアップグレードページが表示されますが、サービス、その API、Babel Desktop は引き続き動作します。アップグレードするには、babel.licenses を置き換えてサービスを再起動します。再インストールするものはありません。
アプリケーションの所有者を設定する
ライセンスファイル「babel.licenses」を「/var/www/svc/babel」ディレクトリにインストールしたら、次に Babel Licensing Service を実行するユーザーを設定します。ここでは、ユーザーを「www-data」に設定します。
ユーザーを設定するには、ターミナルで次のコマンドを実行します。
sudo chown www-data:www-data -R /var/www/svc/babelこのコマンドは、「/var/www/svc/babel」ディレクトリとその内容の所有者を、「www-data」ユーザーとグループに変更します。所有者を正しく設定すると、Babel Licensing Service を適切なユーザーで実行でき、サービスが必要なファイルとディレクトリにアクセスして操作できるようになります。
サービスを設定する
Babel Licensing Service を設定し、appsettings.json ファイルにデータベース接続の設定やその他のアプリケーション構成を記述するには、次の手順に従います。
- ターミナルウィンドウで次のコマンドを使用して、
appsettings.jsonファイルをテキストエディター Nano で開きます。
sudo nano /var/www/svc/babel/appsettings.jsonappsettings.jsonファイルで"Database"セクションを探します。"Provider"の値を"MySQL"に設定して、データベースプロバイダーとして MySQL を使用することを指定します。
"Database": {
"Provider": "MySQL"
},"ConnectionStrings"セクションを探します。"MySQL"キーの接続文字列を、お使いの MySQL サーバーの構成に合わせて変更します。server、User、Password、Databaseの値を適宜更新します。
"ConnectionStrings": {
"SQLServer": "",
"MySQL": "Server=127.0.0.1;User=babel;Password=YourUniquePassword;Database=licenses",
"SQLite": ""
},.NET 10 では、サービスは Microting.EntityFrameworkCore.MySql プロバイダーを使用します。これは、Entity Framework Core 10 をサポートする、MIT ライセンスの Pomelo のフォークです。それより前のフレームワークでは Pomelo を使用します。プロバイダー名 MySQL、接続文字列、スキーマは、どのフレームワークでも同じです。
"YourUniquePassword" は、必ず任意の強力なパスワードに置き換えてください。安全なパスワードにするために、大文字、小文字、数字、特殊文字を組み合わせることを強くお勧めします。このパスワードは、後でデータベースを設定するときに使うので、控えておいてください。
- 必要に応じて、その他のアプリケーション設定をカスタマイズできます。たとえば、
"Serilog"セクションでは、ログの設定を行い、最小ログレベルを調整できます。
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Debug",
"System": "Debug",
"Grpc": "Debug"
}
},
...
},インストールの問題を調べるときは、最小ログレベルを Debug に設定すると役立つことがあります。サービスが動作するようになったら、ログレベルを Information または Warning に戻せます。
- さらに下の
"Application"セクションでは、"LicenseFile"(babel.licenses)を指定し、"SigningKey"と"TokenExpiration"の値を要件に合わせてカスタマイズできます。
"Application": {
"AdminUsername": "your-admin-user",
"AdminEmail": "admin@example.com",
"AdminPassword": "<strong-initial-password>",
"LicenseFile": "babel.licenses",
"SigningKey": "Secret Token Key",
"TokenExpiration": "00:30:00"
},Secret Token Key を独自のキーに置き換えます。このキーは、アプリケーションクライアントと Babel Licensing Service の間の通信を保護するために使用されます。
11.7.0 以降:サービスには admin / admin という既定の資格情報が含まれなくなり、SigningKey にもあらかじめ値が入らなくなりました。初期管理者アカウントを作成するには、初回起動の前に AdminUsername と AdminPassword を設定してください(AdminEmail は省略できますが、設定をお勧めします)。必須の値のどちらかが空でもサービスは起動しますが、管理者ユーザーは作成されません。そのため、値を設定して再起動するまで、Web アプリケーション(Data Center)にはそのアカウントでサインインできず、Babel Desktop には接続に使う管理者の API キーがありません。SigningKey を空のままにすると、起動時にランダムなキーが生成されますが、このキーは再起動のたびに生成し直され、インスタンス間で共有されません。本番環境では、必ず明示的な値を設定してください(たとえば、環境変数 BABEL_SERVICE_APPLICATION__SIGNINGKEY を使用します)。
- 変更を保存して Nano を終了するには、
Ctrl + Xを押し、次にYを押して変更を確定し、最後にEnterを押してファイルを保存します。
この手順で、appsettings.json ファイルを編集して Babel サービスを設定できました。更新された構成には、正しいデータベース接続の設定と、行ったその他のカスタマイズが含まれています。
Babel Licensing Service の構成ファイルについて詳しくは、構成のセクションを参照してください。
データベースを作成する
Babel Licensing Service に設定した接続文字列で指定されている「licenses」データベースを作成する必要があります。続いて「babel」ユーザーを作成し、データベースに対する権限を付与して、ユーザーの権限を確認します。
- ターミナルを開きます。
- 次のコマンドで、root ユーザーとして MariaDB コンソールにログインします。
sudo mariadb -u root -proot のパスワードの入力を求められます。
- MariaDB コンソールにログインしたら、次のコマンドを実行して、既存のデータベースをすべて一覧表示できます。
SHOW DATABASES;- 既存のユーザーをすべて一覧表示するには、次のクエリを実行します。
SELECT User FROM mysql.user;- 次のコマンドで「licenses」データベースを作成します。
CREATE DATABASE licenses;- 次のコマンドを実行して「babel」ユーザーを作成し、「licenses」データベースに対するすべての権限を付与します。
CREATE USER babel@localhost IDENTIFIED BY 'YourUniquePassword';
GRANT ALL PRIVILEGES ON licenses.* TO babel@localhost;
FLUSH PRIVILEGES;'YourUniquePassword' は、Babel Licensing Service の MySQL 接続文字列に設定したパスワードに置き換えます。
- 「babel」ユーザーに適切な権限があることを確認するには、次のステートメントを使用します。
SHOW GRANTS FOR babel@localhost;quit コマンドを入力して ENTER を押すと、MariaDB コンソールを終了できます。
この手順で、「licenses」データベースの作成、「babel」ユーザーの作成、データベースに対する権限の付与、ユーザーの権限の確認ができました。
Babel Licensing Service を起動する
Babel Licensing Service を起動するには、次の手順に従います。
ターミナルを開く
ターミナルウィンドウを開きます。
サービスのディレクトリに移動する
Babel Licensing Service があるディレクトリに移動します。たとえば、次のようにします。
cd /var/www/svc/babelサービスを実行する
次のコマンドを実行して、Babel Licensing Service を起動します。
dotnet Babel.Licensing.Service.dllすべてが正しく設定されていれば、サービスが起動する様子が表示されます。ターミナルのログには、appsettings.json ファイルで選択したログレベルに応じて、データベースのテーブルの作成など、サービスの初期化に関する情報が表示されます。
ターミナルのログにエラーや警告が出ていないか確認してください。問題がある場合は、構成、データベース接続の設定、権限を見直し、正しく設定されていることを確認します。
Babel Licensing Service が正常に起動すると、ライセンス管理の操作を処理し、アプリケーションにライセンスサービスを提供できる状態になります。
ターミナルを閉じた後も動作し続けるように、Babel Licensing Service をバックグラウンドプロセスとして実行するか、サービスマネージャーを設定することをお勧めします。
バックグラウンドプロセスとして設定する
Linux のサービスファイル(サービスユニットファイルとも呼ばれます)は、拡張子が「.service」の構成ファイルで、デーモンやサービスの動作を制御するために使用されます。このファイルは、サービスの名前、説明、実行コマンド、作業ディレクトリ、環境変数など、サービスに関するさまざまな設定とパラメーターを定義します。
Linux で Babel Licensing Service をシステムサービスとして設定するには、次の手順に従います。
サービスファイルを開く
ターミナルを開き、次のコマンドを実行して、サービスファイルを作成して編集します。
sudo nano /etc/systemd/system/babel.licensing.serviceサービスの構成を貼り付ける
次の構成をファイルに貼り付けます。
[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.targetサービスファイルを保存する
Ctrl+O を押してファイルを保存し、Ctrl+X を押してエディターを終了します。
サービスを起動する
次のコマンドを実行して、Babel Licensing Service を起動します。
sudo systemctl start babel.licensingサービスの状態を確認する
サービスの状態を確認するには、次のコマンドを使用します。
systemctl status babel.licensingこのコマンドは、エラーメッセージや警告を含め、サービスの現在の状態を表示します。
● 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 started自動起動を有効にする
既定では、サービスはサーバーの起動時に自動的に起動するようには設定されていません。サービスが自動的に起動するようにするには、次のコマンドを実行します。
sudo systemctl enable babel.licensingサービスを有効にすると、サーバーの再起動後に自動的に起動するようになります。
この手順で、Linux で Babel Licensing Service を systemd サービスとして設定できました。サービスはシステムの起動時に自動的に起動し、systemctl コマンドで管理できます。