こんにちは、那須です。
Oracle Cloud Infrastructure(OCI)でJBossを動かす機会がありましたので、環境作成の流れをご紹介します。といってもそんなに難しい手順はないので、普段OSやDockerを触っている方であればすぐにできると思います(OCI以外の環境でも同じ手順でいけると思います)
JBossには2種類あって、JBoss EAPとWildFlyがあります。それぞれ商用とコミュニティ版という感じですが、詳細は以下のドキュメントをご参照ください。
まずはお手軽に試したかったので、WildFlyで環境作成しました。では順を追って見てみましょう。
VM作成
普通にVM作成するだけなので手順は省略しますが、cloud-initスクリプトだけ以下のように指定します(楽にロケール設定したいだけです)
#cloud-config
timezone: Asia/Tokyo
locale: ja_JP.utf8#cloud-config
timezone: Asia/Tokyo
locale: ja_JP.utf8
OCIのVMでcloud-initで初期設定する例はブログで紹介されていますので、みてもらえればなんとなくどんなことができるのかがわかると思います。
https://blogs.oracle.com/virtualization/post/leverage-virtualbox-oci-export-with-cloud-init
作成したVMのOSはOracle Linux Server release 8.4の前提で以降の手順を書きます。
Dockerの準備
VM作成が完了したら、まずはDockerをインストールしましょう。作成したVMにSSH接続して以下のコマンドを実行していきます。
sudo yum remove docker docker-common docker-selinux docker-engine
sudo dnf install -y dnf-utils zip unzip
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce --nobestsudo yum remove docker docker-common docker-selinux docker-engine
sudo dnf install -y dnf-utils zip unzip
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce --nobest
Dockerを起動します。同時にopcユーザでもDockerを操作できるようにしましょう。
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
sudo usermod -a -G docker opcsudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
sudo usermod -a -G docker opc
以降、opcユーザでDockerを操作する場合は一度ログアウトしてから再度SSH接続してください。
ildFlyの準備
WildFlyのコンテナを起動しましょう。ついでに管理コンソールのユーザも作成しておきます。パスワードを変更する場合も同じコマンドでOKです。
やり方は2通りあるのですが、コマンド履歴にパスワードが残ることを考えると、やり方2の対話式で設定するのが良さそうですね。
# WildFlyコンテナ実行
sudo docker run -d --name ap_server_1 -p 8080:8080 -p 9990:9990 jboss/wildfly /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
# WildFlyコンテナ確認
docker ps
# 管理コンソールのユーザ設定(やり方1)
docker exec ap_server_1 /opt/jboss/wildfly/bin/add-user.sh admin '%*FukEEn$c6zwG@5' --silent
# 管理コンソールのユーザ設定(やり方2)
docker exec -it ap_server_1 /opt/jboss/wildfly/bin/add-user.sh# WildFlyコンテナ実行
sudo docker run -d --name ap_server_1 -p 8080:8080 -p 9990:9990 jboss/wildfly /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
# WildFlyコンテナ確認
docker ps
# 管理コンソールのユーザ設定(やり方1)
docker exec ap_server_1 /opt/jboss/wildfly/bin/add-user.sh admin '%*FukEEn$c6zwG@5' --silent
# 管理コンソールのユーザ設定(やり方2)
docker exec -it ap_server_1 /opt/jboss/wildfly/bin/add-user.sh
管理ユーザが登録されていることは/opt/jboss/wildfly/standalone/configuration/mgmt-users.propertiesファイルで確認できます。
docker exec ap_server_1 cat /opt/jboss/wildfly/standalone/configuration/mgmt-users.properties
管理ユーザを作成したらWildFlyを再起動しましょう。再起動しないと設定した管理ユーザのログイン情報が反映されません(それに気づくのに1時間近くかかりました…)
sudo docker restart ap_server_1
テスト
http://<ap_server_1>:8080/ にアクセスすると、Welcome画面が表示されます。
わざわざ別でWebサーバを立てるまでもないけど、ちょっとhtmlの表示をテストしたい場合は、以下のように-vを付けてバインドマウントするのがお手軽でいいですね(あくまでテスト用です)
sudo docker run -d --name ap_server_1 -v /home/opc/htdocs/dist:/opt/jboss/wildfly/welcome-content -p 8080:8080 -p 9990:9990 jboss/wildfly /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
http://<ap_server_1>:9990/ にアクセスすると、ユーザ名とパスワードを聞いてきます。先ほど設定した管理ユーザの情報を入力してログインしましょう。すると、以下のような管理画面が表示されると思います。
さいごに
今回はOCIのVMでWildFlyを動かしてみました。手順としては簡単ですが、ここまでまとめるのに半日かかったので、同じ状況に置かれている方の工数短縮の参考になれば嬉しいです。
いつも書いてますが、dotDではエンジニアを大募集中です!
お客様の新規事業を立ち上げるためにもエンジニアの力が必要です。たくさんの実験を繰り返したり、プロトタイピングで検証したりするのを一緒になって進めてくれる方を求めています。少しでも興味がある方はお声かけください!