WildFly 10.1.0をさくらのVPS(CentOS 7.2)へインストールし、systemdで起動を管理する
目次
概要
さくらインターネットが提供する「さくらのVPS」を利用して、WildFlyのインストールを行います。 これまでもWildFlyのインストール手順は公開してきましたが、今回はsystemdを利用してサービスの起動状態を管理したり、 firewalldが稼働している状態で、WildFlyへの通信許可を設定する手順を追加しました。 サーバ環境として利用するさくらのVPSは有料サービスですが、2週間無料でお試し利用できます(2017年4月29日時点)。 本格運用前に導入手順やレスポンス(性能)を試すには十分な期間なので、是非利用してみてください。
構成
想定環境
WildFlyをインストールするサーバ環境としてさくらインターネットが提供する「さくらのVPS」を利用しました。 サーバのスペックは以下のとおりです。
項目 | 内容 |
---|---|
CPU | 仮想2コア |
メモリ | 1GB |
ディスク | SSD 30GB |
ゾーン | 東京第2ゾーン |
価格 | 月額972円(税込) |
サーバ構成
OSバージョン
CentOS 7.2.1511 x86_64
ソフトウェア・パッケージ一覧
- jdk-8u131-linux-x64.rpm
- wildfly-10.1.0.Final.tar.gz
クライアント構成
OSバージョン
Windows 10 Pro 64bit
ソフトウェア・パッケージ一覧
- Microsoft Edge 38.14393.1066.0
環境構築
インストール
WildFlyを稼働させるにはJDKが必要となります。 今回はCentOSに同梱しているOpenJDKではなく、Oracle JDKを利用します。 インストールに必要なOracle JDKのRPMパッケージとWildFlyのアーカイブをwgetでダウンロードして使用します。
インストールモジュールのダウンロード
Oracle JDK 8u131とWildFly 10.1.0をwgetでダウンロードします。
# cd /media/ # mkdir installer # cd installer/ # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm" --2017-04-28 00:51:44-- http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm Resolving download.oracle.com (download.oracle.com)... 23.32.248.10, 125.56.201.178 Connecting to download.oracle.com (download.oracle.com)|23.32.248.10|:80... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: https://edelivery.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm [following] --2017-04-28 00:51:44-- https://edelivery.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm Resolving edelivery.oracle.com (edelivery.oracle.com)... 23.2.38.98, 2600:1417:27:39a::2d3e, 2600:1417:27:3bd::2d3e Connecting to edelivery.oracle.com (edelivery.oracle.com)|23.2.38.98|:443... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm?AuthParam=1493308425_c9f1f1aa5c37ff4229119cb5e0dab808 [following] --2017-04-28 00:51:45-- http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm?AuthParam=1493308425_c9f1f1aa5c37ff4229119cb5e0dab808 Connecting to download.oracle.com (download.oracle.com)|23.32.248.10|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 169983496 (162M) [application/x-redhat-package-manager] Saving to: 'jdk-8u131-linux-x64.rpm' 100%[==============================================================================>] 169,983,496 8.22MB/s in 21s 2017-04-28 00:52:06 (7.63 MB/s) - 'jdk-8u131-linux-x64.rpm' saved [169983496/169983496] # wget http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.tar.gz --2017-04-28 00:54:42-- http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.tar.gz Resolving download.jboss.org (download.jboss.org)... 69.192.184.35 Connecting to download.jboss.org (download.jboss.org)|69.192.184.35|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 139025162 (133M) [application/x-gzip] Saving to: 'wildfly-10.1.0.Final.tar.gz' 100%[==============================================================================>] 139,025,162 10.9MB/s in 13s 2017-04-28 00:54:55 (10.4 MB/s) - 'wildfly-10.1.0.Final.tar.gz' saved [139025162/139025162] # ls -l total 301768 -rw-r--r-- 1 root root 169983496 Mar 16 05:05 jdk-8u131-linux-x64.rpm ←Oracle JDK -rw-r--r-- 1 root root 139025162 Aug 19 2016 wildfly-10.1.0.Final.tar.gz ←WildFly
Oracle JDK 8u131のインストール
ダウンロードしたOracle JDKのRPMパッケージをインストールします。
# rpm -ihv jdk-8u131-linux-x64.rpm Preparing... ################################# [100%] Updating / installing... 1:jdk1.8.0_131-2000:1.8.0_131-fcs ################################# [100%] Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar... # java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
WildFly 10.1.0のインストール
ダウンロードしたWildFlyのアーカイブを展開します。 展開先は /opt/ ディレクトリ配下とします。 WildFlyのインストールはいわゆるインストーラが実行されるものではなく、 .tar.gz形式のアーカイブを解凍するだけで終わりです。
# tar zxvf wildfly-10.1.0.Final.tar.gz -C /opt/
wildfly-10.1.0.Final/
wildfly-10.1.0.Final/.installation/
wildfly-10.1.0.Final/appclient/
wildfly-10.1.0.Final/appclient/configuration/
wildfly-10.1.0.Final/bin/
(中略)
wildfly-10.1.0.Final/welcome-content/jbosscommunity_logo_hori_white.png
wildfly-10.1.0.Final/welcome-content/noconsole.html
wildfly-10.1.0.Final/welcome-content/noredirect.html
wildfly-10.1.0.Final/welcome-content/wildfly.css
wildfly-10.1.0.Final/welcome-content/wildfly_logo.png
# ls -l /opt/
total 4
drwxr-xr-x. 2 root root 6 Mar 26 2015 rh
drwxr-xr-x 10 505 505 4096 Aug 19 2016 wildfly-10.1.0.Final
設定
WildFly用のOSグループ作成
インストールしたWildFly関連のファイルはUID、GIDがいずれも505となっています。 CentOS 7.2にはデフォルトではそのようなOSユーザ、OSグループは存在していません。 そこで、WildFlyを管理するための専用OSユーザ、OSグループを作成します。 名前はいずれも wildfly とします。 まずはOSグループ wildfly を作成します。GIDは 10001 としましたが、他の数字でも構いません。
# groupadd -g 10001 wildfly
# tail -n 1 /etc/group
wildfly:x:10001: ←wildflyグループが作成された
WildFly用のOSユーザ作成
OSユーザ wildfly を作成します。 UIDは 10001 とし、プライマリグループを先ほど作成した wildfly(GID:10001) とします。 GIDと同様にUIDも他の数字でも構いません。
# useradd -u 10001 -g 10001 wildfly
# tail -n 1 /etc/passwd
wildfly:x:10001:10001::/home/wildfly:/bin/bash ←wildflyユーザが作成された
OSユーザのパスワード設定
作成したOSユーザ wildfly のパスワードを設定します。
# passwd wildfly Changing password for user wildfly. New password: ←パスワードを入力 Retype new password: ←パスワードを再入力 passwd: all authentication tokens updated successfully.
WildFlyのインストールファイルの所有者・所有グループ変更
インストールしたWildFly関連のファイルの所有者・所有グループを wildfly ユーザ、wildfly グループに設定します。
# cd /opt/ # ls -l total 4 drwxr-xr-x. 2 root root 6 Mar 26 2015 rh drwxr-xr-x 10 505 505 4096 Aug 19 2016 wildfly-10.1.0.Final # chown -R wildfly:wildfly wildfly-10.1.0.Final # ls -l total 4 drwxr-xr-x. 2 root root 6 Mar 26 2015 rh drwxr-xr-x 10 wildfly wildfly 4096 Aug 19 2016 wildfly-10.1.0.Final
WildFlyのインストールディレクトリにシンボリックリンクを作成
WildFlyの展開ディレクトリは、名称変更していなければ wildfly-10.1.0.Final となります。 通常アクセスする際は wildfly という名のシンボリックリンクを指定するようにしておけば、 今後新バージョンがリリースされた際に新バージョンのインストールファイルを /opt/ にインストールし、 シンボリックリンクを張り替えるだけで新バージョンに切り替えて使用することができます。
# ln -s wildfly-10.1.0.Final wildfly # ls -l total 4 drwxr-xr-x. 2 root root 6 Mar 26 2015 rh lrwxrwxrwx 1 root root 20 Apr 28 01:05 wildfly -> wildfly-10.1.0.Final drwxr-xr-x 10 wildfly wildfly 4096 Aug 19 2016 wildfly-10.1.0.Final
WildFlyのバインドアドレス変更
WildFlyインストール後の初期状態では、バインドアドレスがループバックアドレス(127.0.0.1)に 設定されているため、サーバの外部から接続することができません。 そこで、バインドアドレスをサーバのIPアドレスに変更します。 ここではサーバの任意のIPアドレスにバインドするために 0.0.0.0 を指定します。
# cd /opt/wildfly/standalone/configuration/ # vi standalone.xml
※以下、該当箇所のみ変更※ <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> ↓変更 <wsdl-host>${jboss.bind.address:0.0.0.0}</wsdl-host>
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/> ↓変更 <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
<inet-address value="${jboss.bind.address:127.0.0.1}"/> ↓変更 <inet-address value="${jboss.bind.address:0.0.0.0}"/>
WildFlyをsystemdに登録
WildFlyのインストールファイルにはWildFlyをsystemdに登録するために 必要なファイルが準備されています。ファイルを所定の場所にコピーします。
# cd /etc/ # mkdir wildfly # cd wildfly/ # cp -piv /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf . '/opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf' -> './wildfly.conf' # ls -l total 4 -rw-r--r-- 1 wildfly wildfly 165 Aug 19 2016 wildfly.conf ←これ # cd /etc/systemd/system/ # cp -piv /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service . '/opt/wildfly/docs/contrib/scripts/systemd/wildfly.service' -> './wildfly.service' # ls -l total 12 drwxr-xr-x. 2 root root 30 Sep 14 2016 basic.target.wants lrwxrwxrwx. 1 root root 41 Sep 14 2016 dbus-org.fedoraproject.FirewallD1.service -> /usr/lib/systemd/system/firewalld.service lrwxrwxrwx. 1 root root 46 Sep 14 2016 dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service lrwxrwxrwx. 1 root root 57 Sep 14 2016 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service lrwxrwxrwx. 1 root root 37 Sep 14 2016 default.target -> /lib/systemd/system/multi-user.target drwxr-xr-x. 2 root root 85 Sep 14 2016 default.target.wants drwxr-xr-x 2 root root 31 Oct 31 16:24 getty.target.wants drwxr-xr-x. 2 root root 4096 Oct 31 16:24 multi-user.target.wants drwxr-xr-x. 2 root root 49 Sep 14 2016 sockets.target.wants drwxr-xr-x. 2 root root 4096 Sep 14 2016 sysinit.target.wants drwxr-xr-x. 2 root root 43 Sep 14 2016 system-update.target.wants -rw-r--r-- 1 wildfly wildfly 409 Aug 19 2016 wildfly.service ←これ # cd /opt/wildfly/bin/ # cp -piv /opt/wildfly/docs/contrib/scripts/systemd/launch.sh . '/opt/wildfly/docs/contrib/scripts/systemd/launch.sh' -> './launch.sh' # ls -l total 264 -rw-r--r-- 1 wildfly wildfly 2178 Aug 19 2016 add-user.bat -rw-r--r-- 1 wildfly wildfly 2444 Aug 19 2016 add-user.properties -rw-r--r-- 1 wildfly wildfly 1069 Aug 19 2016 add-user.ps1 -rwxr-xr-x 1 wildfly wildfly 2230 Aug 19 2016 add-user.sh -rw-r--r-- 1 wildfly wildfly 3748 Aug 19 2016 appclient.bat -rw-r--r-- 1 wildfly wildfly 1841 Aug 19 2016 appclient.conf -rw-r--r-- 1 wildfly wildfly 2464 Aug 19 2016 appclient.conf.bat -rw-r--r-- 1 wildfly wildfly 2473 Aug 19 2016 appclient.conf.ps1 -rw-r--r-- 1 wildfly wildfly 1151 Aug 19 2016 appclient.ps1 -rwxr-xr-x 1 wildfly wildfly 4467 Aug 19 2016 appclient.sh drwxr-xr-x 2 wildfly wildfly 111 Apr 28 00:58 client -rw-r--r-- 1 wildfly wildfly 8451 Aug 19 2016 common.ps1 -rw-r--r-- 1 wildfly wildfly 5915 Aug 19 2016 domain.bat -rw-r--r-- 1 wildfly wildfly 2561 Aug 19 2016 domain.conf -rw-r--r-- 1 wildfly wildfly 3331 Aug 19 2016 domain.conf.bat -rw-r--r-- 1 wildfly wildfly 2921 Aug 19 2016 domain.conf.ps1 -rw-r--r-- 1 wildfly wildfly 3052 Aug 19 2016 domain.ps1 -rwxr-xr-x 1 wildfly wildfly 11006 Aug 19 2016 domain.sh -rw-r--r-- 1 wildfly wildfly 1852 Aug 19 2016 jboss-cli-logging.properties -rw-r--r-- 1 wildfly wildfly 2370 Aug 19 2016 jboss-cli.bat -rw-r--r-- 1 wildfly wildfly 774 Aug 19 2016 jboss-cli.ps1 -rwxr-xr-x 1 wildfly wildfly 2556 Aug 19 2016 jboss-cli.sh -rw-r--r-- 1 wildfly wildfly 1569 Aug 19 2016 jboss-cli.xml -rw-r--r-- 1 wildfly wildfly 1664 Aug 19 2016 jconsole.bat -rw-r--r-- 1 wildfly wildfly 863 Aug 19 2016 jconsole.ps1 -rwxr-xr-x 1 wildfly wildfly 2139 Aug 19 2016 jconsole.sh -rw-r--r-- 1 wildfly wildfly 1936 Aug 19 2016 jdr.bat -rw-r--r-- 1 wildfly wildfly 693 Aug 19 2016 jdr.ps1 -rwxr-xr-x 1 wildfly wildfly 1996 Aug 19 2016 jdr.sh -rwxr-xr-x 1 wildfly wildfly 215 Aug 19 2016 launch.sh ←これ -rw-r--r-- 1 wildfly wildfly 41828 Aug 19 2016 launcher.jar -rw-r--r-- 1 wildfly wildfly 57 Aug 19 2016 product.conf -rw-r--r-- 1 wildfly wildfly 8660 Aug 19 2016 standalone.bat -rw-r--r-- 1 wildfly wildfly 2410 Aug 19 2016 standalone.conf -rw-r--r-- 1 wildfly wildfly 2802 Aug 19 2016 standalone.conf.bat -rw-r--r-- 1 wildfly wildfly 2694 Aug 19 2016 standalone.conf.ps1 -rw-r--r-- 1 wildfly wildfly 1587 Aug 19 2016 standalone.ps1 -rwxr-xr-x 1 wildfly wildfly 11960 Aug 19 2016 standalone.sh -rw-r--r-- 1 wildfly wildfly 2028 Aug 19 2016 vault.bat -rw-r--r-- 1 wildfly wildfly 709 Aug 19 2016 vault.ps1 -rwxr-xr-x 1 wildfly wildfly 2229 Aug 19 2016 vault.sh -rw-r--r-- 1 wildfly wildfly 1555 Aug 19 2016 wsconsume.bat -rw-r--r-- 1 wildfly wildfly 784 Aug 19 2016 wsconsume.ps1 -rwxr-xr-x 1 wildfly wildfly 2179 Aug 19 2016 wsconsume.sh -rw-r--r-- 1 wildfly wildfly 1494 Aug 19 2016 wsprovide.bat -rw-r--r-- 1 wildfly wildfly 787 Aug 19 2016 wsprovide.ps1 -rwxr-xr-x 1 wildfly wildfly 2001 Aug 19 2016 wsprovide.sh
WildFlyの起動と自動起動設定
systemdへの登録が終わったので、WildFlyインスタンスを起動します。 また、systemdによるWildFlyの自動起動を有効化します。
# systemctl start wildfly ←WildFlyの起動 # systemctl status wildfly * wildfly.service - The WildFly Application Server Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2017-04-28 01:18:29 JST; 13s ago ←起動した Main PID: 1825 (launch.sh) CGroup: /system.slice/wildfly.service |-1825 /bin/sh /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0 |-1826 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 `-1882 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava... Apr 28 01:18:29 tk0-000-00000.vs.sakura.ne.jp systemd[1]: Started The WildFly Application Server. Apr 28 01:18:29 tk0-000-00000.vs.sakura.ne.jp systemd[1]: Starting The WildFly Application Server... # systemctl enable wildfly ←WildFlyの自動起動設定 Created symlink from /etc/systemd/system/multi-user.target.wants/wildfly.service to /etc/systemd/system/wildfly.service. # systemctl status wildfly * wildfly.service - The WildFly Application Server Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: disabled) ←自動起動が有効になった Active: active (running) since Fri 2017-04-28 01:18:29 JST; 57s ago Main PID: 1825 (launch.sh) CGroup: /system.slice/wildfly.service |-1825 /bin/sh /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0 |-1826 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 `-1882 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava... Apr 28 01:18:29 tk0-000-00000.vs.sakura.ne.jp systemd[1]: Started The WildFly Application Server. Apr 28 01:18:29 tk0-000-00000.vs.sakura.ne.jp systemd[1]: Starting The WildFly Application Server...
firewalldでの通信許可
WildFlyはデフォルトでは8080/tcpポートでリスニングしていますが、 firewalldの初期状態ではこのポートに対する通信が許可されていないため、 ブラウザからアクセスしても画面が表示されません。 そこで、8080/tcpポートに対する通信を許可します。 もし、ホストベースのファイアウォール自体が不要であれば、 systemctl stop firewalld コマンドを実行してfirewalldのサービス自体を停止しても通信できるようになります。
# firewall-cmd --state running ←firewalldは起動中 # firewall-cmd --list-all --zone=public --permanent ←設定前の確認 public (default) interfaces: sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: # firewall-cmd --zone=public --add-port=8080/tcp --permanent ←8080/tcpへの通信許可設定 success # firewall-cmd --list-all --zone=public --permanent ←設定後の確認 public (default) interfaces: sources: services: dhcpv6-client ssh ports: 8080/tcp ←8080/tcpの通信が許可された masquerade: no forward-ports: icmp-blocks: rich rules: #
動作確認
プロセス確認
WildFlyのインスタンスは1つのjavaプロセスとして表示されますので、 以下のように「java -D~」で始まるプロセスが起動していることを確認します。
# ps -ef | grep java wildfly 1882 1826 0 Apr28 ? 00:02:10 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/opt/wildfly/standalone/log/server.log -Dlogging.configuration=file:/opt/wildfly/standalone/configuration/logging.properties -jar /opt/wildfly/jboss-modules.jar -mp /opt/wildfly/modules org.jboss.as.standalone -Djboss.home.dir=/opt/wildfly -Djboss.server.base.dir=/opt/wildfly/standalone -c standalone.xml -b 0.0.0.0 root 5044 4865 0 00:46 pts/0 00:00:00 grep --color=auto java
ブラウザからの接続確認
最後にブラウザからアクセスしてWildFly標準のWelcomeページが表示されることを確認します。 WildFlyはデフォルトで8080/tcpのポートでリスニングを行っていますので、URLにポート番号を指定する必要があります。 この画面が表示されれば、WildFlyがsystemdから正常に起動され、firewalldでの通信許可も正しく設定されています。