第3章 イミュータブルサーバーを使用した環境
事前に読み込んだサービスで Decision Server を実行する Pod を 1 つまたは複数含めた環境をデプロイできます。必要に応じて、Decision Server Pod ごとに個別にスケーリング可能です。
この場合には、イメージ作成時に Decision Server にサービス (KJAR ファイル) を読み込む必要があります。実行中の Decision Server に対して、サービスの読み込みや読み込み解除はできません。このアプローチの利点は、サービスが含まれる Decision Server は他のコンテナー化されたサービスのように実行され、特別な管理が必要ない点です。Decision Server は、OpenShift 環境で他の Pod のように実行され、必要に応じて、コンテナーベースの統合ワークフローを使用できます。
Decision Server イメージを作成する場合は、S2I (Source to Image) を使用してサービスをビルドする必要があります。サービスのソースおよびその他のビジネスアセットを使用して Git リポジトリーを提供します。Business Central でサービスまたはアセットを開発する場合は、S2I ビルドの個別のリポジトリーにソースをコピーします。Business Central でサービスまたはアセットを開発する場合は、S2I ビルドの個別のリポジトリーにソースをコピーします。OpenShift は自動的にソースをビルドし、Decision Server イメージにサービスをインストールして、このサービスでコンテナーを起動します。
オーサリングサービスに Business Central を使用する場合は、プロセスのソースを展開して、S2I ビルドで使用する別の Git リポジトリー (GitHub や、GitLab のオンプレミスインストールなど) に配置できます。
または、KJAR ファイルとしてすでにビルドされているサービスを使用して同様の Decision Server デプロイメントを作成できます。このような場合には、Maven リポジトリーにサービスを提供する必要があります。Business Central のビルドインのリポジトリーも独自のリポジトリーも使用可能です (例: Nexus デプロイメント)。KJAR ファイルは Pod の起動時に Maven リポジトリーから取得し、その後更新も変更もされません。このファイルは再起動時や Pod のスケーリング時に必ず取得されるので、デプロイメントをイミュータブルに保つには、Maven リポジトリーで変更がないようにする必要があります。
イミュータブルのイメージを作成する方法はいずれも、イメージの管理が必要ありません。サービスの新規バージョンを使用する場合は、新規イメージをビルドできます。
3.1. サービスソースコードからのイミュータブル Decision Server のデプロイ
サービスのソースコードからイミュータブル Decision Server f をデプロイするには、rhdm73-prod-immutable-kieserver.yaml
テンプレートファイルを使用します。製品の配信可能ファイル rhdm-7.3.0-openshift-templates.zip
からこのファイルを展開できます。Software Downloads ページからこのファイルをダウンロードできます。
イミュータブル Decision Server をデプロイする場合は、デプロイメントの手順で、このサーバー上にあるサービスのソースコードを取得し、これらのサービスをビルドして、サーバーイメージに組み込みます。
手順
以下の方法を使用してテンプレートをデプロイします。
-
OpenShift Web UI では、Add to Project
Import YAML / JSON を選択し、 rhdm73-prod-immutable-kieserver.yaml
ファイルを選択またはその内容を貼り付けます。Add Template ウィンドウで、Process the template が選択されていることを確認し、Continue をクリックします。 OpenShift コマンドラインコンソールを使用するには、以下のコマンドラインを準備します。
oc new-app -f <template-path>/rhdm73-prod-immutable-kieserver.yaml -p KIE_SERVER_HTTPS_SECRET=kieserver-app-secret
このコマンドラインで以下を行います。
-
<template-path>
を、ダウンロードしたテンプレートファイルのパスに置き換えます。 -
必要なパラメーターに設定するために必要な数だけ
-p PARAMETER=value
ペアを使用します。テンプレートファイルを表示して、すべてのパラメーターの説明を確認します。
-
-
OpenShift Web UI では、Add to Project
必要に応じて以下のパラメーターを設定します。
-
KIE Server キーストアのシークレット名 (
KIE_SERVER_HTTPS_SECRET
): 「Decision Server にシークレットの作成」で作成した Decision Server のシークレットの名前。 -
アプリケーション名 (
APPLICATION_NAME
): OpenShift アプリケーションの名前。Decision Server のデフォルト URL で使用されます。OpenShift はアプリケーション名を使用して、デプロイメント設定、サービス、ルート、ラベル、およびアーティファクトの個別のセットを作成します。同じテンプレートを同じプロジェクトで使用して複数のアプリケーションをデプロイすることもできますが、その場合はアプリケーション名を同じにすることはできません。また、アプリケーション名で、Decision Server が参加する Business Central でサーバー設定 (サーバーテンプレート) の名前が決まります。複数の Decision Server をデプロイする場合には、サーバーごとに異なるアプリケーション名を指定する必要があります。 -
KIE Server Certificate Name (
KIE_SERVER_HTTPS_NAME
): 「Decision Server にシークレットの作成」 で作成したキーストアの証明書名。 -
KIE Server Keystore Password (
KIE_SERVER_HTTPS_PASSWORD
): 「Decision Server にシークレットの作成」 で作成したキーストアのパスワード。 -
KIE Server Container Deployment (
KIE_SERVER_CONTAINER_DEPLOYMENT
): ソースからビルドしたデシジョンサービス (KJAR ファイル) の識別情報。フォーマットは<containerId>=<groupId>:<artifactId>:<version>
になります。区切り記号|
を使用して 2 つ以上の KJAR ファイルを指定できます (例:containerId=groupId:artifactId:version|c2=g2:a2:v2
)。Maven ビルドプロセスは、Git リポジトリーのソースからこのようなファイルをすべて生成する必要があります。 -
Git Repository URL (
SOURCE_REPOSITORY_URL
): デシジョンサービスのソースを含む Git リポジトリーの URL。 -
Git Reference (
SOURCE_REPOSITORY_REF
): Git リポジトリーのブランチ。 -
Context Directory (
CONTEXT_DIR
): Git リポジトリーからダウンロードしたプロジェクトのソースへのパス。 -
アーティファクトディレクトリー (
ARTIFACT_DIR
): Maven のビルドに成功したあとに必要なバイナリーファイル (KJAR ファイル、およびその他の必要なファイル) を含むプロジェクトのパス。通常、このディレクトリーはビルドのターゲットディレクトリーです。ただし、Git リポジトリーのこのディレクトリーにビルド済みのバイナリーを提供できます。 -
ImageStream 名前空間 (
IMAGE_STREAM_NAMESPACE
): イメージストリームが利用可能な名前空間。OpenShift 環境でイメージストリームが利用可能な場合 (「イメージストリームとイメージレジストリーの可用性確認」 を参照) は、namespace がopenshift
になります。イメージストリームファイルをインストールしている場合は、名前空間が OpenShift プロジェクトの名前になります。
-
KIE Server キーストアのシークレット名 (
お使いのビルドに公開されている Maven ツリーで利用できない依存関係があり、別のリポジトリーが必要な場合は、パラメーターを設定してこのリポジトリーを提供します。
-
Maven リポジトリーの URL (
MAVEN_REPO_URL
): Maven リポジトリーの URL。 -
Maven repository username (
MAVEN_REPO_USERNAME
): Maven リポジトリーのユーザー名。 -
Maven リポジトリーのパスワード (
MAVEN_REPO_PASSWORD
): Maven リポジトリーのパスワード。
-
Maven リポジトリーの URL (
OpenShift 環境に、公開インターネットへの送信アクセスが設定されていない場合には、以下のパラメーターを設定します。
-
Maven ミラー URL (
MAVEN_MIRROR_URL
): 「オフラインで使用する Maven ミラーリポジトリーの用意」 で設定した Maven ミラーリポジトリーの URL。この URL は、OpenShift 環境の Pod からアクセスできるようにする必要があります。 Maven mirror of (
MAVEN_MIRROR_OF
): ミラーから取得する予定のアーティファクトを決定する MavenmirrorOf
の値。mirrorOf
値の設定方法は、Apache Maven ドキュメントの Mirror Settings を参照してください。デフォルト値はexternal:*
です。この値の場合、Maven はミラーから必要なアーティファクトをすべて取得し、他のリポジトリーにクエリーを送信しません。-
外部の Maven リポジトリー (
MAVEN_REPO_URL
) を設定する場合は、ミラーからこのリポジトリー内のアーティファクトを除外するようにMAVEN_MIRROR_OF
を変更します (例:external:*,!repo-custom
)。repo-custom
は、MAVEN_REPO_ID
で設定した ID に置き換えます。 -
組み込みの Business Central Maven リポジトリー (
BUSINESS_CENTRAL_MAVEN_SERVICE
) を設定した場合には、ミラーからこのリポジトリーのアーティファクトを除外するようにMAVEN_MIRROR_OF
を変更します (例"external:*,!repo-rhdmcentr
)。 両リポジトリーを設定した場合は、ミラーから両リポジトリーのアーティファクトを除外するように
MAVEN_MIRROR_OF
を変更します (例:external:*,!repo-rhdmcentr,!repo-custom
)。repo-custom
は、MAVEN_REPO_ID
で設定した ID に置き換えます。+
-
外部の Maven リポジトリー (
-
Maven ミラー URL (
RH-SSO または LDAP 認証を使用する場合は、以下の追加設定を実行します。LDAP 認証および RH-SSO 認証を同じデプロイメントに設定しないようにしてください。
RH-SSO または LDAP サービスでは、デプロイメントパラメーターで全ユーザー名を作成します。パラメーターを設定しない場合には、デフォルトのユーザー名を使用してユーザーを作成します。作成したユーザーにはロールに割り当てる必要もあります。
-
KIE_ADMIN_USER
: デフォルトのユーザー名adminUser
、ロール:kie-server,rest-all,admin
-
KIE_SERVER_USER
: デフォルトのユーザー名executionUser
、ロールkie-server,rest-all,guest
-
Red Hat Single Sign On (RH-SSO) 認証を設定する場合には、Red Hat Decision Manager を適用する RH-SSO レルムが必要です。また、RH-SSO 内にクライアントが必要です。
RH-SSO で設定可能なユーザールールについては、ロールおよびユーザー を参照してください。
以下の手順の 1 つを使用します。
RH-SSO 内にすでに Red Hat Decision Manager のクライアントが存在する場合には、テンプレートで以下のパラメーターを設定してください。
-
RH-SSO URL (
SSO_URL
): RH-SSO の URL。 -
RH-SSO レルム名 (
SSO_REALM
): Red Hat Decision Manager の RH-SSO レルム。 -
KIE Server の RH-SSO クライアント名 (
KIE_SERVER_SSO_CLIENT
): Decision Server の RH-SSO クライアント名。 -
KIE Server の RH-SSO クライアントのシークレット (
KIE_SERVER_SSO_SECRET
): Decision Server のクライアントに対して RH-SSO に設定するシークレットの文字列。 -
RH-SSO が無効な SSL 証明書の検証 (
SSO_DISABLE_SSL_CERTIFICATE_VALIDATION
): RH-SSO インストールで有効な HTTPS 証明書を使用していない場合はtrue
に設定します。
-
RH-SSO URL (
RH-SSO に Red Hat Decision Manager のクライアントを作成する場合は、テンプレートで以下のパラメーターを設定します。
-
RH-SSO URL (
SSO_URL
): RH-SSO の URL。 -
RH-SSO レルム名 (
SSO_REALM
): Red Hat Decision Manager の RH-SSO レルム。 -
KIE Server の RH-SSO クライアント名 (
KIE_SERVER_SSO_CLIENT
): Decision Server 向けに RH-SSO に作成するクライアント名。 -
KIE Server の RH-SSO クライアントのシークレット (
KIE_SERVER_SSO_SECRET
): Decision Server のクライアントに対して RH-SSO に設定するシークレットの文字列。 -
KIE Server カスタムの http ルートホスト名 (
KIE_SERVER_HOSTNAME_HTTP
): Decision Server の HTTP エンドポイントに使用する完全修飾ホスト名。RH-SSO にクライアントを作成する必要がある場合には、このパラメーターを空白のままにしてください。 -
KIE Server カスタムの https ルートホスト名 (
KIE_SERVER_HOSTNAME_HTTPS
): Decision Server の HTTPS エンドポイントに使用する完全修飾ホスト名。RH-SSO にクライアントを作成する必要がある場合には、このパラメーターを空白のままにしてください。 -
RH-SSO レルムの管理者のユーザー名 (
SSO_USERNAME
) および RH-SSO レルムの管理者のパスワード (SSO_PASSWORD
): Red Hat Decision Manager の RH-SSO レルムの管理者ユーザーに指定するユーザー名とパスワード -
RH-SSO が無効な SSL 証明書の検証 (
SSO_DISABLE_SSL_CERTIFICATE_VALIDATION
): RH-SSO インストールで有効な HTTPS 証明書を使用していない場合はtrue
に設定します。
-
RH-SSO URL (
LDAP を設定するには、テンプレートの
AUTH_LDAP*
パラメーターを設定します。これらのパラメーターは、Red Hat JBoss EAP の LdapExtended ログインモジュールの設定に対応します。これらの設定に関する説明は、LdapExtended ログインモジュール を参照してください。LDAP サーバーがデプロイメントに必要な全ロールを定義していない場合は、LDAP グループを Red Hat Decision Manager ロールにマッピングしてください。LDAP のロールマッピングを有効にするには、以下のパラメーターを設定します。
-
RoleMapping rolesProperties ファイルパス (
AUTH_ROLE_MAPPER_ROLES_PROPERTIES
):/opt/eap/standalone/configuration/rolemapping/rolemapping.properties
など、ロールのマッピングを定義するファイルの完全修飾パス名。このファイルを指定して、該当するすべてのデプロイメント設定でこのパスにマウントする必要があります。これを実行する方法については、「LDAP ロールマッピングファイルの指定」 を参照してください。 -
RoleMapping replaceRole プロパティー (
AUTH_ROLE_MAPPER_REPLACE_ROLE
):true
に設定した場合、マッピングしたロールは、LDAP サーバーに定義したロールに置き換えられます。false
に設定した場合は、LDAP サーバーに定義したロールと、マッピングしたロールの両方がユーザーアプリケーションロールとして設定されます。デフォルトの設定はfalse
です。
-
RoleMapping rolesProperties ファイルパス (
使用している方法に応じて、環境の作成を終了します。
OpenShift Web UI の場合は Create をクリックします。
-
This will create resources that may have security or project behavior implications
メッセージが表示された場合は、Create Anyway をクリックします。
-
- 完了し、コマンドラインを実行します。