LoginSignup
6
0

More than 1 year has passed since last update.

RHELにOpenlibertyをインストールしてみた

Last updated at Posted at 2023-05-08

目的

APM製品の検証のためにOSだけではなくてJavaのプロセスも動かした状態を作りたいと思ったので、
OpenlibertyをRHEL上で動かすことに挑戦してみました。

環境

今回は、Techzone( https://techzone.ibm.com/environments )で3日間使えるRHELの仮想サーバを借用しました。
とりあえず導入手順の確立だけ行いたかったので、短期間使えるTechzoneのサーバで十分検証ができました。

導入手順

Openlibertyモジュール取得

以下のサイトにアクセスします。
https://openliberty.io/start/

JavaSEのバージョンを8,11,17が選択できるため、この中では最も新しい17を選択し、
”GenerateProject”をクリックして、アプリケーションをダウンロードします。

ダウンロードしたファイル名はデフォルトだとapp-name.zipとなります。

Mavenモジュール取得

以下のサイトにアクセスします。
https://maven.apache.org/download.cgi

現在はの最新版は以下バージョンのモジュールとなりますので、これをダウンロードしました。
apache-maven-3.9.1-bin.tar.gz

OS最新化

仮想サーバにログインし、rootにスイッチしてOSを更新します。

# yum update

unzipインストール

unzipをインストールします。

# yum install unzip

javaインストール

導入可能なjava一覧を表示します。

# yum list | grep java
・・・
java-1.8.0-openjdk-accessibility.x86_64                            1:1.8.0.362.b09-2.el8_7
java-1.8.0-openjdk-demo.x86_64                                     1:1.8.0.362.b09-2.el8_7
java-1.8.0-openjdk-devel.x86_64                                    1:1.8.0.362.b09-2.el8_7
java-1.8.0-openjdk-javadoc.noarch                                  1:1.8.0.362.b09-2.el8_7
java-1.8.0-openjdk-javadoc-zip.noarch                              1:1.8.0.362.b09-2.el8_7
java-1.8.0-openjdk-src.x86_64                                      1:1.8.0.362.b09-2.el8_7 
・・・
java-17-openjdk.x86_64                                             1:17.0.6.0.10-3.el8_7
java-17-openjdk-demo.x86_64                                        1:17.0.6.0.10-3.el8_7
java-17-openjdk-devel.x86_64                                       1:17.0.6.0.10-3.el8_7
java-17-openjdk-headless.x86_64                                    1:17.0.6.0.10-3.el8_7
java-17-openjdk-javadoc.x86_64                                     1:17.0.6.0.10-3.el8_7
java-17-openjdk-javadoc-zip.x86_64                                 1:17.0.6.0.10-3.el8_7
java-17-openjdk-jmods.x86_64                                       1:17.0.6.0.10-3.el8_7
java-17-openjdk-src.x86_64                                         1:17.0.6.0.10-3.el8_7
java-17-openjdk-static-libs.x86_64                                 1:17.0.6.0.10-3.el8_7      
・・・

この中からOpenlibertyに合わせてJava17を選択して、インストールします。

# yum install java-17-openjdk java-17-openjdk-devel

この時、yum istall javaとしてしまうと、最新の1.8.0が入ってしまうので、
きちんとバージョンを指定して導入してください。

モジュール転送

以下のように作業用ディレクトリを作成します。

# mkdir /work
# chmod 777 /work

ここにteratermの”SSH SCP”やWinscpを使ってOpenlibertyとMavenモジュールを転送します。

Maven配置

Mavenモジュールを展開して、/optに配置します。

# cd /work
# tar zxvf apache-maven-3.9.1-bin.tar.gz
# cd /opt
# mv /work/apache-maven-3.9.1 .
# ln -s apache-maven-3.9.1 maven

グループ・ユーザ作成

デフォルトユーザでもいいのですが、アプリ実行用のユーザを作成します。

# groupadd -g 2000 aplgrp
# useradd -g aplgrp -u 2000 apluser
# cat /etc/passwd |grep apluser
apluser:x:2000:2000::/home/apluser:/bin/bash

作成したユーザはプロファイルを修正してMVNのパスを追加します。

su - apluser
vi .bash_profile

最終行に以下を追加
export PATH=$PATH:/opt/maven/bin

修正後はexit で抜けて、再度 apluserにスイッチします。

Openliberty配置

apluserのホームディレクトリ上にOpenlibertyのモジュールを展開します。

$ mkdir app-name
$ cd app-name
$ unzip /work/app-name.zip

server.xml修正

デフォルトではlocalhostでしかログインできないので、どのインターフェース経由でも接続できるように以下サイトを参考にserver.xmlを編集します。
https://qiita.com/rinaxsumomo/items/e5f2f34c54890f767182

$ vi src/main/liberty/config/server.xml
    <httpEndpoint id="defaultHttpEndpoint"
                  httpPort="9080"
                  httpsPort="9443" />
     ↓
    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="9080"
                  httpsPort="9443" />

プロセス起動

以下コマンドでプロセスを起動します。

$ cd ~/app-name
$ mvn liberty:run

このコマンドで起動するとフォアグラウンド実行となります。
別のターミナルを開くと、以下のようなプロセスが起動しているはずです。

$ ps -ef |grep java
apluser    32648   32619  5 04:16 pts/0    00:00:52 /usr/bin/java -classpath  ・・・ liberty:run
apluser    32825   32648  3 04:17 pts/0    00:00:29 /usr/lib/jvm/java-17-openjdk-17.0.7.0.7-1.el8_7.x86_64/bin/java ・・・ defaultServer

バックグラウンド実行・停止したい場合は以下となります。
起動:$ mvn liberty:start
停止:$ mvn liberty:stop

この場合、liberty:run のプロセスは出てきません。

稼働確認

プロセスの確認だけだと物足りないので、以下コマンドでアクセスしてみました。

$ curl http://localhost:9080/health
{"checks":[],"status":"UP"}$

ちゃんとUPというStatusが返ってきました。

感想

当初はJavaを最新を入れておけばいいだろうと軽く考えていて、Java1.8.0をインストールしていたために、
Openlibertyのプロセスが起動できず、詰まってしまっていました。
そこを乗り越えれば、特に詰まることもなく簡単に30分程度で導入することができました。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0