1
/
5

OCI VMでWildFlyを動かそう

こんにちは、那須です。
Oracle Cloud Infrastructure(OCI)でJBossを動かす機会がありましたので、環境作成の流れをご紹介します。といってもそんなに難しい手順はないので、普段OSやDockerを触っている方であればすぐにできると思います(OCI以外の環境でも同じ手順でいけると思います)

JBossには2種類あって、JBoss EAPとWildFlyがあります。それぞれ商用とコミュニティ版という感じですが、詳細は以下のドキュメントをご参照ください。

第2章 JBoss EAP の概要 Red Hat JBoss Enterprise Application Platform 7.1 | Red Hat Customer Portal
Access Red Hat's knowledge, guidance, and support through your subscription.
https://access.redhat.com/documentation/ja-jp/red_hat_jboss_enterprise_application_platform/7.1/html/introduction_to_jboss_eap/overview_of_jboss_eap

まずはお手軽に試したかったので、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ではエンジニアを大募集中です!
お客様の新規事業を立ち上げるためにもエンジニアの力が必要です。たくさんの実験を繰り返したり、プロトタイピングで検証したりするのを一緒になって進めてくれる方を求めています。少しでも興味がある方はお声かけください!


サーバーサイドエンジニア
他人事じゃない仕事!大企業の新規事業プロジェクトのサーバーサイドエンジニア
dotDとは! 【世の中に新しい価値を生み出し続ける事業創造ファーム】 私たちは「共創事業」と「自社事業」の2つを軸に、ひとりひとりの「当たり前」に変化をもたらす価値を創造し続ける「事業創造ファーム」です。 1. 共創事業 大企業の新規事業における構想・企画からプロトタイピング、製品版開発まで、先方の持っている課題感や構想をヒヤリングすることから始め、事業を成功に導くためのお手伝いをしています。 顧客企業の社会的影響力や利用可能な資源、dotDの強みである発想力や敏捷性・柔軟性、その両方を掛け合わせることで、ひとりひとりの「当たり前」に変化をもたらす価値を創造し続けます。 2. 自社事業 社会課題やメンバー自身の身近にある課題に対して仮説検証を繰り返しながら、自社でサービスの企画・開発・運営を行っています。 現在はPetTech(ペット x テクノロジー)、EdTech(エデュケーション x テクノロジー)での新サービス開発を中心に取り組んでいますが、今後も積極的にチャレンジする領域を広げ、新たな価値を創造していきます。
株式会社dotD


株式会社dotD | 事業創造ファーム
dotDはB2B,B2Cに関わらずのデジタルを活用した事業を連続的、非連続的に作り出すことによって社会の基盤になることを目指している「事業創造ファーム」です。
https://dotd-inc.com/ja/


株式会社dotD's job postings

Weekly ranking

Show other rankings
Invitation from 株式会社dotD
If this story triggered your interest, have a chat with the team?