Windows
このセクションでは、Babel Licensing Service を Windows 11 にインストールする手順を順を追って説明します。
この手順に従って、Windows 11 に Babel Licensing Service をインストールして設定します。
前提条件
Babel Licensing Service を Windows 11 に正しくインストールするには、次の前提条件を満たしている必要があります。
- 最新バージョンにアップデートされた Windows 11
- Microsoft SQL Server、または MySQL/MariaDB(.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) - インストールスクリプトを実行する場合は、バージョン 7 以降の PowerShell
インストールスクリプト
PowerShell スクリプト BabelLicensingService.ps1 は、このセクションで説明する Windows 環境への Babel Licensing Service のインストールと設定を自動化するためのものです。
このスクリプトは、インストールを始める前に、管理者権限、適切な PowerShell のバージョン、MariaDB の CLI コマンドなどの前提条件が満たされていることを確認します。サービスのインストールと、その状態の照会ができます。
インストール中、スクリプトは、インストール用 ZIP の展開、ライセンスファイルのコピー、データベースの作成、接続文字列を正しく設定するための appsettings.json の変更、適切な構成でのサービスのインストールなどの作業を行うため、手動でのセットアップで起こりがちなミスを避けられます。
BabelLicensingService.ps1 スクリプトを使用するには、次の手順に従います。
スクリプトをダウンロードする
スクリプトをこちらのリンク からダウンロードします。
スクリプトを一時フォルダーにコピーする
ダウンロードしたスクリプトを一時フォルダーにコピーします。
サービスの zip とライセンスファイルを追加する
Babel サービスの zip アーカイブ(名前は babel_service_net100_x.y.z.w.zip で、x.y.z.w はバージョンです)とライセンスファイル(babel.licenses)を、スクリプトと同じ一時フォルダーに置きます。
スクリプトを実行する
一時フォルダーから BabelLicensingService.ps1 スクリプトを実行して、インストールを開始します。
スクリプトを実行しようとすると、次のエラーが発生することがあります。
The file C:\Projects\BabelSvc\BabelLicensingService.ps1 is not digitally signed. You cannot run this script on the current system.これを解決するには、次のコマンドを実行して実行ポリシーを制限の緩いものに変更し、スクリプトを実行できるようにします。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted実行ポリシーを「Unrestricted」に設定すると、システムがセキュリティ上のリスクにさらされる可能性があります。信頼できる提供元のスクリプトだけを実行し、スクリプトの終了後は、ポリシーをより安全な設定に戻すことを検討してください。
BabelLicensingService.ps1 スクリプトを使用しない場合は、このまま読み進めてください。サービスを手動でセットアップする手順を順を追って説明します。
ファイルのセットアップ
Babel Licensing Service をセットアップするには、提供された ZIP ファイル babel_service_net100_x.y.z.w.zip から、必要なサービスのアセンブリと構成を、Windows コンピューターの適切なフォルダーに展開する必要があります。ここでは、Windows のエクスプローラーを使って ZIP ファイルを C:\BabelSvc フォルダーに展開する手順を説明します。
エクスプローラーで、babel_service_net100_x.y.z.w.zip を保存したフォルダーに移動します。
アーカイブを右クリックする
babel_service_net100_x.y.z.w.zip ファイルを右クリックします。
「Extract All」を選択する
コンテキストメニューから Extract All...(すべて展開)を選択します。
展開先フォルダーを設定する
「Extract Compressed (Zipped) Folders」ダイアログボックスで、展開先フォルダーとして C:\BabelSvc を入力します。
ファイルを展開する
Extract(展開)をクリックします。
これで、babel_service_net100_x.y.z.w.zip に含まれていた Babel Licensing Service のファイルが、C:\BabelSvc フォルダーに展開されました。
ライセンスファイル
ライセンスファイル babel.licenses を展開先フォルダーにコピーします。これで、サービスが必要なライセンス情報にアクセスできるようになります。
エディションはライセンスファイルで決まります。Data Center ライセンスの場合、サービスのアドレスで Web アプリケーションが提供されます。Server ライセンスの場合、そのアドレスにはエディションの比較を含むアップグレードページが表示されますが、サービス、その API、Babel Desktop は引き続き動作します。アップグレードするには、babel.licenses を置き換えてサービスを再起動します。再インストールするものはありません。
データベースの作成
Babel Licensing Service をセットアップするときは、専用のデータベースとユーザーを作成する必要があります。ここでは、Microsoft SQL Server と MySQL MariaDB で Babel Licensing のデータベースを作成する手順を説明します。
Microsoft SQL Server
Babel Licensing Service のライセンスを SQL Server で管理するには、専用のデータベースを用意する必要があります。ここでは、問題なく運用できるようにデータベースを設定する手順を説明します。
SQL Server Management Studio(SSMS)を起動する
- お使いの SQL Server インスタンスに接続します。
- SQL コマンドを実行するための新しいクエリウィンドウを開きます。
次の SQL コマンドを実行してデータベースを作成し、ユーザーを設定する
-- Create the licenses database
CREATE DATABASE licenses;
GO
-- Create a new SQL Server login for the Babel Licensing Service
CREATE LOGIN babel WITH PASSWORD = 'YourUniquePassword';
GO
-- Create a database user linked to the login
USE licenses;
CREATE USER babel FOR LOGIN babel;
GO
-- Grant the necessary privileges to the user
ALTER ROLE db_owner ADD MEMBER babel;
GOMySQL MariaDB
HeidiSQL は、高機能で使いやすいオープンソースのデータベース管理ツールで、MariaDB と組み合わせて使うと、この作業が簡単になります。ここでは、HeidiSQL と MariaDB でデータベースを作成する手順を説明します。
まず HeidiSQL を起動し、SQL タブに切り替えて、次の SQL コマンドを実行します。
CREATE DATABASE licenses;
CREATE USER babel@localhost IDENTIFIED BY 'YourUniquePassword';
GRANT ALL PRIVILEGES ON licenses.* TO babel@localhost;
FLUSH PRIVILEGES;上記の手順を実行したら、licenses データベースが正しく作成され、babel ユーザーに適切な権限が割り当てられていることを確認します。確認するには、babel ユーザーの資格情報でログインし、licenses データベースにアクセスしてみます。
Babel Licensing Service の設定
Babel Licensing Service の設定は、サービスが正しく機能し、お使いの環境に統合されるようにするための重要な手順です。展開先フォルダーにある appsettings.json ファイルを変更し、要件に合わせて各種の設定を調整します。
appsettings.json の編集
展開先フォルダーに移動し、「appsettings.json」ファイルを探します。お好みのテキストエディターでファイルを開き、Babel Licensing のデータベースのセットアップ用に選択したデータベースサーバーに合わせて、データベースの構成を更新します。
Microsoft SQL Server
Babel Licensing のデータベースを Microsoft SQL Server にセットアップするには、Database の Provider と SQLServer の接続文字列を次のように設定します。
"Database": {
"Provider": "SQLServer"
},
"ConnectionStrings": {
"SQLServer": "Data Source=SQLSERVER_INSTANCE_NAME;User Id=babel;Password=YourUniquePassword;Encrypt=false;Initial Catalog=licenses",
"MySQL": "",
"SQLite": ""
},SQLSERVER_INSTANCE_NAME は、SQL Server オブジェクトエクスプローラーまたは SQL Server Management Studio(SSMS)の接続に表示される SQL Server インスタンスの名前に置き換えます。
YourUniquePassword には、Microsoft SQL Server の babel ログインに設定したパスワードを使用します。
MySQL MariaDB
Babel Licensing のデータベースの作成時に MySQL/MariaDB を選択した場合は、Database の Provider と MySQL の接続文字列を次のように設定します。
"Database": {
"Provider": "MySQL"
},
"ConnectionStrings": {
"SQLServer": "",
"MySQL": "Server=127.0.0.1;User=babel;Password=YourUniquePassword;Database=licenses",
"SQLite": ""
},ここでは、Database の下の Provider が MySQL に設定され、MySQL の接続文字列に適切なサーバーアドレス、ユーザー、パスワード、データベース名が正しく設定されていることを確認します。YourUniquePassword は、MariaDB の babel ユーザーに設定した実際のパスワードに置き換えます。
.NET 10 では、サービスは Microting.EntityFrameworkCore.MySql プロバイダーを使用します。これは、Entity Framework Core 10 をサポートする、MIT ライセンスの Pomelo のフォークです。それより前のフレームワークでは Pomelo を使用します。プロバイダー名 MySQL、接続文字列、スキーマは、どのフレームワークでも同じです。
Kestrel の設定
EndpointDefaults セクションでは Protocols が Http1AndHttp2 に設定されており、サーバーは HTTP1 と HTTP2 の両方のプロトコルで通信できます。これにより、さまざまな種類のクライアントに柔軟に対応でき、互換性も確保されます。
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1AndHttp2"
},
"Endpoints": {
"gRPC": {
"Url": "http://*:5005",
"Protocols": "Http2"
}
}
},Endpoints セクションでは、サービスの個別のエンドポイントを定義します。ここでは、gRPC という名前のエンドポイントの Url が http://*:5005 に設定されており、サービスは利用可能なすべてのネットワークインターフェイスのポート 5005 で待ち受けます。このエンドポイントの Protocols は Http2 に設定されており、gRPC 通信に最適化されています。
Kestrel を設定するときは、指定した URL とプロトコルがサービスの要件とネットワーク環境に合っていることを確認し、サービスが期待どおりの動作とパフォーマンスになるよう、必要に応じて調整してください。
Serilog の設定
続いて、Serilog セクションでログの設定を行います。
"Serilog": {
"Using": ["Serilog.Sinks.Console", "Serilog.Sinks.File"],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Grpc": "Warning"
}
},
"Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
"WriteTo": [
{"Name": "Console"},
{
"Name": "File",
"Args": {
"path": "C:\\BabelSvc\\log.txt",
"rollingInterval": "Day"
}
}
]
},このセクションでは、ログに関する問題を避けるため、特に Babel Licensing Service を Windows サービスとして実行する場合は、ログファイルの完全パスを指定してください。たとえば、"path": "C:\\BabelSvc\\log.txt" と指定すると、ログファイルは C:\BabelSvc フォルダーに保存されます。
アプリケーションの設定
最後に、Application セクションで LicenseFile、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"
},ここでは、LicenseFile を babel.licenses に設定します。SigningKey は、Secret Token Key を独自のキーに置き換えてカスタマイズします。このキーは、アプリケーションクライアントと Babel Licensing Service の間の通信を保護します。TokenExpiration の値は、要件に合わせて調整し、トークンの有効期間を設定します。
11.7.0 以降:サービスには admin / admin という既定の資格情報が含まれなくなり、SigningKey にもあらかじめ値が入らなくなりました。初期管理者アカウントを作成するには、初回起動の前に AdminUsername と AdminPassword を設定してください(AdminEmail は省略できますが、設定をお勧めします)。必須の値のどちらかが空でもサービスは起動しますが、管理者ユーザーは作成されません。そのため、値を設定して再起動するまで、Web アプリケーション(Data Center)にはそのアカウントでサインインできず、Babel Desktop には接続に使う管理者の API キーがありません。SigningKey を空のままにすると、起動時にランダムなキーが生成されますが、このキーは再起動のたびに生成し直され、インスタンス間で共有されません。本番環境では、必ず明示的な値を設定してください(たとえば、環境変数 BABEL_SERVICE_APPLICATION__SIGNINGKEY を使用します)。
Babel Licensing Service を起動する
PowerShell で Babel Licensing Service を起動するには、次の手順に従います。
PowerShell を開く
スタートメニューから PowerShell を開きます。
インストールフォルダーに移動する
cd コマンドで、Babel.Licensing.Service.exe があるフォルダーに移動します。通常は次のとおりです。
cd C:\BabelSvcサービスの実行可能ファイルを実行する
次のコマンドで実行可能ファイルを実行します。
.\Babel.Licensing.Service.exe出力されるメッセージを見て、サービスがエラーなく起動することを確認します。問題が発生した場合は、サービスのドキュメントでトラブルシューティングを参照してください。
サービスの起動時に、サービスによるネットワーク通信の許可を求める Windows ファイアウォールのポップアップが表示されることがあります。「Allow access」(アクセスを許可する)を選択してください。選択しないと、サービスはネットワーク上の他のシステムやインターネットと通信できません。
Windows サービスとしての実行
Babel Licensing Service をバックグラウンドで効率よく動作させ、システムの起動時から利用できるようにするには、Windows サービスとして実行することをお勧めします。サービスとして実行すると、Babel Licensing Service はユーザーセッションとは無関係に動作し、中断なく利用できます。
これには、PowerShell の New-Service コマンドを使用できます。このコマンドは、レジストリとサービスデータベースに Windows サービスの新しいエントリを作成します。PowerShell で New-Service を使用するコマンドは次のとおりです。
New-Service -Name "Babel.Licensing" -BinaryPathName "C:\BabelSvc\Babel.Licensing.Service.exe" -DisplayName "Babel Licensing" -StartupType "Automatic" -Description "Babel licensing and reporting network services."このコマンドでは、次のように指定しています。
-Name "Babel.Licensing"は、サービスの名前を指定します。-BinaryPathName ".\Babel.Licensing.Service.exe"は、サービスの実行可能ファイルのパスを定義し、現在のフォルダーを指しています。-DisplayName "Babel Licensing"は、サービスに表示名を割り当てます。これは、「Services」アプリケーションやその他のユーザーインターフェイスに表示される名前です。-StartupType "Automatic"は、サービスがシステムとともに自動的に起動するように設定します。-Description "Babel licensing and reporting network services."は、サービスの役割と機能がわかる説明を指定します。
サービスを正しく作成して構成できるように、このコマンドは管理者権限のある PowerShell セッションで実行してください。コマンドを実行すると、Babel Licensing Service が Windows サービスとしてセットアップされ、システム上で継続的に動作して利用できる状態になります。
サービスを起動する
Start-Service -Name "Babel.Licensing"サービスを停止する
Stop-Service -Name "Babel.Licensing"サービスの状態を取得する
Get-Service -Name "Babel.Licensing" サービスをアンインストールする
Get-Service -Name "Babel.Licensing" | Remove-Serviceこれらのコマンドが正しく実行されるように、必ず管理者権限のある PowerShell セッションで実行してください。