このセクションの内容
はじめに
License Server には、次の 2 つのディストリビューションがあります。
- 専用の Apache Tomcat サーバーとともにパッケージされたセルフデプロイ形式のディストリビューション
- 既存のサーブレット コンテナーにデプロイするための Web アーカイブ (.war) 形式のディストリビューション
どちらのディストリビューションにも、User Administration モジュール (pstsec) が含まれます。このモジュールを使用して Parasoft アプリケーションおよびライセンスへのアクセスを管理できます。
ホストの要件
License Server のホスト マシンは、以下のハードウェア要件を満たす必要があります。
- RAM: 2GB
- ディスク容量: 1GB
- OS: 以下をはじめとする 64-bit OS がサポートされています。
- Windows Server 2019
- Windows Server 2022
- Windows 10
- Windows 11
- Linux の 64-bit Java Runtime Environment をサポートする ディストリビューション (たとえば Ubuntu 14.04, 14.10、または RHEL Server 6.x)。
セルフデプロイ形式のディストリビューションにはその他の要件はありません。
Web アーカイブ デプロイメントの要件
.war ディストリビューションをデプロイするには、以下の要件を満たす必要があります。
- ホスト マシンは「ホストの要件」を満たす必要があります。
- Linux or Windows (64-bit のみ)
- ポート 8443 で SSL 通信を行うよう構成された Tomcat 9.0.xTomcat の構成の詳細は、次の Apache Tomcat のドキュメントを参照してください: Apache Tomcat SSL/TLS Configuration HOW-TO topic
- Java (License Server に付属)
IP アドレスの形式
IPv4 および IPv6 アドレスがサポートされています。
License Server の構成
License Server のディストリビューションには、app ディレクトリと data ディレクトリがあります。この構成により、Docker などのコンテナー化されたシステムに License Server をデプロイする際の信頼性が高まります。
- app ディレクトリには、Tomcat サーバー、起動スクリプトおよび停止スクリプト、License Server の実行に必要なその他のファイルがあります。
- data ディレクトリには、ログ ファイル、設定ファイル、意図したとおりに License Server を実行するためのその他のファイルがあります。
セルフデプロイ形式の License Server のインストール
- インストール パッケージを任意の場所に展開します。<LS_INSTALL>/app ディレクトリには、JRE、Tomcat、サーバー起動スクリプトおよび停止スクリプトがあります。
- License Server を起動するには、管理者として
startLS
スクリプトを実行します。License Server はインストール パッケージ付属の Tomcat サーバーで実行されます。 - ブラウザーを開いて以下のいずれかの URL で License Server インターフェイスにアクセスします。
- http://<HOST>:8080/licenseserver
- https://<HOST>:8443/licenseserver
- デフォルトのユーザー名およびパスワード (admin/admin) を使用して License Server にログインします。ログイン後、デフォルトを変更することを推奨します。
License Server を停止するには、license-server ディレクトリにある stopLS スクリプトを実行します。
License Server Windows サービスのインストール
上記のとおりセルフデプロイ形式の License Server ディストリビューションをインストールするのに加えて、License Server の Windows サービスをインストールできます。
- 上記のセルフデプロイ形式の License Server ディストリビューションをインストールしたときに作成される <LS_INSTALL>/app ディレクトリに移動します。
- 管理者として
installLSService
スクリプトを実行します。
すると、<LS_INSTALL>/app ディレクトリに Windows Service Manager が使用する実行モジュールが作成され、ParasoftLicenseServerService
という 新しい Windows サービスが構成されます。サービスの表示名は Parasoft License Server Service で、スタートアップの種類は「自動」です。その後、サービスが起動されます。
サービスを削除するには、<LS_INSTALL>/app ディレクトリにある uninstallLSService
スクリプトを管理者として実行します。
カスタム Tomcat サーバーに License Server をデプロイする
Parasoft License Server は、Java 11 でテストおよび保証されています。Parasoft License Server をデプロイするには、カスタム Tomcat サーバーが Java 11 で実行されている必要があります。
ディストリビューション アーカイブを展開し、licenseserver.war および pstsec.war ファイルを <TOMCAT>/webapps ディレクトリにコピーします。Tomcat を開始するとアプリケーションがデプロイされます。
https://<host>:8443/licenseserver の License Server にアクセスし、デフォルトのユーザー名とパスワード (admin/admin) でログインします。ログイン後、デフォルトを変更することを推奨します。
https://<host>:8443/pstsec の User Administration にアクセスし、デフォルトのユーザー名とパスワード (admin/admin) でログインします。ログイン後、デフォルトを変更することを推奨します。
Tomcat コネクターの maxHttpHeaderSize
属性のデフォルト値が適切ではない場合があります。maxHttpHeaderSize
に少なくとも 16384 (16 KB) を設定することを推奨します。
Docker への Licenser Server のデプロイ
Parasoft は、顧客の利便性のため、Docker Hub で公式の Docker イメージを公開しています。詳細なインストール手順は readme に記載されています。https://hub.docker.com/r/parasoft/lss を参照してください。
Kubernetes での Licenser Server のデプロイ
Kubernetes に Licenser Server をデプロイするには、次の手順を実行します。
このバージョンでは、Kubernetes に複数の Licenser Server をデプロイすることはサポートされていません。サポートは、単一ノードの Kubernetes クラスターで動作する License Server の単一インスタンスに限定されます。
要件
まず、Kubernetes クラスターが必要です。クラスターを開始したら、Licenser Server ポッドおよび関連リソースが必要とする名前空間、サービス アカウント、パーミッションを作成します。このために使用する yaml ファイルの例を以下に示します。
apiVersion: v1 kind: Namespace metadata: name: parasoft-namespace --- # Stable access for clients to license server kind: Service apiVersion: v1 metadata: name: parasoft-service namespace: parasoft-namespace spec: selector: tag: parasoft-service ports: - name: https port: 443 protocol: TCP --- apiVersion: v1 kind: ServiceAccount metadata: name: parasoft-account namespace: parasoft-namespace --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: parasoft-namespace-role namespace: parasoft-namespace rules: - apiGroups: - "*" resources: - "*" verbs: - "*" --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: parasoft-namespace-bind namespace: parasoft-namespace roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: parasoft-namespace-role subjects: - kind: ServiceAccount name: parasoft-account namespace: parasoft-namespace
Licenser Server 環境を作成する前に、yaml ファイルを使用して必要な名前空間、サービス アカウント、パーミッションを作成します。
kubectl create -f parasoft-permissions.yaml
コンソールに以下のように表示されるはずです。
namespace/parasoft-namespace created service/parasoft-service created serviceaccount/parasoft-account created role.rbac.authorization.k8s.io/parasoft-namespace-role created rolebinding.rbac.authorization.k8s.io/parasoft-namespace-bind created
提供された設定に定義されている parasoft-namespace 名前空間は必須であり、parasoft-permissions.yaml を文書化されているとおりに使用することを推奨します。License Server Pod が使用するサービス アカウントは parasoft-namespace 名前空間へのアクセスを必要とします。そのため、提供された権限設定で定義されたリソースに対して異なる名前を持つカスタムの権限設定を作成する場合は、parasoft-namespace という名前の名前空間も作成する必要があります。この名前空間の要件が満たされていない場合、Licenser Server はインストールされているライセンスを無効として扱います。
カスタム キーストア
カスタム キーストアをセットアップするには、".keystore" および "server.xml" ファイル用のコンフィギュレーション マップを作成する必要があります。次のコマンドは、カスタム ".keystore" および "server.xml" ファイル用のファイル マッピングが記述された "keystore-cfgmap" というコンフィギュレーション マップを作成します。この例では、各ファイル マッピングにキーが割り当てられています。.keystore ファイル用の keystore と server.xml ファイル用の server-config です。ファイル マッピングごとにキーを割り当てることは必須ではありませんが、ファイル名をキーにしたくない場合は、このようにすると便利です。
~$ kubectl create configmap keystore-cfgmap --from-file=keystore=/path/to/.keystore --from-file=server-config=/path/to/server.xml configmap/keystore-cfgmap created
License Server 環境の作成
License Server 環境を作成するには、まず、シークレット (任意)、ボリューム、ポッド、サービス (任意) を定義した yaml ファイルが必要です。シークレットは、リポジトリから License Server イメージを取得するために使用されます。ポッドは、データを永続化するボリュームとコンテナーの正常性を確認する liveness プローブを備えた License Server コンテナーをセットアップします。サービスは、ノードでポートを割り当て、ポッド内のポートにマッピングすることで、外部クライアントから License Server にアクセスできるようにします。下記は yaml ファイルのサンプル parasoft-lss.yaml です。このサンプルは NFS ボリュームを使用しますが、これは必須ではありません。ニーズに合わせたボリューム タイプを使用できます。
apiVersion: v1 kind: Pod metadata: name: lss namespace: parasoft-namespace labels: app: LSS spec: volumes: - name: lss-data nfs: server: NFS_SERVER_HOST path: /lss/ # Uncomment section below if you are setting up a custom keystore; you will also need to uncomment out the associated volumeMounts below # - name: keystore-cfgmap-volume # configMap: # name: keystore-cfgmap containers: - name: lss-server image: LSS_DOCKER_IMAGE # To inject JVM arguments into the container, specify the "env" property as in the example below, which injects LSS_JAVA_OPTS # env: # - name: LSS_JAVA_OPTS # value: "-Dparasoft.use.license.v2=true" imagePullPolicy: Always ports: - containerPort: 8080 name: "http-server" - containerPort: 8443 name: "https-server" volumeMounts: - mountPath: "/usr/local/parasoft/license-server/data" name: lss-data # Uncomment section below if you are setting up a custom keystore. Note that updates made to these files will not be reflected inside the container once it's been deployed; you will need to restart the container for it to contain any updates. # - name: keystore-cfgmap-volume # mountPath: "/usr/local/parasoft/license-server/tomcat/conf/.keystore" # subPath: keystore # - name: keystore-cfgmap-volume # mountPath: "/usr/local/parasoft/license-server/tomcat/conf/server.xml" # subPath: server-config # To prevent liveness probe failures on environments with low or overly taxed RAM/CPU, we recommend increasing the timeout seconds livenessProbe: exec: command: - healthcheck.sh initialDelaySeconds: 120 periodSeconds: 60 timeoutSeconds: 30 failureThreshold: 5 restartPolicy: Always serviceAccountName: parasoft-account imagePullSecrets: - name: YOUR_SECRET --- apiVersion: v1 kind: Service metadata: name: lss namespace: parasoft-namespace spec: type: NodePort selector: app: LSS ports: - port: 8080 name: PORT_NAME_1 nodePort: XXXXX - port: 8443 name: PORT_NAME_2 nodePort: XXXXX # SERVICE CONFIG NOTES: # 'name' can be whatever you want # 'nodePort' must be between 30000-32768 # 'spec.selector' must match 'metadata.labels' in pod config
yaml ファイルを使用した LSS 環境の作成
kubectl create -f parasoft-lss.yaml
Web ブラウザで UI にアクセスするには、サービス定義で割り当てたノード ポートをアドレスとして使用します (たとえば、NODE_HOST:NODE_PORT など)。
コンテナーに JVM 引数をインジェクトし、そのステータスを検証したい場合、次のコマンドを実行します。
kubectl exec <POD_NAME> -c <CONTAINER_NAME> -- printenv
カスタム トラストストア
Kubernetes 環境でのカスタム トラストストアの使用は、上で説明したカスタム キーストアの使用に似ています。カスタム キーストアを使用するために手順を適宜調整します。トラストストアの場所は /usr/local/parasoft/license-server/jre/lib/security/cacerts
であることに注意してください。
HASP キーのサポート
異なるマシンに Parasoft ソフトウェアをインストールし、USB HASP キーを使用して License Server に接続する際にマシン ID を提示できます。USB ドングルは、License Server に一定のマシン ID を提示するため、Parasoft に新しいライセンスを請求せずにハードウェアの他の部分を変えることができます。詳細は Parasoft 製品担当者にお問い合わせください。
Windows での HASP キーの有効化
- <LS_INSTALL>/app ディレクトリにある stopLS.bat スクリプトを実行して Tomcat Server を停止します。
stopLS.bat ファイルをエディターで開き、JAVA_OPTS 設定に
-DuseExternalLock=true
引数を追加します。set JAVA_OPTS=%JAVA_OPTS% -DuseExternalLock=true
- <LS_INSTALL>/app ディレクトリにある startLS.bat スクリプトを実行して Tomcat Server を起動します。
USB HASP キーを削除すると、マシン ID は本来の ID に戻ります。結果として、License Server からライセンスを取得できなくなります。
Linux での HASP キーの有効化
- <LS_INSTALL>/app ディレクトリにある stopLS.sh スクリプトを実行して Tomcat Server を停止します。
stopLS.sh ファイルをエディターで開き、JAVA_OPTS 設定に
-DuseExternalLock=true
引数を追加します。export JAVA_OPTS=%JAVA_OPTS% -DuseExternalLock=true
- デフォルトでは、USB デバイスは権限 66* を持ちますが、USB HASP キーは権限 666 を必要とします。Linux 上で USB デバイスに対応する udev.rules ファイルを探し、
MODE="0666"
を使用するようusb_device
エントリを変更します。 たとえば Ubuntu 18.04 では、/lib/udev/rules.d/ ディレクトリにある 50-udev-default.rules ファイルに設定があります。 次のコマンドを実行します。
udevadm control --reload-rules
マシンに USB HASP キーを挿入します。USB HASP キーがすでに挿入されている場合、root ユーザーで次のコマンドを実行し、プログラム的にキーを挿入します。
udevadm trigger
- <LS_INSTALL>/app ディレクトリにある startLS.sh スクリプトを実行して Tomcat Server を起動します。
USB HASP キーを削除すると、マシン ID は本来の ID に戻ります。結果として、License Server からライセンスを取得できなくなります。