商用プロジェクトにおいて、3階層システムを扱わない環境はまずありません。そもそも3階層システムとは、「プレゼンテーション層」「アプリケーション層」「データ層」から構成されるのが一般的です。プレゼンテーション層へはにhttpd(Apacje)サービス等が導入されことが一般的です。
しかしながら、昨今の「プレゼンテーション層」の利用用途は、利用者からのリクエストを「アプリケーション層」へ振り分けるプロキシとしての役割を提供することが一般的になりました。実際のコンテンツは「プレゼンテーション層」側の「サーバーサイドアプリケーション」によりサービス提供を行います。
この記事では「プレゼンテーション層」で「稼働するサーブレットコンテナ(jBoss-eap-7.2.x)」のインストールについて解説します。
APサーバーとは?
「AP(アプリケーション)」サーバーとは、「Java」や「Ruby」「PHP」等のアプリケーション機能に特化したミドルウェアモジュールを導入したサーバーを指します。Webサーバからのリクエストを元に、「Java」や「Ruby」「PHP」等の導入済みミドルウェアの機能を使って結果をWebサーバーへ返します。
サーブレットコンテナ とは?
サーブレットコンテナとは、HTMLなどのWebページを動的に生成するJavaを動作させるためのソフトウェアを指します。圧倒的な需要から、現在、開発言語の主流となっている「Java」ですが、動作されるためには、サーブレットコンテナが必要になります。
サーブレットコンテナは、Webブラウザからのリクエストに対して1プロセスを割り当てる「CGI」とは異なり、Webブラウザからのリクエストに対してプロセス内の1スレッドが対応する「マルチスレッド」が特徴です。これにより、効率の良いメモリ管理が行えます。
現在までに「Tomcat」「play」「Glassfish」「jetty」「WebSphere」「webLogic」「jboss」と様々なサーブレットコンテナが開発されてきました。中でも「jboss」はもともと、「Tomcat」を魔改造したコンテナであり、今後の商用プロジェクトにおいて「jboss」は、事実上標準「コンテナ」として認識されていくものと思われます。
本記事では、サーブレットコンテナとして「jboss-eap」を採用することとします。
JBossとは
JBoss Application Serverとは、JBoss.orgを中心にオープンソースで開発されているJava EEのAPサーバです。 JBossは、オープンソースで開発されている有力なJava EEアプリケーションサーバの一つであり、「All in One」を用いることでフルスタックな環境を実現できることで人気を博しています。
RedHat社では、JBoss Enterprise Middlewareの中核となるコンポーネントとなっています。
想定する構築環境
JBoss Application Serverの導入を行う前提として、下記の環境を想定しています。本記事から少しずつ本格的な論理図風味にしていきます。
Webサーバー (wb01)-Apサーバー (ap01,ap02) 関連図
フロントのapacheで受けたトラフィックをバックのjboss-eapの負荷に応じて負荷分散させ、片系が停止した際にはセッション情報が引き継がれるようにします。
apacheが単一障害点になるので実際の構築ではapacheも2重化する必要があるかと思います。
本記事でのjboss-eap構成は「ドメイン構成」として作成します。
※ ap01:マスター ap02:スレイブとして構築します。
APサーバーの導入
APサーバーを導入するにあたって、下記の設定が住んでいるものとして話を進めます。
- firewalldサービスの停止
- yumリポジトリの設定
- 「/etc/hosts」の設定
また、下記の流れに沿って「JBOSS-EAP」モジュールを導入していきます。
APサーバー導入の流れ
- 「jboss」ユーザ、グループ作成(マスタ、スレイブ)
- 「openjdk」導入(マスタ、スレイブ)
- 「JBoss-eap 7.2.0」導入(マスタ、スレイブ)
ユーザーとグループの作成
「jboss-eap」をインストールする前に、jboss操作用ユーザを作成していきます。
下記の手順でユーザーを作成します。
# groupadd -g 1100 jboss
# useradd -u 1100 -g jboss -M -d /opt/jboss -s /bin/bash jboss
※ 「jboss」ユーザーのuid,gidは任意のidを設定してください。
JDKモジュールの導入確認
jbossを実行するためには、「java(jdk)」が必要になります。
本記事では、「RHEL7.5」のISOメディアのバンドル版「java-1.8.0-openjdk」を採用します。
次のコマンドを入力して、jdkの導入有無を確認します。
※ 全回記事のKickStartで導入した場合は「java-1.8.0-openjdk」モジュールはインストールされています。
# yum info java-1.8.0-openjdk
JBOSS-EAP7.2.0の導入
JBOSS-EAP導入の流れ
- jboss-eap7.2.0のZIPファイルのダウンロード
- 「 jboss-eap-7.2.0-installer.jar 」の所有権を「jboss」へ変更する。
- jboss-eap7.2.0のインストール(インストーラー版)
- スレイブ側の接続ユーザ作成
- スレイブ側の接続ユーザ(管理ユーザー)作成
- jboss-eap7.2.0の起動
① JBOSS-EAP7.2.0のZIPファイルのダウンロード
下記の手順に従い「 JBoss EAP 」をダウンロードします。
- Red Hat カスタマーポータル (https://access.redhat.com) にログイン。
- ダウンロードをクリック。
- 製品のダウンロードリストの Red Hat JBoss Enterprise Application Platform をクリック。
- Version ドロップダウンメニューから JBoss EAP の正しいバージョンを選択。
- リストで Red Hat JBoss Enterprise Application Platform 7.2.0 を見つけ、Download リンクをクリック。
② 所有権を「jboss」変更する。
「 jboss-eap-7.2.0-installer.jar 」ファイルを「/opt/jboss」配下へ格納します。
「 jboss-eap-7.2.0-installer.jar 」 を格納した後、下記のコマンドを実行して「/opt/jboss」配下の所有権を「jboss」へ変更します。
# chown -R jboss:jboss /opt/jboss
コマンドを実行した後、「/opt/jboss」配下がすべて「jboss」へ変更されている。
③ JBOSS-EAP7.2.0のインストール(インストーラー版)
JBoss EAP JAR インストーラーは Red Hat カスタマーポータルから入手できます。
「jboss-eap-7.2.0-installer.jar」アーカイブを使用して、グラフィカルまたはテキストベースのインストーラーを実行できます。
サポートされるすべてのプラットフォームでは、インストーラーを用いて JBoss EAP をインストールする方法が推奨されます。
JBossインストーラーの実行手順
- ターミナルを開き、ダウンロードした JBoss EAP インストーラーの JAR ファイルが含まれるディレクトリーに移動します。
- 以下のコマンドを実行して、グラフィカルインストーラーを起動します。
「 # java -jar jboss-eap-7.2.0-installer.jar 」 - 以下の手順を実行します。下記参照
尚、本記事では「jboss」の所有ユーザーは[jboss」としている為、インストーラーは「jboss」ユーザーにて実行します。
※ 「ap01」「ap02」で実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
[root@ap01 opt]# su - jboss 最終ログイン: 2020/03/26 (木) 14:01:46 JST日時 pts/0 -bash-4.2$ pwd /opt/jboss -bash-4.2$ ls -l 合計 218088 -rw-r--r-- 1 jboss jboss 223318631 3月 26 13:07 jboss-eap-7.2.0-installer.jar -bash-4.2$ java -jar jboss-eap-7.2.0-installer.jar 以下で言語を選択してください。 : 0: English 1: 中文 2: Deutsch 3: francais 4: 日本語 5: portugues 6: espanol Please choose [4] : 4 END USER LICENSE AGREEMENT RED HAT JBOSS(r) MIDDLEWARE(tm) PLEASE READ THIS END USER LICENSE AGREEMENT CAREFULLY BEFORE USING SOFTWARE FROM RED HAT. BY USING RED HAT SOFTWARE, YOU SIGNIFY YOUR ASSENT TO AND ACCEPTANCE OF THIS END USER LICENSE AGREEMENT AND ACKNOWLEDGE YOU HAVE READ AND UNDERSTAND THE TERMS. AN INDIVIDUAL ACTING ON BEHALF OF AN ENTITY REPRESENTS THAT HE OR SHE HAS THE AUTHORITY TO ENTER INTO THIS END USER LICENSE AGREEMENT ON BEHALF OF THAT ENTITY. IF YOU DO NOT ACCEPT THE TERMS OF THIS AGREEMENT, THEN YOU MUST NOT USE THE RED HAT SOFTWARE. THIS END USER LICENSE AGREEMENT DOES NOT PROVIDE ANY RIGHTS TO RED HAT SERVICES SUCH AS SOFTWARE MAINTENANCE, UPGRADES OR SUPPORT. PLEASE REVIEW YOUR SERVICE OR SUBSCRIPTION AGREEMENT(S) THAT YOU MAY HAVE WITH RED HAT OR OTHER AUTHORIZED RED HAT SERVICE PROVIDERS REGARDING SERVICES AND ASSOCIATED PAYMENTS. This end user license agreement (EULA) governs the use of the Red Hat JBoss Middleware and any related updates, source code, appearance, structure and organization (the Programs), regardless of the delivery mechanism. 1. License Grant. Subject to the following terms, Red Hat, Inc. (Red Hat) grants to you a perpetual, worldwide license to the Programs (each of which may include multiple software components) pursuant to the GNU Lesser General Public License v. 2.1. With the exception of certain image files identified in Section 2 below, each software component is governed by a license that permits you to run, copy, modify, and redistribute (subject to certain obligations in some cases) the software component. This EULA pertains solely to the Programs and does not limit your rights under, or grant you rights that supersede, the license terms applicable to any particular component. 2. Intellectual Property Rights. The Programs and each of their components are owned by Red Hat and other licensors and are protected under copyright law and under other laws as applicable. Title to the Programs and any component, or to any copy, modification, or merged portion shall remain with Red Hat and other licensors, subject to the applicable license. The JBoss trademark, Red Hat trademark, the individual Program trademarks, and the Shadowman logo are registered trademarks of Red Hat and its affiliates in the U.S. and other countries. This EULA does not permit you to distribute the Programs using Red Hat's trademarks, regardless of whether they have been modified. You may make a commercial redistribution of the Programs only if (a) permitted under a separate written agreement with Red Hat authorizing such commercial redistribution or (b) you remove and replaced all occurrences of Red Hat trademarks and logos. Modifications to the software may corrupt the Programs. You should read the information found at http://www.redhat.com/about/corporate/trademark/ before distributing a copy of the Programs. 3. Limited Warranty. Except as specifically stated in this Section 3, a separate agreement with Red Hat, or a license for a particular component, to the maximum extent permitted under applicable law, the Programs and the components are provided and licensed as is without warranty of any kind, expressed or implied, including the implied warranties of merchantability, non-infringement or fitness for a particular purpose. Red Hat warrants that the media on which the Programs and the components are provided will be free from defects in materials and manufacture under normal use for a period of 30 days from the date of delivery to you. Neither Red Hat nor its affiliates warrant that the functions contained in the Programs will meet your requirements or that the operation of the Programs will be entirely error free, appear or perform precisely as described in the accompanying documentation, or comply with regulatory requirements. This warranty extends only to the party that purchases subscription services for the Programs from Red Hat and/or its affiliates or a Red Hat authorized distributor. 4. Limitation of Remedies and Liability. To the maximum extent permitted by applicable law, your exclusive remedy under this EULA is to return any defective media within 30 days of delivery along with a copy of your payment receipt and Red Hat, at its option, will replace it or refund the money you paid for the media. To the maximum extent permitted under applicable law, under no circumstances will Red Hat, its affiliates, any Red Hat authorized distributor, or the licensor of any component provided to you under this EULA be liable to you for any incidental or consequential damages, including lost profits or lost savings arising out of the use or inability to use the Programs or any component, even if Red Hat, its affiliates, an authorized distributor, and/or licensor has been advised of the possibility of such damages. In no event shall Red Hat's or its affiliates' liability, an authorized distributor's liability or the liability of the licensor of a component provided to you under this EULA exceed the amount that you paid to Red Hat for the media under this EULA. 5. Export Control. As required by the laws of the United States and other countries, you represent and warrant that you: (a) understand that the Programs and their components may be subject to export controls under the U.S. Commerce Department's Export Administration Regulations (EAR (b) are not located in a prohibited destination country under the EAR or U.S. sanctions regulations (currently Cuba, Iran, Iraq, North Korea, Sudan and Syria, subject to change as posted by the United States government); (c) will not export, re-export, or transfer the Programs to any prohibited destination, persons or entities on the U.S. Bureau of Industry and Security Denied Parties List or Entity List, or the U.S. Office of Foreign Assets Control list of Specially Designated Nationals and Blocked Persons, or any similar lists maintained by other countries, without the necessary export license(s) or authorizations(s); (d) will not use or transfer the Programs for use in connection with any nuclear, chemical or biological weapons, missile technology, or military end-uses where prohibited by an applicable arms embargo, unless authorized by the relevant government agency by regulation or specific license; (e) understand and agree that if you are in the United States and export or transfer the Programs to eligible end users, you will, to the extent required by EAR Section 740.17(e), submit semi-annual reports to the Commerce Department's Bureau of Industry and Security, which include the name and address (including country) of each transferee; and (f) understand that countries including the United States may restrict the import, use, or export of encryption products (which may include the Programs and the components) and agree that you shall be solely responsible for compliance with any such import, use, or export restrictions. 6. Third Party Programs. Red Hat may distribute third party software programs with the Programs that are not part of the Programs. These third party software programs are not required to run the Programs, are provided as a convenience to you, and are subject to their own license terms. The license terms either accompany the third party software programs or can be viewed at http://www.redhat.com/licenses/thirdparty/eula.html. If you do not agree to abide by the applicable license terms for the third party software programs, then you may not install them. If you wish to install the third party software programs on more than one system or transfer the third party software programs to another party, then you must contact the licensor of the applicable third party software programs. 7. General. If any provision of this EULA is held to be unenforceable, the enforceability of the remaining provisions shall not be affected. Any claim, controversy or dispute arising under or relating to this EULA shall be governed by the laws of the State of New York and of the United States, without regard to any conflict of laws provisions. The rights and obligations of the parties to this EULA shall not be governed by the United Nations Convention on the International Sale of Goods. Copyright (c) 2013 Red Hat, Inc. All rights reserved. Red Hat, JBoss and the JBoss logo are registered trademarks of Red Hat, Inc. All other trademarks are the property of their respective owners. 継続するには 1 を、終了するには 2 を、再表示するには 3 を押してください。 1 インストールパスの選択: [/opt/jboss/EAP-7.2.0] 継続するには 1 を、終了するには 2 を、再表示するには 3 を押してください。 1 インストールしたいパッケージを選択してください: 1 [x] [必須] [Red Hat JBoss Enterprise Application Platform] (30.73 MB) 2 [x] [AppClient] (39.72 KB) 3 [x] [Docs] (13.65 MB) 4 [x] [必須] [モジュール] (183.75 MB) 5 [x] [必須] [Welcome コンテンツ] (2.16 MB) Total Size Required: 230.34 MB 0 を押して選択を確認 インストールしたいパックを選択してください 0 パックの選択完了 継続するには 1 を、終了するには 2 を、再表示するには 3 を押してください。 1 管理ユーザーの作成 このユーザーは、管理上の目的でホストコンテナの管理レルムに追加されます。このユーザーを使用して、管理コンソール、管理 CLI、またはこのレルムでセキュア化された他のアプリケーションにアクセスできます。 最小限のセキュリティーを確保するために、パスワードは 8 文字以上である必要があり、アルファベット、数 字、および "&" を除く英数字以外の文字がそれぞれ 1 文字以上含まれている必要があります。 管理ユーザー名: [admin] jb7admin 管理パスワード: [] ******** 管理パスワードを再入力: [********] ******** 継続するには 1 を、終了するには 2 を、再表示するには 3 を押してください。 1 [ アンパックを開始中 ] [ パッケージの処理中: Red Hat JBoss Enterprise Application Platform (1/5) ] [ パッケージの処理中: AppClient (2/5) ] [ パッケージの処理中: Docs (3/5) ] [ パッケージの処理中: モジュール (4/5) ] [ パッケージの処理中: Welcome コンテンツ (5/5) ] [ アンパックが終了しました。 ] ランタイム環境の設定 サーバーがインストールされたため、Red Hat JBoss Enterprise Application Platform に複数の設定オプションが追加されました。オプションは個別に選択でき、「次へ」を押すと表示順に設定されます。ここで設定を行いますか? 0 [x] デフォルト設定の実行 1 [ ] 詳細設定の実行 入力事項の選択: 0 継続するには 1 を、終了するには 2 を、再表示するには 3 を押してください。 1 [ 処理開始 ] プロセス開始 インストール情報をログに記録中 (1/3) IzPack 変数の状態が次に書き込まれました: /opt/jboss/EAP-7.2.0/installation/InstallationLog.txt プロセス開始 管理ユーザーの追加中 (2/3) プロセス開始 無関係なフォルダーおよび一時ファイルのクリーンアップ (3/3) スタートメニューにショートカットを作成します。 (y/n) [y]: n インストールが正常に完了しました。 アプリケーションがインストールされました。 /opt/jboss/EAP-7.2.0 自動インストールスクリプトとプロパティーファイルを生成しますか? (y/n) [n]: n [ Console installation done ] -bash-4.2$ |
※ パスワードは任意の文字を入力してください。
インストールが正常に終了すれば「/opt/jboss/」配下へ、各種リソースが展開されます。
④ スレイブ側の接続ユーザ(ap02)作成
「jboss」ユーザーで「$JBOSS_HOME/bin/add-user.sh」を起動してユーザーを追加する。
ドメイン環境で複数台サーバーを構築する場合は、ドメインコントローラとなるサーバーにスレーブサーバー分のユーザー名とパスワードを設定します。(ユーザー名をスレーブのホスト名として登録します。 )
※ スレイブ側のユーザ作成は「マスターサーバー(ap01)」側で登録を行います。
管理CLIは「/opt/jboss/EAP-7.2.0/bin」配下の「 add-user.sh 」で起動します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
-bash-4.2$ cd /opt/jboss/EAP-7.2.0/bin -bash-4.2$ pwd /opt/jboss/EAP-7.2.0/bin -bash-4.2$ ./add-user.sh どのようなユーザータイプを追加しますか? a) 管理ユーザー (mgmt-users.properties) b) アプリケーションユーザー (application-users.properties) (a): a 追加する新規ユーザーの詳細を入力します。 レルム 'ManagementRealm' を既存のプロパティーファイルで見つかったとおりに使用しています。 ユーザ名 : ap02 パスワードの推奨事項は以下のとおりです。この制限を変更するには、add-user.properties 設定ファイルを編集します。 - パスワードとユーザー名は異なるものにする必要があります - パスワードは、制限された次の値のいずれかでない必要があります {root, admin, administrator} - パスワードは 8 文字, 1 英字, 1 文字, 1 文字 (英数字以外) 文字以上である必要があります パスワード : パスワードを再度入力してください。 : このユーザーが所属するグループはどれですか? (カンマ区切りリストを入力してください。所属グループがない場合は空白のままにしてください。)[ ]: jboss レルム 'ManagementRealm' にユーザー 'ap02' を追加します。 正しいですか yes/no? y ユーザー 'ap02' をファイル '/opt/jboss/EAP-7.2.0/standalone/configuration/mgmt-users.properties' に 追加しました。 ユーザー 'ap02' をファイル '/opt/jboss/EAP-7.2.0/domain/configuration/mgmt-users.properties' に追加 しました。 グループ 'jboss' のユーザー 'ap02' をファイル '/opt/jboss/EAP-7.2.0/standalone/configuration/mgmt-groups.properties' に追加しました グループ 'jboss' のユーザー 'ap02' をファイル '/opt/jboss/EAP-7.2.0/domain/configuration/mgmt-groups.properties' に追加しました Is this new user going to be used for one AS process to connect to another AS process? e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls. yes/no? y ユーザーを参照するには、server-identities 定義に以下を追加します。 <secret value="UEBzc1cwcmQ=" /> -bash-4.2$ |
13行目:スレイブとして、「ap02」を登録しています。
※ パスワードは任意の文字を入力してください。
⑤ 「JBoss」の管理ユーザー作成
管理CLIに接続するためにmgmtusr(管理ユーザー)を追加します。
※ 本作業は「ap01」側で登録を行います。なお、この管理ユーザーは、ブラウザからの設定画面ログイン時に必要になります。
「jboss」ユーザーで「$JBOSS_HOME/bin/add-user.sh」を起動してユーザーを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
-bash-4.2$ ./add-user.sh どのようなユーザータイプを追加しますか? a) 管理ユーザー (mgmt-users.properties) b) アプリケーションユーザー (application-users.properties) (a): a 追加する新規ユーザーの詳細を入力します。 レルム 'ManagementRealm' を既存のプロパティーファイルで見つかったとおりに使用しています。 ユーザ名 : mgmtusr パスワードの推奨事項は以下のとおりです。この制限を変更するには、add-user.properties 設定ファイルを編集します。 - パスワードとユーザー名は異なるものにする必要があります - パスワードは、制限された次の値のいずれかでない必要があります {root, admin, administrator} - パスワードは 8 文字, 1 英字, 1 文字, 1 文字 (英数字以外) 文字以上である必要があります パスワード : パスワードを再度入力してください。 : このユーザーが所属するグループはどれですか? (カンマ区切りリストを入力してください。所属グループがない場合は空白のままにしてください。)[ ]: レルム 'ManagementRealm' にユーザー 'mgmtusr' を追加します。 正しいですか yes/no? y ユーザー 'mgmtusr' をファイル '/opt/jboss/EAP-7.2.0/standalone/configuration/mgmt-users.properties' に追加しました。 ユーザー 'mgmtusr' をファイル '/opt/jboss/EAP-7.2.0/domain/configuration/mgmt-users.properties' に追加しました。 グループ '' のユーザー 'mgmtusr' をファイル '/opt/jboss/EAP-7.2.0/standalone/configuration/mgmt-groups.properties' に追加しました グループ '' のユーザー 'mgmtusr' をファイル '/opt/jboss/EAP-7.2.0/domain/configuration/mgmt-groups.properties' に追加しました Is this new user going to be used for one AS process to connect to another AS process? e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls. yes/no? n -bash-4.2$ |
※ パスワードは任意の文字を入力してください。
⑥ jboss-eap7.2.0の起動
次のコマンドを実行して「jboss-eap-7.2.0」を起動します。
1 2 3 4 |
# ps -ef | grep -v grep | grep jboss # su - jboss $ cd /opt/jboss/EAP-7.2.0/bin $ ./standalone.sh |
1行目:jbossが起動していないことを確認
2行目:jbossユーザーへスイッチ
3行目:「 /opt/jboss/EAP-7.2.0/bin 」へ移動
4行目:jbossの実行 ※ 起動確認の為「standalone.sh」を実行しています。
以上で「 jboss-eap 」のインストールは完了です。
仮想サーバー構築(全9記事)[追加記事作成中]
├─KickStartを使ってVmWare Player上へLinuxを導入する!
├─KickStart設定ファイルについて!
├─httpd(Apache)サーバーの導入
├─NICチーミングを設定する!
├─サーブレットコンテナ(JBOSS)の導入
├─JBoss-EAPを設定する!
├─Web-AP間連携の設定を行う!
├─VmWare Playerのディスク共有設定を行う!
└─共有ディスク上へデータ格納領域を作成する