WildFly 8 - Linux 用に新しく改良された JBoss アプリケーション サーバー
ご存知のとおり、JBoss AS は WildFly に名前が変更されました。多くの新機能が追加され、多くの機能がアップグレードされました。ついにWildFly 8.0.0 Final が2014 年 2 月 11 日にリリースされました。 WildFly プロジェクトのリーダー、ジェイソン・ グリーン氏も同様に発表した。
WildFly 8 は、Red Hat のJava EE 7 準拠のオープンソース アプリケーション サーバーです。主な特長は以下の通りです。
Java EE 7 との互換性
これの最大の変更点は、WildFly 8 が正式な Java EE7 認定を受けたことです。
高性能Webサーバー
Undertow は、Java で書かれた新しい高性能 Web サーバーです。これは WildFly 8 に実装されました。これは実際に高スループットとスケーラビリティを考慮して設計されており、数百万の接続を処理できます。 Undertow のライフサイクルは、埋め込みアプリケーションによって完全に制御されます。これは非常に軽量で、コア jar のサイズは 1MB で、組み込みサーバーの使用ヒープ スペースは 4MB 未満です。これは本当に素晴らしいことです。
3ポート削減
HTTP のアップグレードをサポートする Undertow を使用しているため、単一の HTTP ポート上で複数のプロトコルを多重化できます。 WildFly 8 では、ほぼすべてのプロトコルが 2 つの HTTP ポート (1 つは管理ポート、もう 1 つはアプリケーション ポート) 上で多重化されるようになりました。これは非常に大きな変更であり、単一サーバー上で数百から数千のインスタンスを実行するクラウド プロバイダー (OpenShift など) にとってメリットとなります。合計で、構成用のデフォルト ポートが 2 つあり、9990 (Web 管理コンソール) と 8080 (アプリケーション コンソール) です。
管理役割ベースのアクセス制御と監査
これは、WildFly 8 で実装された新しくて興味深いものです。これを使用すると、さまざまなユーザーを作成し、要件に応じてそれらのユーザーをさまざまな役割に割り当てることができます。後ほどスクリーンショットとともに紹介します。
ロギング
管理 API は、サーバー上で使用可能なログ ファイルを一覧表示および表示する機能をサポートするようになりました。これで、コンテナーのロギングをスキップしたいあらゆる種類のデプロイメントで使用できる「add-logging-api-dependency」という属性ができました。これにより、暗黙的なサーバーログの依存関係の追加が無効になります。別のオプションがあります。つまり、jboss-deployment- Structure.xml を使用してロギングサブシステムを除外できます。これを使用すると、ログ サブシステムの展開を停止するのに役立ちます。
また、別のパラメータ、つまり use-deployment-logging-config を使用して、デプロイメント内のロギング設定ファイルの処理を有効/無効にすることもできます。
注: ログごとに無効にするために使用していたシステム プロパティは、このバージョンから非推奨になりました。
クラスタリング
繰り返しますが、大きな変化は 1 つのクラスタリングです。クラスタリングのサポートに関連するすべての機能は WildFly 8 で変更されており、これには以下が含まれます。
- 分散 Web セッションは、新しい Java ベースの Web サーバー (Undertow) で最適化されています。
- Undertow の mod_cluster サポート。
- 最適化された分散 SSO (シングル サインオン) 機能と Undertow のサポート。
- 新しい/最適化された分散 @Stateful EJB キャッシュ実装。
- WildFly 8 には、新しいパブリック クラスタリング API がいくつか追加されました。
- シングルトン サービスを作成するために、新しいパブリック API が提供されます。
CLIの改善
CLI 設定も改善されました。ご存知のように、管理者は全員 CLI で作業するのが大好きです ;)。これで、特定のサーバーのエイリアスを作成し、connect コマンドを使用してそのサーバーに接続したいときはいつでもそのエイリアスを使用できるようになりました。
WildFly 8 にはまだ多くの機能強化と更新が行われています。これらはすべて次の場所で確認できます。
- http://wildfly.org/news/2014/02/11/WildFly8-Final-Limited/
Linux への WildFly 8 のインストール
インストールを進める前に、 システムにJava EE 7 がインストールされていることを確認してください。 WildFly 8 は以前のリビジョンでは動作しません。 Linux システムに Java EE 7 をインストールするには、以下のガイドに従ってください。
- Linux に JDK/JRE 7u25 をインストールする
ステップ 1: WildFly 8 をダウンロードする
次のリンクを使用して、最新の WildFly zip ファイルをダウンロードします。
- http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip
「wget」 コマンドを使用してコマンドラインで直接ダウンロードすることもできます。
[root@tecmint]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip
zip ファイルを任意の場所 (例: 私の場合は「/data/」) にコピーし、「unzip」コマンドを使用して解凍します。
[root@tecmint]# cp wildfly-8.0.0.Final.zip /data/
[root@tecmint]# cd /data/
[root@tecmint data]# unzip wildfly-8.0.0.Final.zip
ステップ 2: 環境変数の設定
次に、いくつかの環境変数を設定します。これらはシステムごとに、または構成ファイル内で設定できます。ここでは、「bin」フォルダ内の設定ファイル standalone.sh と standalone.conf 内に設定しています。
[root@tecmint data]# cd wildfly-8.0.0.Final
[root@tecmint data]# cd bin/
次の 2 行を standlone.sh/standlone.conf ファイルに追加します。 WildFly のインストール場所と Java ホームの場所を指定してください。
JBOSS_HOME=”/data/wildfly-8.0.0.Final”
JAVA_HOME=”/data/java/jre7/bin/java”
注: システム全体の場合、「/etc/profile」ファイルの下に設定できます。
ステップ 3: WildFly 8 を開始する
次にサーバーを起動します。つまり、スタンドアロン モードの場合は「standalone.sh」を使用し、ドメイン モードの場合は「domain.sh」を使用します。
[root@tecmint bin]# ./standalone.sh
[root@tecmint bin]# ./domain.sh
ただし、ここではスタンドアロン モードで開始します。デフォルトでは、「standalone.xml」ファイルによって開始されますが、「–server-config」オプションを使用して他の構成で開始することもできます。
以下のように、「standalone-full-ha.xml」でサーバーを起動しています。このファイルは「$JBOSS_HOME/standalone(profile)/configuration/」に存在します。
[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
サンプル出力
Calling "/data/wildfly-8.0.0.Final/standalone/configuration/standalone.conf"
Setting JAVA property to "/data/java/jre7/bin/java"
===============================================================================
JBoss Bootstrap Environment
JBOSS_HOME: "/data/wildfly-8.0.0.Final"
JAVA: "/data/java/jre7/bin/java"
JAVA_OPTS: "-client -Dprogram.name=standalone.sh -Xms64M -Xmx512M -XX:MaxPerm
Size=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"
===============================================================================
13:55:26,403 INFO [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:55:33,812 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:55:35,481 INFO [org.jboss.as] (MSC service thread 1-1) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:55:58,646 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
...........
13:56:22,778 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
13:56:22,794 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
13:56:22,794 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 64534ms - Started 229 of 356 services (172 services are lazy, passive or on-demand)
ステップ 4: WildFly 8 へのアクセス
これで、ブラウザで「http://localhost:8080」(デフォルト設定の http ポートを使用している場合)を指定できるようになり、ようこそ画面が表示されます。
ここから、WildFly コミュニティのドキュメント ガイドや拡張された Web ベースの管理コンソール アクセスにアクセスできます。
ステップ 5: WildFly 8 の管理
WildFly 8 には、実行中のインスタンスを管理するための 2 つの管理コンソールが用意されています。
- Web ベースの管理コンソール
- コマンドラインインターフェース
管理コンソールに接続する前、またはコマンド ラインをリモートで使用する前に、bin フォルダ内の「add-user.sh」スクリプトを使用して新しいユーザーを作成する必要があります。
次に、「bin」ディレクトリに移動し、add-user.sh で「JBOSS_HOME」を設定します(変数がシステムベースで設定されていない場合)。そして以下のようにユーザーを作成します。
[root@tecmint bin]# ./add-user.sh
スクリプトを開始すると、新しいユーザーを追加するプロセスが案内されます。
サンプル出力
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin
The username 'admin' is easy to guess
Are you sure you want to add user 'admin' yes/no? yes
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
- The password should not be one of the following restricted values {root, admin, administrator}
- The password should contain at least 8 characters, 1 alphanumeric character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
- The password should be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'admin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'admin' to file '/data/wildfly-8.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'admin' to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'admin' with groups to file /data/wildfly-8.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'admin' with groups to file /data/wildfly-8.0.0.Final/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? yes
To represent the user add the following to the server-identities definition
Press any key to continue . . .
次に、「http://localhost:9990/console」にある Web ベースの管理コンソールにアクセスし、新しく作成したユーザー名とパスワードを入力して、管理コンソールに直接アクセスします。
ログイン後の最初の画面。
CLI からサーバーを処理したい場合は、「bin」ディレクトリから「jboss-cli.sh」スクリプトを実行します。同じ機能を Web ベースの UI 経由で利用できます。
[root@tecmint bin]# cd bin
[root@tecmint bin]# ./jboss-cli.sh --connect
Connected to standalone controller at localhost:9999
詳細については、https://docs.jboss.org/author/display/WFLY8/Documentation にある公式のWildFly 8 ドキュメントに従ってください。
こちらもお読みください : WildFly (JBoss AS) – GUI を使用して CLI にアクセスして管理する方法