MacにJBossをインストールする方法

前回、次のポストはGit関連の内容にすると宣言していた。しかし、Gitはネットや書籍に腐るほど情報があるため、Gitはやめて、最近触り始めたJBossについて書くことにする。

本日、MacにJBossをインストールしてみた。インストールする際に、ネットを徘徊して情報を探したが、以外に情報が少ない。もしくは、情報が古い(10年前とか)。JBossを使うような基幹系システムをMacを動かそうとする人が少ないからだろうか。

本記事で、インストールした際のログを残す。
環境:OS X 10.10.3 Yosemite, Java JDK version "1.7.0_79"

1. JBossのダウンロード


まずは、JBoss(WebコンテナとEJBコンテナ)をRedhatのサイトからダウンロードする。
https://www.jboss.org/products/eap/get-started/#!project=eap
(もしかしたら、Redhatにログインを求められるかもしれない。アカウントを持っていなかったら、作れば良い。無料。)


Redhatのページに移動したら、上の写真にあるSee all downloadsに行く。そのページから、JBossをダウンロード出来る。

ただ、ファイル形式が複数ある(jar, zip, maven repository)。それぞれの形式のインストール方法は、以下のPDFに詳しく載っている。
JBossEnterpriseApplicationPlatform6インストールガイド(PDF)

自分は、一番簡単そうなzipファイルからのインストールを行った。zipファイル(jboss-eap-6.4.0.zip)は、ひとまず~/Downloadに置いた。

2. JBossのインストール


インストール時に参考にしたのは、以下のサイト
おもむくがままに Mac OS XでJBossを動かす
10年前のブログ記事だが、基本的にこれと同じ方法でJBoss(MBeanServer)が起動した。下に、実際に打ち込んだコマンドを記載する。

cd /usr/local
sudo mkdir jboss
cd ~/Download
sudo mv jboss-eap-6.4.0.zip /usr/local/jboss/
cd $_
sudo unzip jboss-eap-6.4.0.zip 
cd jboss-eap-6.4
sudo mv ./* ../

3. JBossの起動

起動は以下のコマンドだけで良い。
sudo /usr/local/jboss/bin/standalone.sh

ちなみに、自分が参考にしていた『JBoss入門』という2003年に出版された本では、run.shで起動と書いてある。さらに、つい最近windowsで試した時(※)には、run.batで問題なく起動した。しかし、今回Macで試した時には、以下のようなメッセージが出力された。

========================================================================================

To start a JBoss Enterprise Application Platform 6 Standalone Server, a single
server instance, use the command:

/usr/local/jboss/bin/standalone.sh


To start a JBoss Enterprise Application Platform 6 Managed Domain, allowing control
and management of multiple instances, use the command:

/usr/local/jboss/bin/domain.sh

========================================================================================

つまり、standalone構成で動かしたいなら、standalone.sh使えというアドバイスだ。言うとおりにstandalone.shを使う。

その後は、ブラウザを立ち上げて、http://localhost:8080/にアクセスすると、以下のような画面が出るはずである。


※ windowsで試した時は、JBossをredhatのサイトではなく、以下のサイトからダウンロードした。もしかしたら、下のサイトのファイルはバージョンが古いか、AS (Application Server)版のかもしれない。そのため、古い本と同じ動かし方でうまく行った可能性がある。
SourceForge JBoss Community
AS版とEAP (Enterprise Application Platform)版の違いは、以下を参照
nekop's blog コミュニティ版JBoss ASとエンタープライズ版JBoss EAPの違い

4. JBossコンソール(JMXコンソール)の起動

JBossを使う際には、JXMコンソールを利用する。そこで、上に載せた画面内のAdministration Consoleをクリックする。しかし、その際に以下のようなメッセージが出るはずだ。

Welcome to JBoss EAP 6
The Enterprise Application Platform 6 is running.

However you have not yet added any users to be able to access the admin console.

To add a new user execute the add-user.sh script within the bin folder of your EAP 6 installation and enter the requested information.

By default the realm name used by EAP is "ManagementRealm" this is already selected by default.

After you have added the user follow this link to Try Again.

このメッセージの意味と解決方法は、以下のサイトに詳しく解説されている。
Gold Experience JBoss AS7 – add-user.sh による管理ユーザの追加
ブラウザ上のメッセージにもある通り、add-user.shを使って、administrator用のアカウントを作ろう。以下が、/usr/local/jboss/bin/add-user.shを引数なしで実行した後のインタラクティブなメッセージのやりとりだ。

どのようなユーザータイプを追加しますか?
 a) 管理ユーザー (mgmt-users.properties) 
 b) アプリケーションユーザー (application-users.properties)
(a): a

追加する新規ユーザーの詳細を入力します。
レルム 'ManagementRealm' を既存のプロパティーファイルで見つかったとおりに使用しています。
ユーザ名 : admin
ユーザー名 'admin' は簡単に推測できます。
'admin' を本当に追加しますか?yes/no? yes
パスワードの要件は以下のとおりです。この制限を変更するには、add-user.properties 設定ファイルを編集します。
 - パスワードは、制限された次の値のいずれかでない必要があります {root, admin, administrator}
 - パスワードは 8 文字, 1 英字, 1 文字, 1 文字 (英数字以外) 文字以上である必要があります
 - パスワードとユーザー名は異なるものにする必要があります
パスワード : 

 * エラー * 
JBAS015267: パスワードには英数字でない記号が 1 文字以上必要です。

ユーザー名 (admin) : admin               
ユーザー名 'admin' は簡単に推測できます。
'admin' を本当に追加しますか?yes/no? yes
パスワードの要件は以下のとおりです。この制限を変更するには、add-user.properties 設定ファイルを編集します。
 - パスワードは、制限された次の値のいずれかでない必要があります {root, admin, administrator}
 - パスワードは 8 文字, 1 英字, 1 文字, 1 文字 (英数字以外) 文字以上である必要があります
 - パスワードとユーザー名は異なるものにする必要があります
パスワード : 
パスワードを再度入力してください。 : 
このユーザーが所属するグループはどれですか? (カンマ区切りリストを入力してください。所属グループがない場合は空白のままにしてください。)[  ]:    
レルム 'ManagementRealm' にユーザー 'admin' を追加します。
正しいですか yes/no? yes
ユーザー 'admin' をファイル '/usr/local/jboss/standalone/configuration/mgmt-users.properties' に追加しました。
ユーザー 'admin' をファイル '/usr/local/jboss/domain/configuration/mgmt-users.properties' に追加しました。
グループ '' のユーザー 'admin' をファイル '/usr/local/jboss/standalone/configuration/mgmt-groups.properties' に追加しました
グループ '' のユーザー 'admin' をファイル '/usr/local/jboss/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
ユーザーを参照するには、server-identities 定義に以下を追加します。 

パスワードには、記号も入れないといけないようだ。一番最後の質問は、これをnoにすることによって、どんな不都合が起こるのか、まだJBoss自体に詳しくないから分からない。

これで、administration consoleを開き直すと、上で設定したユーザーIDとパスワードが求められた後、コンソールを開くことが出来る。これで、ひとまず、JBossのインストールは出来た。

次は、JBossをどう使うかについて、記事を書きたい。(また公約を破るかもしれない。)

コメント