読者です 読者をやめる 読者になる 読者になる

Amazon EC2にPayara Serverをインストールする

JavaEEでアプリケーションを作っていきたいため、先ほど立てたAmazon EC2にPayara Serverをインストールした。

Amazon EC2の設定

管理コンソールとWebアプリケーションにアクセスするため、セキュリティグループの設定で
インバウンドにTCPの4848と8080の設定を行います。
正式な運用の際は、ポート変更など見直した方がよいですが今はデフォルト設定で進めていきます。

f:id:mabushii_sign:20160821131556p:plain

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  820 08:41 .
drwxr-xr-x 13 root   root   4096  621 20:09 ..
drwxr-xr-x  4 root   root   4096  621 20:09 dracut
dr-xr-xr-x  2 root   root   4096  16  2012 games
drwxr-xr-x  2 root   root   4096  99  2014 java
drwxr-xr-x  2 root   root   4096  99  2014 java-1.5.0
drwxr-xr-x  2 root   root   4096  99  2014 java-1.6.0
drwxr-xr-x  2 root   root   4096  99  2014 java-1.7.0
drwxr-xr-x  2 root   root   4096  99  2014 java-1.8.0
drwxr-xr-x  2 root   root   4096  99  2014 java-ext
drwxr-xr-x  4 root   root   4096  820 06:37 jvm
drwxr-xr-x  2 root   root   4096  99  2014 jvm-commmon
drwxr-xr-x  4 root   root   4096  820 06:37 jvm-exports
drwxr-xr-x  4 root   root   4096  820 05:45 jvm-private
dr-xr-xr-x  2 root   root   4096  621 20:09 locale
drwxr-xr-x  2 root   root   4096  94  2015 modprobe.d
lrwxrwxrwx  1 root   root     18  820 08:41 payara -> /usr/lib/payara41/
drwxr-xr-x  6 payara payara 4096  815 10:54 payara41
drwxr-xr-x  4 root   root   4096  621 20:10 python2.7
drwxr-xr-x  5 root   root   4096  621 20:10 rpm
lrwxrwxrwx  1 root   root     30  621 20:10 sendmail -> /etc/alternatives/mta-sendmail
lrwxrwxrwx  1 root   root     25  621 20:10 sendmail.sendmail -> ../sbin/sendmail.sendmail
drwxr-xr-x  2 root   root   4096  621 20:10 tmpfiles.d
drwxr-xr-x  2 root   root   4096  820 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/

f:id:mabushii_sign:20160821132954p:plain

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にリダイレクトされます。 証明書のエラーが出ますが、無視すると先ほどのエラーメッセージがないログイン画面されます。

f:id:mabushii_sign:20160821134122p:plain

では、admin / 先ほど設定したパスワードを入力すると、ログインできコンソールが表示されます。

f:id:mabushii_sign:20160821134925p:plain

サンプルアプリケーションのデプロイ

最後にサンプルアプリケーションをデプロイしてみます。 以下の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  820 09:39 .
drwxr-xr-x 4 root     root     4096  820 08:43 ..
-rw-r--r-- 1 payara   payara     18  219 20:05 .bash_logout
-rw-r--r-- 1 payara   payara    193  219 20:05 .bash_profile
-rw-r--r-- 1 payara   payara    124  219 20:05 .bashrc
drwxr-xr-x 3 payara   payara   4096  820 09:18 .gfclient
drwxr-xr-x 3 payara   payara   4096  820 09:14 .java
-rw-rw-r-- 1 ec2-user ec2-user 4102 115  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/

f:id:mabushii_sign:20160821135552p:plain

無事、サンプルアプリケーションが動作しました。

簡単ですが、動かすところまでできました。