Red Hat OpenShift 上での Interstage Application Server の動作手順 (Java EE 7 編 ) 2017/7/21 富士通株式会社 1. はじめに本資料は Interstage Application Server の Java EE 7 を Red Hat OpenShift V3 上で動かす手順について説明します 1.1. 対象製品本資料の対象製品は以下です Interstage Application Server Enterprise Edition V12.0.0 以降 (for Intel64) Interstage Application Server Standard-J Edition V12.0.0 以降 (for Intel64) 以下の環境 媒体が必要です Red Hat Enterprise Linux 7 Red Hat OpenShift Container Platform (Red Hat OpenShift Online は対象外 ) Interstage Application Server のサーバパッケージ DVD 本資料の手順は以下を使用して検証しています Red Hat Enterprise Linux 7.3 Red Hat OpenShift Container Platform 3.5 Interstage Application Server Enterprise Edition V12.0.0 サーバパッケージ DVD のサイズは約 0.8GB アプリケーション未配備の Docker イメージ のサイズは約 1.5GB です 1.2. 前提知識本資料を読む場合 以下の知識が必要です Red Hat Enterprise Linux に関する基本的な知識 Docker に関する基本的な知識 Red Hat OpenShift に関する基本的な知識 Interstage Application Server に関する基本的な知識 1 / 6
1.3. 商標 Linux(R) は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat(R) OpenShift(R) は 米国およびその他の国において登録された Red Hat, Inc. の商標です その他 本資料に記載されている会社名および製品名は それぞれ各社の商標または登録商標です 2. 概要 Red Hat OpenShift 上での Interstage Application Server の Java EE 7 の動作は以下の手順で構成されます 1. Interstage Application Server の Java EE 7 の Docker イメージ作成 2. Red Hat OpenShift における作成した Docker イメージの実行 Interstage Application Server の Java EE 7 の Docker イメージ Pod について 以下の注意事項があります Interstage HTTP Server 2.2 は Docker イメージにインストールされません Docker イメージへの Interstage Application Server の修正パッチ適用は本手順に含まれていません syslog のメッセージは Pod(Docker コンテナ ) 内に出力されません 3. Interstage Application Server の Java EE 7 の Docker イメージ作成 本手順は root ユーザで実施してください 3.1. インストールパラメーター CSV ファイルの作成図 1 の内容のインストールパラメーター CSV ファイルをファイル名 "javaee7.csv" で作成します "parameters,javaee7adminpassword," で始まる行の changeit については Java EE 7 の管理者パスワードに変更してください installinfo,name,isasinst 図 1: インストールパラメーター CSV ファイルの例 parameters,servertype,application parameters,installtype,custom parameters,securitymode,secure parameters,securitygroup,root parameters,javasekind,jdk parameters,javaee7adminpassword,changei t parameters,fn_javase8,y 2 / 6
parameters,fn_javaee7,y インストールパラメーター CSV ファイルの詳細は Interstage Application Server インス トールガイド の インストールパラメーター CSV ファイルの作成 を参照してください 3.2. Dockerfile の作成図 2 の内容の Dockerfile を作成します 以下は ベースイメージに registry.access.redhat.com/rhel7.3を使用する例です 紙面の都合上 Dockerfile の 1 命令を複数行に記載している箇所がありますが ファイル作成時は 1 行で記述してください 図 2: Dockerfile の例 FROM registry.access.redhat.com/rhel7.3 COPY iaps /tmp/iaps COPY javaee7.csv /tmp/javaee7.csv RUN /bin/mkdir -p /etc/selinux/targeted/contexts/ RUN echo '<busconfig><selinux></selinux></busconfig>' > /etc/selinux/targeted/contexts/dbus_contexts ENV LANG=ja_JP.UTF-8 RUN sed -ri 's/en_us/ja_jp/' /etc/locale.conf RUN /bin/mv /usr/bin/systemctl /usr/bin/systemctl.org RUN echo 'exit 0' > /usr/bin/systemctl RUN /usr/bin/chmod +x /usr/bin/systemctl ENV CIR_INST_SKIP yes ENV TERM xterm RUN /tmp/iaps/installer/install.sh -s /tmp/javaee7.csv RUN /bin/mv /usr/bin/systemctl.org /usr/bin/systemctl RUN /bin/rm -f /tmp/javaee7.csv RUN /bin/rm -rf /tmp/iaps ENV IS_PCMI_INSTALL /opt/fjsvpcmi CMD 3 / 6
[ "/opt/fjsvawjbk/jdk8/bin/java","-xx:+unlockdiagnosticvmoptions","-xx:+l ogvmoutput","-xx:logfile=/var/opt/fjsvisje7/pcmi/isje7/trace/jvm.log","-c lasspath","/opt/fjsvisje7/glassfish/lib/gf4-pcmi-adapter.jar:/opt/fjsvpcm i/lib/pcmi.jar:/opt/fjsvpcmi/lib/pcmi-api.jar:/opt/fjsvpcmi/lib/protocol. jar","com.fujitsu.interstage.pcmi.pcmimain","/var/opt/fjsvisje7/pcmi/isje 7" ] 3.3. Docker イメージの作成 以下の手順を実施して Interstage Application Server の Java EE 7 の Docker イメージを 作成します 1. Interstage Application Server のサーバパッケージ DVD のマウント 2. Java EE 7 のベアイメージ (Java EE アプリケーション未配備 ) の Docker イメージ作 成 3. Interstage Application Server のサーバパッケージ DVD のアンマウント 4. Java EE アプリケーションを配備した Docker イメージ作成 3.3.1. Interstage Application Server のサーバパッケージ DVD のマウント Interstage Application Server のサーバパッケージ DVD をローカルディスクのディレクト リに "iaps" としてマウントします 以下は サーバパッケージ DVD をローカルディスクの /docker/iaps にマウントする例です 1. ローカルディスクにマウント先のディレクトリを作成します # mkdir -p /docker/iaps 2. サーバパッケージ DVD をマウントします # mount -t iso9660 -r /dev/cdrom /docker/iaps 3.3.2. Interstage Application Server の Java EE 7 のベアイメージ作成 1. 以下を 3.3.1 で Interstage Application Server のサーバパッケージ DVD をマウントしたディレクトリ "iaps" と同じディレクトリに配置します 3.1 で作成したインストールパラメーター CSV ファイル "javaee7.csv" 3.2 で作成した "Dockerfile" 2. Docker イメージを作成します 以下は Dockerfile をディレクトリ "/docker" に配置して 名前 "javaee7interstage" の Docker イメージを作成する例です # docker build -t javaee7interstage /docker 4 / 6
3.3.3. Interstage Application Server のサーバパッケージ DVD のアンマウント 3.3.1 でマウントした Interstage Application Server のサーバパッケージ DVD をアンマウ ントします 以下は サーバパッケージ DVD をローカルディスクの /docker/iaps にマウントしたときの 例です # umount /docker/iaps 3.3.4. Java EE アプリケーションを配備した Docker イメージの作成 Java EE 7 のベアイメージ (Java EE アプリケーション未配備 ) の Docker コンテナを開始すると PCMI サービスだけが起動されます Interstage Java EE 7 DAS サービスを起動してから Java EE アプリケーションを配備します また IJServer クラスタの自動起動を設定します 1. 3.3.2 で作成した Docker イメージから Docker コンテナを起動します 以下は Docker イメージ "javaee7interstage" から Docker コンテナ "javaee7container" を起動する例です # docker run --name javaee7container -di javaee7interstage 2. Interstage Application Server の Java EE 7 実行環境をセットアップします アプリケーションはコピーするなどして Docker コンテナに配置します Docker コンテナに乗り込んで Java EE アプリケーションの配備や IJServer クラスタの自動起動など必要な定義変更を実施します # docker cp my-app.war javaee7container:/tmp/ # docker exec -it javaee7container bash # /opt/fjsvisje7/glassfish/bin/asadmin start-domain Interstage Java EE 7 DAS サービスを起動したら IJServer クラスタの作成や Java EE アプリケーションの配備 定義変更を実施します また Interstage Java EE 7 DAS サービスと IJServer クラスタの自動起動を設定します 3. Java EE アプリケーションを配備した Docker コンテナをコミットして Docker イメージを作成します 以下は Docker コンテナ "javaee7container" をコミットして Docker イメージ "javaee7appimage" を作成する例です # docker commit javaee7container javaee7appimage 5 / 6
4. Red Hat OpenShift 上での Interstage Application Server Java EE 7 の実行 以下の手順を実施して Interstage Application Server の Java EE 7 を Red Hat OpenShift で実行します ( 注意事項 ) Interstage Application Server の Java EE 7 の Docker イメージの実行は root 権限が必要です root 権限で Docker イメージを実行できるように Red Hat OpenShift のユーザ プロジェクトを設定してください 詳細は以下を参照してください Red Hat OpenShift Documentation [1] OpenShift Container Platform Cluster Administration Managing Security Context Constraints 1. Red Hat OpenShift からアクセス可能なリポジトリに Docker イメージを登録します 本手順は Docker イメージを作成した環境で実行します 以下は ローカルリポジトリ "192.168.100.102:5000" に Docker イメージを "192.168.100.102:5000/javaee7appimage:latest " として登録する例です # docker tag javaee7appimage 192.168.100.102:5000/javaee7appimage:latest # docker push 192.168.100.102:5000/javaee7appimage:latest 2. Red Hat OpenShift にログインします 3. Red Hat OpenShift 上で リポジトリに登録した Docker イメージを実行します 以下は Docker イメージ "192.168.100.102:5000/javaee7appimage:latest" を "javaee7app" として実行する例です # oc new-app --docker-image=192.168.100.102:5000/javaee7appimage:latest --name javaee7app 4. Java EE アプリケーションを配備したサーバーインスタンスの HTTP リスナーや HTTPS リスナーのポート番号を公開します 以下は http://192.168.100.6:28484/ として HTTP リスナーを公開する例です # oc expose dc/javaee7app --port=28484 --external-ip=192.168.100.6 以上 [1] Red Hat OpenShift Documentation "https://docs.openshift.com/" 6 / 6