このセクションの内容
License Server には、次の 2 つのディストリビューションがあります。
どちらのディストリビューションにも、User Administration モジュール (pstsec) が含まれます。このモジュールを使用して Parasoft アプリケーションおよびライセンスへのアクセスを管理できます。
License Server のホスト マシンは、以下のハードウェア要件を満たす必要があります。
セルフデプロイ形式のディストリビューションにはその他の要件はありません。
.war ディストリビューションをデプロイするには、以下の要件を満たす必要があります。
IPv4 および IPv6 アドレスがサポートされています。
License Server のディストリビューションには、app ディレクトリと data ディレクトリがあります。この構成により、Docker などのコンテナー化されたシステムに License Server をデプロイする際の信頼性が高まります。
startLS
スクリプトを実行します。License Server はインストール パッケージ付属の Tomcat サーバーで実行されます。License Server を停止するには、license-server ディレクトリにある stopLS スクリプトを実行します。
上記のとおりセルフデプロイ形式の License Server ディストリビューションをインストールするのに加えて、License Server の Windows サービスをインストールできます。
installLSService
スクリプトを実行します。すると、<LS_INSTALL>/app ディレクトリに Windows Service Manager が使用する実行モジュールが作成され、ParasoftLicenseServerService
という 新しい Windows サービスが構成されます。サービスの表示名は Parasoft License Server Service で、スタートアップの種類は「自動」です。その後、サービスが起動されます。
サービスを削除するには、<LS_INSTALL>/app ディレクトリにある uninstallLSService
スクリプトを管理者として実行します。
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) を設定することを推奨します。
Parasoft は、顧客の利便性のため、Docker Hub で公式の Docker イメージを公開しています。詳細なインストール手順は readme に記載されています。https://hub.docker.com/r/parasoft/lss を参照してください。
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 環境を作成するには、まず、シークレット (任意)、ボリューム、ポッド、サービス (任意) を定義した 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
であることに注意してください。
異なるマシンに Parasoft ソフトウェアをインストールし、USB HASP キーを使用して License Server に接続する際にマシン ID を提示できます。USB ドングルは、License Server に一定のマシン ID を提示するため、Parasoft に新しいライセンスを請求せずにハードウェアの他の部分を変えることができます。詳細は Parasoft 製品担当者にお問い合わせください。
stopLS.bat ファイルをエディターで開き、JAVA_OPTS 設定に -DuseExternalLock=true
引数を追加します。
set JAVA_OPTS=%JAVA_OPTS% -DuseExternalLock=true |
USB HASP キーを削除すると、マシン ID は本来の ID に戻ります。結果として、License Server からライセンスを取得できなくなります。
stopLS.sh ファイルをエディターで開き、JAVA_OPTS 設定に -DuseExternalLock=true
引数を追加します。
export JAVA_OPTS=%JAVA_OPTS% -DuseExternalLock=true |
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 |
USB HASP キーを削除すると、マシン ID は本来の ID に戻ります。結果として、License Server からライセンスを取得できなくなります。