JavaEEでアプリケーションを作っていきたいため、先ほど立てたAmazon EC2にPayara Serverをインストールした。
Amazon EC2の設定
管理コンソールとWebアプリケーションにアクセスするため、セキュリティグループの設定で
インバウンドにTCPの4848と8080の設定を行います。
正式な運用の際は、ポート変更など見直した方がよいですが今はデフォルト設定で進めていきます。
Payara Serverのインストール
Payara Serverのモジュールをダウンロードする
クライアントPCでPayaraのサイトにアクセスしモジュールをダウンロードします。 http://www.payara.fish/downloads
2016/8/20時点で最新の「Payara Server 163 Full」をダウンロードします。
SFTPでサーバに転送する
Macを使用しているため、FileZillaを使って転送します。 Windowsであれば、WinSCPが便利です。
モジュールを展開する
unzip で展開します。
$ unzip payara-4.1.1.163.zip
Archive: payara-4.1.1.163.zip
creating: payara41/
creating: payara41/bin/
inflating: payara41/bin/updatetool
inflating: payara41/bin/updatetool.bat
$ ls
payara-4.1.1.163.zip payara41
/usr/lib/に移動し、/usr/lib/payara/にシンボリックリンクを作成します。
$ sudo mv payara41/ /usr/lib/ $ sudo ln -s /usr/lib/payara41/ /usr/lib/payara
payaraユーザを作成する
$ sudo useradd -m -d /home/payara payara
payaraのオーナーを変更します。
$ sudo chown -R payara:payara /usr/lib/payara/ $ ls -la /usr/lib/ 合計 84 dr-xr-xr-x 21 root root 4096 8月 20 08:41 . drwxr-xr-x 13 root root 4096 6月 21 20:09 .. drwxr-xr-x 4 root root 4096 6月 21 20:09 dracut dr-xr-xr-x 2 root root 4096 1月 6 2012 games drwxr-xr-x 2 root root 4096 9月 9 2014 java drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.5.0 drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.6.0 drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.7.0 drwxr-xr-x 2 root root 4096 9月 9 2014 java-1.8.0 drwxr-xr-x 2 root root 4096 9月 9 2014 java-ext drwxr-xr-x 4 root root 4096 8月 20 06:37 jvm drwxr-xr-x 2 root root 4096 9月 9 2014 jvm-commmon drwxr-xr-x 4 root root 4096 8月 20 06:37 jvm-exports drwxr-xr-x 4 root root 4096 8月 20 05:45 jvm-private dr-xr-xr-x 2 root root 4096 6月 21 20:09 locale drwxr-xr-x 2 root root 4096 9月 4 2015 modprobe.d lrwxrwxrwx 1 root root 18 8月 20 08:41 payara -> /usr/lib/payara41/ drwxr-xr-x 6 payara payara 4096 8月 15 10:54 payara41 drwxr-xr-x 4 root root 4096 6月 21 20:10 python2.7 drwxr-xr-x 5 root root 4096 6月 21 20:10 rpm lrwxrwxrwx 1 root root 30 6月 21 20:10 sendmail -> /etc/alternatives/mta-sendmail lrwxrwxrwx 1 root root 25 6月 21 20:10 sendmail.sendmail -> ../sbin/sendmail.sendmail drwxr-xr-x 2 root root 4096 6月 21 20:10 tmpfiles.d drwxr-xr-x 2 root root 4096 8月 20 05:09 yum-plugins
管理コンソールを起動する
asadminコマンドのstart-domainで起動します。
$ sudo -u payara /usr/lib/payara/bin/asadmin start-domain Waiting for domain1 to start ....... Successfully started the domain : domain1 domain Location: /usr/lib/payara41/glassfish/domains/domain1 Log File: /usr/lib/payara41/glassfish/domains/domain1/logs/server.log Admin Port: 4848 Command start-domain executed successfully.
起動が成功したので、クライアントのブラウザでアクセスしてみます。
http://EC2のアドレス:4848/
Configration Error 「Secure Admin must be enabled to access the DAS remotely」のエラーが出てしまいました。
リモート接続するために、パスワードの設定とSSL設定をする
デフォルトは設定されていない管理者ユーザ(admin)のパスワードを設定します。
$ sudo -u payara /usr/lib/payara/bin/asadmin change-admin-password Enter admin user name [default: admin]>admin Enter the admin password> (何もいれずにEnter) Enter the new admin password> (新しいパスワード) Enter the new admin password again> (新しいパスワードをもう1回) Command change-admin-password executed successfully.
SSL設定するためにenable-secure-adminを設定します。
$ sudo -u payara /usr/lib/payara/bin/asadmin enable-secure-admin Enter admin user name> admin Enter admin password for user "admin"> You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully.
設定を反映するため、管理コンソールを再起動します。
$ sudo -u payara /usr/lib/payara/bin/asadmin restart-domain Successfully restarted the domain Command restart-domain executed successfully.
再度、管理コンソールにブラウザでアクセスすると、httpsにリダイレクトされます。 証明書のエラーが出ますが、無視すると先ほどのエラーメッセージがないログイン画面されます。
では、admin / 先ほど設定したパスワードを入力すると、ログインできコンソールが表示されます。
サンプルアプリケーションのデプロイ
最後にサンプルアプリケーションをデプロイしてみます。 以下のBlogを参考にしました。 blog.payara.fish
サンプルアプリケーションをダウンロードする
$ wget https://glassfish.dev.java.net/downloads/quickstart/hello.war --2016-08-20 09:33:59-- https://glassfish.dev.java.net/downloads/quickstart/hello.war glassfish.dev.java.net (glassfish.dev.java.net) をDNSに問いあわせています... 137.254.56.65 glassfish.dev.java.net (glassfish.dev.java.net)|137.254.56.65|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 302 Found 場所: https://glassfish.java.net/downloads/quickstart/hello.war [続く] --2016-08-20 09:34:00-- https://glassfish.java.net/downloads/quickstart/hello.war glassfish.java.net (glassfish.java.net) をDNSに問いあわせています... 137.254.56.48 glassfish.java.net (glassfish.java.net)|137.254.56.48|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 4102 (4.0K) [text/plain] `hello.war' に保存中 hello.war 100%[===================>] 4.01K --.-KB/s in 0s 2016-08-20 09:34:00 (48.8 MB/s) - `hello.war' へ保存完了 [4102/4102]
payaraユーザのホームディレクトリに移動します。
$ sudo mv hello.war /home/payara/ $ sudo ls -la /home/payara/ 合計 36 drwx------ 4 payara payara 4096 8月 20 09:39 . drwxr-xr-x 4 root root 4096 8月 20 08:43 .. -rw-r--r-- 1 payara payara 18 2月 19 20:05 .bash_logout -rw-r--r-- 1 payara payara 193 2月 19 20:05 .bash_profile -rw-r--r-- 1 payara payara 124 2月 19 20:05 .bashrc drwxr-xr-x 3 payara payara 4096 8月 20 09:18 .gfclient drwxr-xr-x 3 payara payara 4096 8月 20 09:14 .java -rw-rw-r-- 1 ec2-user ec2-user 4102 11月 5 2005 hello.war
デプロイします
$ sudo -u payara /usr/lib/payara/bin/asadmin deploy /home/payara/hello.war Enter admin user name> admin Enter admin password for user "admin"> Application deployed with name hello. Command deploy executed successfully.
成功したので、アプリケーションの一覧を表示します。
$ sudo -u payara /usr/lib/payara/bin/asadmin list-applications Enter admin user name> admin Enter admin password for user "admin"> hello <web> Command list-applications executed successfully.
ブラウザで確認します。
http://EC2のアドレス:8080/hello/
無事、サンプルアプリケーションが動作しました。
簡単ですが、動かすところまでできました。