Amazon Web サービスにおける JBoss EAP のディプロイ
高可用性の設定など、Amazon Web Services で Red Hat JBoss Enterprise Application Platform を使用する手順
概要
JBoss EAP ドキュメントへのフィードバック (英語のみ)
エラーを報告したり、ドキュメントを改善したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- このリンクをクリック してチケットを作成します。
- ドキュメント URL、セクション番号、課題の説明 を記入してください。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL を含めてください。
- Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Amazon EC2 について
Amazon.com が運営サービスである Amazon Elastic Compute Cloud (Amazon EC2) は、カスタマイズ可能な仮想コンピューティング環境をお客様に提供します。このサービスでは、Amazon Machine Image (AMI) を起動して仮想マシンまたはインスタンスを作成できます。ユーザーは、インスタンスに必要なソフトウェアをインストールできます。料金は、使用する容量に応じて課金されます。Amazon EC2 は柔軟性が高く、デプロイされたアプリケーションを迅速にスケーリングできるように設計されています。
詳細は Amazon Web Services の web サイトを参照してください。
Amazon Machine Images について
Amazon Machine Image (AMI) は EC2 仮想マシンインスタンスのテンプレートです。ユーザーは、インスタンスを作成するための適切な AMI を選択して EC2 インスタンスを作成します。AMI の主要コンポーネントは、インストール済みのオペレーティングシステムやその他のソフトウェアを含む読み取り専用ファイルシステムです。AMI ごとに、さまざまなユースケース用にインストールされるソフトウェアが異なります。Amazon EC2 には、Amazon Web Services およびサードパーティーが提供する多くの AMI が含まれます。また、ユーザーは独自のカスタム AMI を作成することもできます。
JBoss EAP Amazon マシンイメージのタイプ
パブリックまたはプライベートの Amazon Machine Image (AMI) をデプロイして、Amazon Elastic Compute Cloud (Amazon EC2) で JBoss EAP を使用します。
Red Hat は、スタンドアロンインスタンスまたは管理対象ドメインのいずれかで full-ha
プロファイルに現在対応していません。
- JBoss EAP パブリック AMI
- AWS マーケットプレイス https://aws.amazon.com/marketplace から JBoss EAP パブリック AMI にアクセスします。パブリック AMI は、従量課金制 (PAYG) モデルで提供されます。PAYG モデルでは、使用したコンピューティングリソースの数に基づいてのみ料金が発生します。
- JBoss EAP プライベート AMI
- 既存のサブスクリプションを使用して、Red Hat Cloud Access を介して JBoss EAP プライベート AMI にアクセスできます。Red Hat Cloud Access の詳細は、Red Hat Cloud Access について を参照してください。
Red Hat Cloud Access 製品ページ
既存の Red Hat サブスクリプションがある場合、Red Hat Cloud Access は、Amazon EC2 や Microsoft Azure などの Red Hat 認定クラウドインフラストラクチャープロバイダーで JBoss EAP をサポートします。Red Hat Cloud Access を使用すると、サブスクリプションを従来のサーバーおよびパブリッククラウドベースのリソースの間で費用対効果の高い方法で移動できます。
詳細は、Red Hat Cloud Access on the Customer Portal を参照してください。
Red Hat Cloud Access の機能
Red Hat Cloud Access プログラムのメンバーシップでは、Red Hat によって作成されるサポート対象のプライベート Amazon Machine Images (AMI) へのアクセスを利用できます。
Red Hat AMI には、以下のソフトウェアが事前にインストールされており、Red Hat によって完全にサポートされています。
- Red Hat Enterprise Linux
- JBoss EAP
- Red Hat Update Infrastructure を使用した RPM による製品の更新
Red Hat AMI はそれぞれ開始点に S ぎません。アプリケーションの要件をさらに設定する必要があります。
サポートされる Amazon EC2 インスタンスタイプ
Red Hat Cloud Access は、以下の Amazon EC2 インスタンスタイプをサポートします。各インスタンスの詳細は、Amazon Elastic Compute Cloud User Guide for Linux Instances を参照してください。
JBoss EAP をデプロイするための AMI の最小仮想ハードウェア要件は次のとおりです。
- 仮想 CPU: 2
- メモリー: 4 GB
ただし、JBoss EAP にデプロイするアプリケーションによっては、追加のプロセッサーとメモリーが必要になる場合があります。
サポート対象の Red Hat AMI
サポートされている Red Hat AMI は、次の例に示すように、名前で識別できます。
プライベートイメージの例
RHEL-7-JBEAP-7.4.0_HVM_GA-20210909-x86_64-0-Access2-GP2
パブリックイメージの例
RHEL-7-JBEAP-7.4.0_HVM_GA-20220804-x86_64-0-Marketplace-GP2
-
RHEL-x
は、AMI にインストールされている Red Hat Enterprise Linux のバージョン番号です。例7
。 -
JBEAP-x.y.z
は、AMI にインストールされている JBoss EAP のバージョン番号です。例7.4.0
。 -
20220804
は、AMI が YYYYMMDD の形式で作成された日付です。 -
x86_64
は、AMI のアーキテクチャーです。これはx86_64
またはi386
です。 Access2
またはMarketplace
は、AMI がプライベートかパブリックかを次のように示します。-
プライベートイメージには
Access2
が含まれています。 -
パブリックイメージには
Marketplace
が含まれています。
-
プライベートイメージには
第2章 JBoss EAP インスタンスの起動
以下の手順は、Amazon Web Services (AWS) マーケットプレイスからパブリック JBoss EAP インスタンスを起動し、Amazon EC2 コンソールで JBoss EAP インスタンスを起動する方法を示しています。
2.1. AWS マーケットプレイスからの JBoss EAP インスタンスの起動
従量課金制 (PAYG) モデルで提供されるパブリック JBoss EAP Amazon Machine Image (AMI) は、Amazon Web Services (AWS) マーケットプレイスで入手できます。
前提条件
- AWS アカウントがある。
- Amazon Web Services CLI がインストールされ、アカウントの認証情報で設定されている。
手順
- URL: https://aws.amazon.com/marketplace で AWS マーケットプレイスに移動します。
- 検索バーで「JBoss EAP」を検索します。Red Hat Limited と Red Hat を選択して、Publisher で結果をフィルタリングします。
起動するイメージをクリックします。
注記EU に拠点を置く場合は、パブリッシャー "Red Hat Limited" からのイメージを選択してください。それ以外の場合は、パブリッシャー "Red Hat" からのイメージを選択してください。
ソフトウェアサブスクリプションページにリダイレクトされます。
- 購読設定を選択し、Continue to Subscribe をクリックします。
Accept Terms をクリックして条件に同意し、Continue to Configuration をクリックします。
設定ページにリダイレクトされます。
設定オプションを選択し、Continue to Launch をクリックします。
ソフトウェアページを起動するように指示されます。
- 起動設定の詳細を確認し、Launch をクリックしてインスタンスを起動します。
2.2. AWS EC2 コンソールを使用してプライベート AMI から JBoss EAP インスタンスを起動
AWS EC2 コンソールを使用してプライベート AMI から JBoss EAP インスタンスを起動できます。
AWS コマンドラインインターフェイスを使用してインスタンスを起動することもできます。AWS CLI の詳細は AWS CLI を参照してください。
前提条件
- Red Hat サブスクリプションがある。
- AWS アカウントがある。
- Amazon Web Services CLI がインストールされ、アカウントの認証情報で設定されている。
手順
- Amazon EC2 コンソール を開きます。
- Amazon EC2 コンソールから、AMI をクリックします。
Amazon Machine Images (AMIs) パネルにある Private images で
jbeap
AMI を検索し、AMI を選択します。たとえば、
RHEL-7-JBEAP-7.4.0_HVM_GA-20210909-x86_64-0-Access2-GP2
です。- インスタンスタイプを選択します。対応の Amazon EC2 インスタンスタイプの詳細は、Supported Amazon EC2 Instance Types を参照してください。
- Configure Instance Details のセクションで、インスタンス設定を設定します。
Advanced Details セクションの User data ボックスで、インスタンスの起動時に JBoss EAP を実行するサンプルスクリプトを貼り付けできます。サンプルスクリプトの詳細は、Launching JBoss EAP on Amazon EC2 Using Script を参照してください。
注記必要に応じて、ストレージを指定し、インスタンスにタグを付け、セキュリティーグループの詳細を設定します。
- Review and Launch をクリックします。これにより、インスタンスの起動の確認ページに移動します。
- Launch をクリックしてキーペアを選択し、インスタンスを起動します。
キーペアを選択していない場合は、インスタンスを起動する前にキーペアを指定します。
第3章 クラスター化されていない JBoss EAP インスタンスの起動
この章では、プライベート AMI またはパブリック Marketplace のリストから作成された Red Hat Amazon Machine Image (AMI) で JBoss EAP のクラスター化されていないインスタンスを起動する手順を示します。
前提条件
- 適切な Red Hat AMI。詳細は、サポート対象の Red Hat AMI を参照してください。
- 少なくともポート 22、8080、および 9990 での受信要求を許可する事前設定されたセキュリティーグループ。
クラスター化されていない JBoss EAP インスタンスの起動
ssh
で ec2-user
ユーザーとして EC2 インスタンスに接続できます。管理者権限が必要な場合は、後で root
ユーザーに変更できます。以下に例を示します。
$ ssh -l ec2-user ${INSTANCE_PUBLIC_IP} ... $ sudo su -
Red Hat AMI インスタンスを起動します。
JBoss EAP のクラスター化されていないインスタンスが Red Hat AMI で設定され、起動されている。
JBoss EAP を設定するには、サービスに引数を直接渡すことができます。この方法で処理できない引数もあります。サービス設定ファイルの場所は次のとおりです。
-
RHEL 6:
/etc/sysconfig/eap7-standalone
-
RHEL 7:
/etc/opt/rh/eap7/wildfly/eap7-standalone.conf
システムパスの詳細は、システムパス を参照してください。
-
RHEL 6:
-
複雑な設定の場合は、 JBoss EAP
bin
directory:/opt/rh/eap7/root/usr/share/wildfly/bin/
のstandalone.conf
ファイルを使用するか、JBoss EAP サービスを起動し、CLI を使用してサーバーを設定できます。このスクリプトはbin
ディレクトリーにあります。次に、設定を再読み込みします。 -
セキュリティー修正および機能強化を適用するには、
yum -y update
を定期的に実行する必要があります。
RHEL 6 で JBoss EAP を起動するには、以下のコマンドを実行します。
$ service eap7-standalone start
RHEL 7 で JBoss EAP を起動するには、以下のコマンドを実行します。
$ systemctl start eap7-standalone
RHEL 6 で JBoss EAP を停止するには、以下のコマンドを実行します。
$ service eap7-standalone stop
RHEL 7 で JBoss EAP を停止するには、以下のコマンドを実行します。
$ systemctl stop eap7-standalone
注記Systemctl
コマンドは、RHEL 7 にのみ関連します。
JBoss EAP を別の IP アドレスにバインドする場合は、RHEL 7 の /etc/opt/rh/eap7/wildfly/eap7-standalone.conf
ファイルに以下の行を追加します。内部 IP アドレスは EC2 によりパブリック IP アドレスに変換されます。
WILDFLY_BIND=$YOUR_PRIVATE_IP_ADDRESS
第4章 クラスター化していない管理対象ドメインの起動
4.1. インスタンスをドメインコントローラーとして提供するための起動
このトピックでは、プライベート AMI またはパブリック Marketplace のリストから作成された Red Hat Amazon Machine Image (AMI) でクラスター化されていない JBoss EAP 管理ドメインを起動する手順を示します。
前提条件
- 適切な Red Hat AMI。詳細は、サポート対象の Red Hat AMI を参照してください。
クラスター化されていない JBoss EAP インスタンスの起動
ssh
で ec2-user
ユーザーとして EC2 インスタンスに接続できます。管理者権限が必要な場合は、後で root
ユーザーに変更できます。以下に例を示します。
$ ssh -l ec2-user ${INSTANCE_PUBLIC_IP} ... $ sudo su -
Red Hat AMI インスタンスを起動します。
JBoss EAP のクラスター化されていないインスタンスが Red Hat AMI で設定され、起動されている。
JBoss EAP を設定するには、サービスに引数を直接渡すことができます。この方法で処理できない引数もあります。サービス設定ファイルの場所は次のとおりです。
-
RHEL 6:
/etc/sysconfig/eap7-domain
-
RHEL 7:
/etc/opt/rh/eap7/wildfly/eap7-domain.conf
-
RHEL 6:
システムパスの詳細は、システムパス を参照してください。
Amazon EC2 の JBoss EAP サブシステムの詳細は、JBoss EAP サブシステムを Cloud Platform で機能するように設定する を参照してください。
-
複雑な設定の場合は、JBoss EAP
bin
directory:/opt/rh/eap7/root/usr/share/wildfly/bin/
のdomain.conf
ファイルを使用するか、JBoss EAP サービスを起動し、管理 CLI を使用してサーバーを設定できます。このスクリプトはbin
ディレクトリーにあります。次に、設定を再読み込みします。 -
セキュリティー修正および機能強化を適用するには、
yum -y update
を定期的に実行する必要があります。
RHEL 6 で JBoss EAP を起動するには、以下のコマンドを実行します。
$ service eap7-domain start
RHEL 7 で JBoss EAP を起動するには、以下のコマンドを実行します。
$ systemctl start eap7-domain
RHEL 6 で JBoss EAP を停止するには、以下のコマンドを実行します。
$ service eap7-domain stop
RHEL 7 で JBoss EAP を停止するには、以下のコマンドを実行します。
$ systemctl stop eap7-domain
注記Systemctl
コマンドは、RHEL 7 にのみ関連します。
JBoss EAP を別の IP アドレスにバインドする場合は、RHEL 7 の /etc/opt/rh/eap7/wildfly/eap7-domain.conf
ファイルに以下の行を追加します。内部 IP アドレスは EC2 によりパブリック IP アドレスに変換されます。
WILDFLY_BIND=$YOUR_PRIVATE_IP_ADDRESS
4.2. 1 以上のインスタンスを起動し、ホストコントローラーとして提供
このトピックでは、JBoss EAP の 1 つ以上のインスタンスを起動して、プライベート AMI またはパブリック Marketplace のリストから作成された Red Hat AMI でクラスター化されていないホストコントローラーとして機能する手順を示します。
クラスター化されていないドメインコントローラーを設定して起動します。インスタンスをドメインコントローラーとして提供するための起動 を参照してください。
システムパスの詳細は、システムパス を参照してください。
Amazon EC2 の JBoss EAP サブシステムの詳細は、JBoss EAP サブシステムを Cloud Platform で機能するように設定する を参照してください。
ドメインコントローラーインスタンスの場合
Amazon EC2 で実行している管理対象ドメインでは、静的ドメインコントローラーの検出の他に、ホストコントローラーは Amazon Simple Storage (Amazon S3) システムを使用してドメインコントローラーを動的に検出できます。特に、ホストコントローラーとドメインコントローラーは、Amazon S3 バケットにアクセスするために必要な情報で設定できます。
この設定を使用すると、ドメインコントローラーが起動したときに、その通信情報がバケットの S3 ファイルに書き込まれます。ホストコントローラーがドメインコントローラーとの通信を試行するたびに、S3
ファイルからドメインコントローラーの通信情報を取得します。
たとえば、Amazon EC2 インスタンスの IP アドレスが停止および起動すると変更するのが一般的です。このシナリオでは、ドメインコントローラーの通信情報が変更された場合に、ホストコントローラーを再設定する必要はありません。ホストコントローラーは、S3
ファイルからドメインコントローラーの新しい通信情報を取得できます。
ユーザーデータのサンプルスクリプトの詳細は、Example User Data for Clustered JBoss EAP Instances を参照してください。
手動によるドメインコントローラーの検出設定は、以下のプロパティーを使用して指定します。
-
access-key
: Amazon AWS ユーザーアカウントのアクセスキー。 -
secret-access-key
: Amazon AWS ユーザーアカウントのシークレットアクセスキー。 location
: 使用する Amazon S3 バケット。-
domain-ec2.xml
ファイルを/opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs
から JBoss EAP 設定ディレクトリーにコピーします。 以下の変数を適切なサービス設定ファイルに設定します。
WILDFLY_SERVER_CONFIG=domain-ec2.xml WILDFLY_HOST_CONFIG=host-master.xml
S3 ドメインコントローラー検出設定を
domain-ec2.xml
ファイルに追加します。<local> <discovery-options> <discovery-option name="s3-discovery" module="org.jboss.as.host-controller" code="org.jboss.as.host.controller.discovery.S3Discovery"> <property name="access-key" value="S3_ACCESS_KEY"/> <property name="secret-access-key" value="S3_SECRET_ACCESS_KEY"/> <property name="location" value="S3_BUCKET_NAME"/> </discovery-option> </discovery-options> </local>
-
第5章 クラスター化された JBoss EAP の起動
5.1. クラスター化された JBoss EAP AMI の起動 (mod_cluster および VPC なし)
このトピックでは、mod_cluster および VPC なしでクラスター化された JBoss EAP AMI を起動する手順について説明します。
- イメージで提供される設定スクリプトサンプルを使用できます。
システムパスの詳細は、システムパス を参照してください。
Amazon EC2 の JBoss EAP サブシステムの詳細は、JBoss EAP サブシステムを Cloud Platform で機能するように設定する を参照してください。
クラスター化された JBoss EAP AMI をスタンドアロンサーバーインスタンスで開始するには、事前設定された S3_PING JGroups スタックが含まれる /opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/standalone-ec2-ha.xml
ファイルのサンプルを使用できます。詳細は、Reliable group communication with JGroups ドキュメントの S3_PING を参照してください。この standalone-ec2-ha.xml
プロファイルファイルは、/opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/
から JBoss EAP 設定ディレクトリー /opt/rh/eap7/root/usr/share/wildfly/standalone/configuration/
にコピーされる必要があります。その後、以下の行を JBoss EAP サービス設定ファイルに追加する必要があります。
WILDFLY_SERVER_CONFIG=standalone-ec2-ha.xml
undertow
サブシステムのスタンドアロンサーバーインスタンスごとに、固有の instance-id
を設定する必要があります。instance-id
の値は、standalone-ec2-ha.xml
ファイルを編集して、あるいは管理 CLO を使用して手動で設定できます。たとえば、以下のように管理 CLI を使用して instance-id
を設定できます。
/subsystem=undertow:write-attribute(name=instance-id,value={${jboss.jvmRoute}})
Jboss.jvmRoute
の値は JAVA_OPTS
変数を使用して standalone.conf
に指定できます。
EC2 設定ファイルの jgroups
サブシステムでは、クラスターメンバーを検出するために S3_PING
固有のプロパティーが必要です。S3、シークレットアクセスキー、および検出に使用する S3 バケットにアクセスキーを指定する必要があります。これらのプロパティーは Java オプションとして指定するか、編集して、あるいは CLI を使用して XML ファイルに直接追加することができます。
検出用に S3 バケットを作成する必要があります。詳細は、Amazon Simple Storage Service Documentation を参照してください。必要なパーミッションの設定が必要になることもあります。JGroups スタックは、他のノードとの通信に使用される IP アドレスにバインドする必要があります。これは、S3 Java オプションとともに /opt/rh/eap7/root/usr/share/wildfly/bin/standalone.conf
ファイルに Java オプションを追加することで行うことができます。たとえば、プライベート IP アドレスが 10.10.10.10
の場合は、以下の行を standalone.conf
ファイルに追加します。
JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address.private=10.10.10.10"
サンプルアプリケーション: /opt/rh/eap7/root/usr/share/java/eap7-jboss-ec2-eap-samples/cluster-demo.war
をデプロイして、/opt/rh/eap7/root/usr/share/wildfly/standalone/log/server.log
でログを確認し、JBoss EAP サーバーがクラスターを作成していることを確認できます。
ドメインコントローラーインスタンスの場合
-
domain-ec2.xml
ファイルを/opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs
から JBoss EAP 設定ディレクトリーにコピーします。 以下の変数を適切なサービス設定ファイルに設定します。
WILDFLY_SERVER_CONFIG=domain-ec2.xml WILDFLY_HOST_CONFIG=host-master.xml
S3 ドメインコントローラー検出設定を
host-master.xml
ファイルに追加します。<local> <discovery-options> <discovery-option name="s3-discovery" module="org.jboss.as.host-controller" code="org.jboss.as.host.controller.discovery.S3Discovery"> <property name="access-key" value="S3_ACCESS_KEY"/> <property name="secret-access-key" value="S3_SECRET_ACCESS_KEY"/> <property name="location" value="S3_BUCKET_NAME"/> </discovery-option> </discovery-options> </local>
- ユーザーを設定し、ユーザーのシークレット値をホストコントローラーインスタンスに追加します。詳細は、設定ガイド の 2 台のマシンで管理対象ドメインを作成 を参照してください。
ホストコントローラーインスタンスの場合
以下の変数を適切なサービス設定ファイルに設定します。
WILDFLY_HOST_CONFIG=host-slave.xml
S3 ドメインコントローラー検出設定を
host-slave.xml
ファイルに追加します。<remote security-realm="ManagementRealm"> <discovery-options> <discovery-option name="s3-discovery" module="org.jboss.as.host-controller" code="org.jboss.as.host.controller.discovery.S3Discovery"> <property name="access-key" value="S3_ACCESS_KEY"/> <property name="secret-access-key" value="S3_SECRET_ACCESS_KEY"/> <property name="location" value="S3_BUCKET_NAME"/> </discovery-option> </discovery-options> </remote>
注記S3 ドメインコントローラーの検出に関する情報は、1 以上のインスタンスを起動し、ホストコントローラーとして提供 を参照してください。
24 ビットより小さいネットワークマスクを持つサブネットで JBoss EAP クラスターを実行するか、複数のサブネットにまたがると、各クラスターメンバーの一意のサーバーピア ID の取得が複雑になります。
Amazon EC2 の自動スケーリング機能は、JBoss EAP クラスターノードで使用できます。ただし、デプロイする前に必ずテストしてください。必要なノード数に特定のワークロードがスケーリングし、使用する予定のインスタンスタイプで必要とされるパフォーマンスを満たすようにする必要があります。インスタンスタイプが受信する EC2 クラウドリソースのシェアは、それぞれによって異なります。
さらに、インスタンスのローカリティーおよび現在のネットワーク/ ストレージ/ ホストマシン/RDS 使用率は、クラスターのパフォーマンスに影響を与える可能性があります。予想される実際の負荷をテストし、予期しない状況を考慮するようにしてください。
Amazon EC2 スケールダウン アクションは、正常にシャットダウンする可能性なしにノードを終了します。また、一部のトランザクションが中断する可能性があるため、他のクラスターノードおよびロードバランサーには、フェイルオーバーの時間が必要です。これは、アプリケーションユーザーエクスペリエンスに影響を与える可能性があります。
処理されるセッションが完了するまで mod_cluster 管理インターフェイスからサーバーを無効にしてアプリケーションクラスターを手動でスケールダウンするか、インスタンスまたは Red Hat JBoss Operations Network への SSH アクセスを使用して JBoss EAP インスタンスを正常にシャットダウンして、アすることが推奨されます。
スケールダウンの手順をテストしても、ユーザーエクスペリエンスに悪影響が及ぶことはありません。特定のワークロード、ロードバランサー、および設定には、追加の対策が必要になる場合があります。
5.2. クラスター化された JBoss EAP AMI の起動 (mod_cluster および VPC を使用)
このトピックでは、Apache HTTP サーバーインスタンスを起動して mod_cluster
プロキシーとして機能し、Virtual Private Cloud (VPC) の NAT インスタンスとして機能する手順について説明します。
システムパスの詳細は、システムパス を参照してください。
Amazon EC2 の JBoss EAP サブシステムの詳細は、JBoss EAP サブシステムを Cloud Platform で機能するように設定する を参照してください。
- イメージで提供される設定スクリプトサンプルを使用できます。
Amazon Virtual Private Cloud (Amazon VPC) は、プライベートネットワークで AWS リソースのセットを分離できるようにする Amazon Web Services (AWS) の機能です。このプライベートネットワークのトポロジーおよび設定は、ニーズに合わせてカスタマイズできます。
Amazon VPC の詳細は、Amazon Virtual Private Cloud を参照してください。
VPC 内で mod_cluster
ロードバランサーを使用してクラスターを起動すると、JBoss EAP サーバーはパブリックにアクセスできなくなります。mod_cluster
ロードバランサーは、インターネットに接続されるエンドポイントのみにすることができます。
ドメインコントローラーインスタンスの設定は、Launch an Instance to Serve as a Domain Controller を参照してください。
ホストコントローラーインスタンスの設定は、1 以上のインスタンスを起動し、ホストコントローラーとして提供 を参照してください。
S3 ドメインコントローラーの検出に関する情報は、1 以上のインスタンスを起動し、ホストコントローラーとして提供 を参照してください。
5.2.1. VPC および mod_cluster を使用してクラスター化された AMI を起動する
VPC の設定は任意です。詳細は、Amazon VPC ユーザーガイドの Detecting Your Supported Platforms and Whether You Have a Default VPC セクションを参照してください。
-
Jbcs-httpd24-mod_cluster-native
パッケージとそのすべての依存関係をインストールします。mod_cluster
設定ファイルは/opt/rh/jbcs-httpd24/root/etc/httpd/conf.d/mod_cluster.conf
にインストールされています。
Red Hat JBoss Core Services Apache HTTP Server のインストールの詳細は、Apache HTTP Server Installation Guide を参照してください。
mod_cluster
のアドバタイズの無効化以下を/opt/rh/jbcs-httpd24/root/etc/httpd/conf.d/mod_cluster.conf
設定ファイルのVirtualHost
に追加します。ServerAdvertise Off EnableMCPMReceive # AdvertiseFrequency # comment out AdvertiseFrequency if present
-
SELinux
のポートを許可します。必要に応じてiptables
を設定します。ポートは、semanage port -a -t http_port_t -p tcp $PORT_NR
コマンドを使用して SELinux で許可できます。 mod_cluster
がリッスンするアドレスでmod_cluster
プロキシーを検索するよう JBoss EAP を設定します。注記/opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/standalone-ec2-ha.xml
設定ファイルのサンプルが提供されます。modcluster
サブシステムでproxies
の一覧を設定する必要があります。以下の方法のいずれかを使用して
proxies
のリストを定義できます。mod-cluster-proxy1
というoutbound-socket-binding
を適切なホストとポートで定義します。<outbound-socket-binding name="mod-cluster-proxy1"> <remote-destination host="${jboss.modcluster.proxy1.host}" port="${jboss.modcluster.proxy1.port}"/> </outbound-socket-binding>
modcluster
のproxies
属性を適切なホストとポートでmod-cluster-proxy1
に設定します。/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=mod-cluster-proxy1:add(host={${jboss.modcluster.proxy1.host}}, port={${jboss.modcluster.proxy1.port}})
第6章 トラブルシューティング
6.1. Amazon EC2 のトラブルシューティングについて
EC2 は、インスタンスごとに Alarm Status を提供します。これは、致命的なインスタンスの誤動作を示します。ただし、このような警告がなくても、インスタンスが正しく起動し、サービスが正しく実行されていることが保証されるわけではありません。Amazon CloudWatch をカスタムメトリクス機能とともに使用すると、インスタンスサービスの健全性を監視することができますが、エンタープライズ管理ソリューションを使用することが推奨されます。
6.2. 診断情報
JBoss Operations Network、Amazon CloudWatch、または手動の検査によって問題が検出された場合、診断情報の一般的なソースは以下のようになります。
-
/var/log
には、マシンの起動、JBoss EAP、httpd およびその他のサービスから収集されたすべてのログも含まれます。
JBoss EAP ログファイルは /opt/rh/eap7/root/usr/share/wildfly/
にあります。
これらのファイルへのアクセスは、SSH セッションのみで可能です。
Amazon EC2 を使用して SSD セッションを設定して確立する詳細は、Getting Started with Amazon EC2 Linux Instances を参照してください。
付録A リファレンス資料
A.1. Red Hat Cloud Access プログラム用の Amazon EC2 AMI
AMI は、Red Hat Enterprise Linux イメージでの JBoss EAP + JDK の基本的な RPM インストールで、Amazon EC2 の設定例がある可能性があります。高度なスクリプトは利用できなくなりましたが、通常の bash スクリプトは使用できます。
プラットフォーム/JDK の組み合わせの AMI:
- RHEL 6 + Open JDK 8 (1 イメージ)
- RHEL 7 + Open JDK 8 (1 イメージ)
どちらのプラットフォームも 64 ビットアーキテクチャーである必要があります。
AMI のメンテナンス
EC2 に z リリース (パッチ) を適用するには、yum update
を定期的に実行する必要があります。Y リリース (マイナーリリース) の新しい AMI は、Red Hat から提供されます。
シナリオ 1 (サポートあり)
- EC2 にサインアップします。
- Red Hat Cloud Access にサインアップします。
- 利用可能な AMI の一覧から Red Hat AMI を選択します。
-
(オプション) ユーザースクリプトまたは
ssh
で JBoss EAP 設定をカスタマイズします。 -
メンテナンス:y リリースの新しい AMI z リリース用の
yum update
A.2. 設定ファイルおよびデプロイメントの例
以下のパッケージでは、RHEL 7 AMI バージョンのデプロイメント例が追加されます。
$ rpm -ql eap7-jboss-ec2-eap-samples /opt/rh/eap7/root/usr/share/java/eap7-jboss-ec2-eap-samples/cluster-demo.war /opt/rh/eap7/root/usr/share/java/eap7-jboss-ec2-eap-samples/hello.war /opt/rh/eap7/root/usr/share/java/eap7-jboss-ec2-eap-samples/jboss-as-helloworld-mdb-7.0.0.ER5-redhat-1.war
JBoss EAP 設定ファイルのサンプルには、EC2 全体でクラスターを作成するのに使用できる S3_PING
プロトコル用にセットアップされた JGroups スタックが含まれます。設定ファイルのサンプルの正確な場所は、System Paths を参照してください。
マルチキャストは EC2 で無効になっているため、両方の設定ファイルには、アドバタイズの代わりにプロキシー mod_cluster 検出を使用するための modcluster
サブシステムが含まれます。
A.3. システムパス
サービス設定ファイル:
- RHEL 6: /etc/sysconfig/*
- RHEL 7: /etc/opt/rh/eap7/wildfly/*
JBoss EAP Home:
- /opt/rh/eap7/root/usr/share/wildfly/
JBoss EAP 設定の場所:
- スタンドアロンインスタンス
- /opt/rh/eap7/root/usr/share/wildfly/standalone/configuration
- /opt/rh/eap7/root/usr/share/wildfly/bin/standalone.conf
- 管理対象ドメイン
- /opt/rh/eap7/root/usr/share/wildfly/bin/domain.conf
- /opt/rh/eap7/root/usr/share/wildfly/domain/configuration
JBoss EAP の設定場所の例:
- /opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/standalone-ec2-ha.xml
- /opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/standalone-ec2-full-ha.xml
A.4. スクリプトを使用した Amazon EC2 での JBoss EAP の起動
以下のサンプルスクリプトを使用して、Amazon EC2 で JBoss EAP インスタンスを起動すると、パブリック IP アドレスにバインドされる JBoss EAP を開始できます。
#!/bin/bash # platform dependent variables if [[ "`cat /etc/redhat-release`" = *"release 7"* ]]; then SERVICE_CONF_FILE=/etc/opt/rh/eap7/wildfly/eap7-standalone.conf START_COMMAND="systemctl start eap7-standalone" else SERVICE_CONF_FILE=/etc/sysconfig/eap7-standalone START_COMMAND="service eap7-standalone start" fi # set up addresses INTERNAL_IP_ADDRESS=`ip addr show | grep eth0 -A 2 | head -n 3 | tail -n 1 | awk '{ print $2 }' | sed "s-/24--g" | cut -d'/' -f1` echo "JAVA_OPTS=\"$JAVA_OPTS -Djboss.bind.address=$INTERNAL_IP_ADDRESS -Djboss.bind.address.private=$INTERNAL_IP_ADDRESS -Djboss.bind.address.management=$INTERNAL_IP_ADDRESS\"" >> /opt/rh/eap7/root/usr/share/wildfly/bin/standalone.conf # start EAP $START_COMMAND
A.5. JBoss EAP サブシステムを Cloud Platform で機能するように設定する
Amazon EC2 や Microsoft Azure などのクラウドプラットフォームで適切に動作するように、一部の JBoss EAP サブシステムを設定する必要があります。これは、JBoss EAP サーバーは通常、クラウドプラットフォームからのみ確認可能な 10.x.x.x
などのクラウド仮想マシンのプライベート IP アドレスにバインドされているために必要です。特定のサブシステムでは、このアドレスをサーバーのパブリック IP アドレスにマッピングする必要もあります。これは、クラウド外から見えるものです。
A.5.1. Web サービス
クライアントが Service.create(SELECTURL, serviceName)
を使用して Web サービスリクエストを行うと、ユーザーはサーバーのパブリック IP アドレスに接続しますが、その後、webservices
サブシステムのサーバー設定ファイルに定義されたアドレスにリダイレクトされます。デフォルトでは、このアドレスは ${jboss.bind.address:127.0.0.1}
です。つまり、クラウドプラットフォームでは呼び出し元はサーバーのプライベート IP アドレスにリダイレクトされ、要求を解決できません。サーバーのパブリック IP アドレスは、以下のコマンドを使用して ogg-host
要素で設定する必要があります。
/subsystem=webservices:write-attribute(name=wsdl-host,value=PUBLIC_IP_ADDRESS)
A.5.2. Messaging
クラウドプラットフォームでメッセージングを使用する場合は、クライアントが使用する接続ファクトリーには、サーバーのパブリック IP アドレスを指すコネクターが必要です。
そのため、完全な
プロファイルを実行している JBoss EAP サーバーに対して新しいコネクターとソケットバインディングを作成する必要があります。
参照される
http-public
ソケットバインディングはsocket-binding-group
内に作成する必要があります。/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=http-public:add(host=PUBLIC_IP_ADDRESS,port=${jboss.http.port:8080})
messaging
サブシステムに新しいhttp-connector
要素を作成します。/subsystem=messaging-activemq/server=default/http-connector=http-public-connector:add(endpoint=http-acceptor, socket-binding=http-public)
connection-factory
にconnectors
を設定します。これは、クライアントによって使用されます。たとえば、デフォルトの接続としてのRemoteConnectionFactory
の設定は以下のようになります。/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=connectors, value=["http-public-connector"]
A.5.3. 高可用性のリモーティング設定
クラウドプラットフォーム上のクラスター化された Jakarta Enterprise Beans で JBoss EAP HA 機能を使用している場合は、Jakarta Enterprise Beans クライアントがクラスタービューの更新を受け取るために remoting
サブシステムに追加の設定が必要になります。
これは remoting
サブシステムのソケットバインディングに client-mappings
を設定して行います。
/socket-binding-group=standard-sockets/socket-binding=http:write-attribute(name=client-mappings,value=[{ "destination-address" => "PUBLIC_IP_ADDRESS", "destination-port" => "8080" }])
A.6. クラスター化された JBoss EAP インスタンスのユーザーデータの例
以下の例は、いくつかの異なるサーバー設定用に設定されたユーザーデータを示しています。
例: RHEL6/7 でのスタンドアロンモードのファイル
#!/usr/bin/env bash # This is a sample script for the user data field for EC2, which demonstrates how to launch a standalone instance using the ec2-ha profile # This file is for RHEL 6/7, standalone mode only ### This script makes use of the following four Bash variables for clustering setup, ### be sure to add in your own values for these variables here when copy/pasting this ### script into the EC2 user data field ACCESS_KEY_ID=<your AWS access key> SECRET_ACCESS_KEY=<your AWS secret access key> S3_PING_BUCKET=<your bucket name> NODE_NAME=<your node name> #### No further modifications should be needed below to run this example #### # Set the location of JBoss EAP JBOSS_HOME=/opt/rh/eap7/root/usr/share/wildfly # Set the internal IP address of this EC2 instance which is mapped to a public address INTERNAL_IP_ADDRESS=`ip addr show | grep eth0 -A 2 | head -n 3 | tail -n 1 | awk '{ print $2 }' | sed "s-/24--g" | cut -d'/' -f1` # Set the location of the standalone.conf file and set the command used to start EAP in standalone mode if [[ "`cat /etc/redhat-release`" = *"release 7"* ]]; then SERVICE_CONF_FILE=/etc/opt/rh/eap7/wildfly/eap7-standalone.conf START_COMMAND="systemctl start eap7-standalone" else SERVICE_CONF_FILE=/etc/sysconfig/eap7-standalone START_COMMAND="service eap7-standalone start" fi # Configure JBoss EAP to use the ec2-ha profile cp /opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/standalone-ec2-ha.xml $JBOSS_HOME/standalone/configuration/standalone-ec2-ha.xml echo "WILDFLY_SERVER_CONFIG=standalone-ec2-ha.xml" >> $SERVICE_CONF_FILE echo "WILDFLY_BIND=$INTERNAL_IP_ADDRESS" >> $SERVICE_CONF_FILE echo "JAVA_OPTS=\"\$JAVA_OPTS -Djboss.jgroups.s3_ping.access_key='$ACCESS_KEY_ID' -Djboss.jgroups.s3_ping.secret_access_key='$SECRET_ACCESS_KEY' -Djboss.jgroups.s3_ping.bucket='$S3_PING_BUCKET' -Djboss.jvmRoute=$NODE_NAME\"" >> $JBOSS_HOME/bin/standalone.conf echo "JAVA_OPTS=\"\$JAVA_OPTS -Djboss.bind.address=$INTERNAL_IP_ADDRESS -Djboss.bind.address.private=$INTERNAL_IP_ADDRESS\"" >> $JBOSS_HOME/bin/standalone.conf # Deploy the sample application from the local filesystem cp /opt/rh/eap7/root/usr/share/java/eap7-jboss-ec2-eap-samples/cluster-demo.war $JBOSS_HOME/standalone/deployments/ # Start JBoss EAP, note that RHEL 7 does not wait for JBoss EAP to start before returning from the service start. In some cases, there could be a delay of more than 90 seconds. $START_COMMAND
例: クラスター化されたドメインコントローラーを起動するファイル
#!/usr/bin/env bash # This is a sample script for the user data field for EC2, which demonstrates how to launch a domain controller with clustering enabled # This file is for RHEL 6/7, domain controller, domain mode only ### This script makes use of the following Bash variables for clustering and domain ### controller discovery setup, be sure to add in your own values for these variables here ### when copy/pasting this script into the EC2 user data field ACCESS_KEY_ID=<your access key id> SECRET_ACCESS_KEY=<your secret access key> S3_PING_BUCKET=<your s3 ping bucket> #### No further modifications should be needed below to run this example #### # Set the location of JBoss EAP JBOSS_HOME=/opt/rh/eap7/root/usr/share/wildfly CONF_FILE=/opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/domain-ec2.xml # Set the internal IP address of this EC2 instance which is mapped to a public address INTERNAL_IP_ADDRESS=`ip addr show | grep eth0 -A 2 | head -n 3 | tail -n 1 | awk '{ print $2 }' | sed "s-/24--g" | cut -d'/' -f1` # Set the location of the domain.conf file and set the command used to start EAP in domain mode if [[ "`cat /etc/redhat-release`" = *"release 7"* ]]; then SERVICE_CONF_FILE=/etc/opt/rh/eap7/wildfly/eap7-domain.conf START_COMMAND="systemctl start eap7-domain" else SERVICE_CONF_FILE=/etc/sysconfig/eap7-domain START_COMMAND="service eap7-domain start" fi # Configure JBoss EAP to use the domain-ec2.xml and host-master.xml configuration files cp ${CONF_FILE} $JBOSS_HOME/domain/configuration/domain-ec2.xml echo "WILDFLY_SERVER_CONFIG=domain-ec2.xml" >> $SERVICE_CONF_FILE echo "WILDFLY_HOST_CONFIG=host-master.xml" >> $SERVICE_CONF_FILE echo "WILDFLY_BIND=$INTERNAL_IP_ADDRESS" >> $SERVICE_CONF_FILE echo "JAVA_OPTS=\"\$JAVA_OPTS -Djboss.jgroups.s3_ping.access_key='$ACCESS_KEY_ID' -Djboss.jgroups.s3_ping.secret_access_key='$SECRET_ACCESS_KEY' -Djboss.jgroups.s3_ping.bucket='$S3_PING_BUCKET'\"" >> $JBOSS_HOME/bin/domain.conf echo "JAVA_OPTS=\"\$JAVA_OPTS -Djboss.bind.address=$INTERNAL_IP_ADDRESS -Djboss.bind.address.private=$INTERNAL_IP_ADDRESS -Djboss.bind.address.management=$INTERNAL_IP_ADDRESS\"" >> $JBOSS_HOME/bin/domain.conf echo 'HOST_CONTROLLER_JAVA_OPTS="$HOST_CONTROLLER_JAVA_OPTS $JAVA_OPTS"' >> $JBOSS_HOME/bin/domain.conf # Add a management user with the following credentials: # User name: admin # Password: secret_Passw0rd $JBOSS_HOME/bin/add-user.sh -u admin -p secret_Passw0rd -e -g Management # Update the main-server-group in domain-ec2.xml to use the ec2-ha profile $JBOSS_HOME/bin/jboss-cli.sh --commands="embed-host-controller --domain-config=domain-ec2.xml, /server-group=main-server-group:write-attribute(name=profile, value=ha)" # Need to modify permissions since this script is executed as the root user chgrp jboss $JBOSS_HOME/domain/configuration/domain_xml_history/ chgrp jboss $JBOSS_HOME/domain/configuration/host_xml_history/ chgrp jboss $JBOSS_HOME/domain/configuration/domain-ec2.xml chgrp jboss $JBOSS_HOME/domain/log/audit.log chgrp jboss $JBOSS_HOME/domain/log/host-controller.log chown jboss $JBOSS_HOME/domain/configuration/domain_xml_history/ chown jboss $JBOSS_HOME/domain/configuration/host_xml_history/ chown jboss $JBOSS_HOME/domain/configuration/domain-ec2.xml chown jboss $JBOSS_HOME/domain/log/audit.log chown jboss $JBOSS_HOME/domain/log/host-controller.log # Configure S3 domain controller discovery yum install patch -y cd $JBOSS_HOME/domain/configuration echo "--- host-master.xml 2016-03-18 17:34:26.000000000 -0400 +++ host-master2.xml 2016-04-11 08:28:02.771000191 -0400 @@ -54,7 +54,15 @@ </management-interfaces> </management> <domain-controller> - <local/> +<local> + <discovery-options> + <discovery-option name=\"s3-discovery\" module=\"org.jboss.as.host-controller\" code=\"org.jboss.as.host.controller.discovery.S3Discovery\"> + <property name=\"access-key\" value=\"$ACCESS_KEY_ID\"/> + <property name=\"secret-access-key\" value=\"$SECRET_ACCESS_KEY\"/> + <property name=\"location\" value=\"$S3_PING_BUCKET\"/> + </discovery-option> + </discovery-options> +</local> </domain-controller> <interfaces> <interface name=\"management\"> " | patch host-master.xml cd - # Start JBoss EAP, do not forget that RHEL 7 does not wait for JBoss EAP to start before returning from the service start. In some cases, there could be a delay of more than 90 seconds. $START_COMMAND sleep 20 # Set up EC2 HA socket bindings for main server group $JBOSS_HOME/bin/jboss-cli.sh -c --controller=$INTERNAL_IP_ADDRESS:9990 --timeout=120000 --command='/server-group=main-server-group:write-attribute(name=socket-binding-group,value=ha-sockets)' # Deploy the sample application from the local filesystem to the main-server-group $JBOSS_HOME/bin/jboss-cli.sh -c --controller=$INTERNAL_IP_ADDRESS:9990 --timeout=120000 --command='deploy /opt/rh/eap7/root/usr/share/java/eap7-jboss-ec2-eap-samples/cluster-demo.war --server-groups=main-server-group'
例: クラスター化されたドメインコントローラーを起動するファイル
#!/usr/bin/env bash # This is a sample script for the user data field for EC2, which demonstrates how to launch a host controller with clustering enabled # This file is for RHEL 6/7, host controller, domain mode only ### This script makes use of the following Bash variables for clustering and domain ### controller discovery setup, be sure to add in your own values for these variables here ### when copy/pasting this script into the EC2 user data field ACCESS_KEY_ID=<your access key id> SECRET_ACCESS_KEY=<your secret access key> S3_PING_BUCKET=<your s3 ping bucket> #### No further modifications should be needed below to run this example #### # Set the location of EAP JBOSS_HOME=/opt/rh/eap7/root/usr/share/wildfly # Set the internal IP address of this EC2 instance which is mapped to a public address INTERNAL_IP_ADDRESS=`ip addr show | grep eth0 -A 2 | head -n 3 | tail -n 1 | awk '{ print $2 }' | sed "s-/24--g" | cut -d'/' -f1` # Set the location of the domain.conf file and set the command used to start EAP in domain mode if [[ "`cat /etc/redhat-release`" = *"release 7"* ]]; then SERVICE_CONF_FILE=/etc/opt/rh/eap7/wildfly/eap7-domain.conf START_COMMAND="systemctl start eap7-domain" else SERVICE_CONF_FILE=/etc/sysconfig/eap7-domain START_COMMAND="service eap7-domain start" fi # Configure variables needed by JBoss EAP echo "WILDFLY_BIND=$INTERNAL_IP_ADDRESS" >> $SERVICE_CONF_FILE echo "WILDFLY_HOST_CONFIG=host-slave.xml" >> $SERVICE_CONF_FILE echo "JAVA_OPTS=\"\$JAVA_OPTS -Djboss.jgroups.s3_ping.access_key='$ACCESS_KEY_ID' -Djboss.jgroups.s3_ping.secret_access_key='$SECRET_ACCESS_KEY' -Djboss.jgroups.s3_ping.bucket='$S3_PING_BUCKET'\"" >> $JBOSS_HOME/bin/domain.conf echo "JAVA_OPTS=\"\$JAVA_OPTS -Djboss.bind.address=$INTERNAL_IP_ADDRESS -Djboss.bind.address.private=$INTERNAL_IP_ADDRESS -Djboss.bind.address.management=$INTERNAL_IP_ADDRESS\"" >> $JBOSS_HOME/bin/domain.conf echo 'HOST_CONTROLLER_JAVA_OPTS="$HOST_CONTROLLER_JAVA_OPTS $JAVA_OPTS"' >> $JBOSS_HOME/bin/domain.conf # Configure S3 domain controller discovery yum install patch -y cd $JBOSS_HOME/domain/configuration echo "--- host-slave.xml.orig 2016-06-07 09:55:27.183390617 +0200 +++ host-slave.xml 2016-06-07 09:56:52.540170784 +0200 @@ -57,7 +57,11 @@ <domain-controller> <remote security-realm=\"ManagementRealm\"> <discovery-options> - <static-discovery name=\"primary\" protocol=\"\${jboss.domain.master.protocol:remote}\" host=\"\${jboss.domain.master.address}\" port=\"\${jboss.domain.master.port:9990}\"/> + <discovery-option name=\"s3-discovery\" module=\"org.jboss.as.host-controller\" code=\"org.jboss.as.host.controller.discovery.S3Discovery\"> + <property name=\"access-key\" value=\"$ACCESS_KEY_ID\"/> + <property name=\"secret-access-key\" value=\"$SECRET_ACCESS_KEY\"/> + <property name=\"location\" value=\"$S3_PING_BUCKET\"/> + </discovery-option> </discovery-options> </remote> </domain-controller> " | patch host-slave.xml sed -i 's/<!--.*-->//g' host-slave.xml # remove nasty '!' signs which break bash sed -i '/^[ ]*$/d' host-slave.xml # remove nasty lines with ' ' whitespaces which break the patch EAP_HOST_NAME=`$JBOSS_HOME/bin/jboss-cli.sh --commands="embed-host-controller --host-config=host-slave.xml, :read-resource" | grep \"host\" | cut -d\" -f4` $JBOSS_HOME/bin/jboss-cli.sh --commands="embed-host-controller --host-config=host-slave.xml, /host=$EAP_HOST_NAME/core-service=management/security-realm=ManagementRealm/server-identity=secret:write-attribute(name=value,value=c2VjcmV0X1Bhc3N3MHJk)" sed -i 's/<host xmlns="urn:jboss:domain:8.0">/<host xmlns="urn:jboss:domain:8.0" name="admin">/' host-slave.xml sed -i 's/other-server-group/main-server-group/' host-slave.xml cd - # Need to modify permissions since this script is executed as the root user chgrp jboss $JBOSS_HOME/domain/configuration/domain_xml_history/ chgrp jboss $JBOSS_HOME/domain/configuration/host_xml_history/ chgrp jboss $JBOSS_HOME/domain/configuration/domain-ec2.xml chgrp jboss $JBOSS_HOME/domain/log/audit.log chgrp jboss $JBOSS_HOME/domain/log/host-controller.log chown jboss $JBOSS_HOME/domain/configuration/domain_xml_history/ chown jboss $JBOSS_HOME/domain/configuration/host_xml_history/ chown jboss $JBOSS_HOME/domain/configuration/domain-ec2.xml chown jboss $JBOSS_HOME/domain/log/audit.log chown jboss $JBOSS_HOME/domain/log/host-controller.log # Start JBoss EAP, do not forget that RHEL 7 does not wait for JBoss EAP to start before returning from the service start. In some cases, there could be a delay of more than 90 seconds. $START_COMMAND
改訂日時: 2024-02-08