ラベル Webui の投稿を表示しています。 すべての投稿を表示
ラベル Webui の投稿を表示しています。 すべての投稿を表示

2014年9月22日月曜日

AWS / CentOS 上の iDempiere に Mac からSSH 接続してみた

1:AWS にて CentOS上に iDempiereの環境を構築、ブラウザからiDempiereを使えるようにした。

さて、これからが本番。
何にどこまで使える物やら、

いままで WindowsからSSH(PuTTY) にてiDempiereを起動していました。
でも設定を終了した今、VNCでデスクトップを使う必要性も薄れたし、普段使っているMacから起動出来れば楽だな〜

特に設定はなく、設定初期に公開鍵を home/Documents に保存していたのでこれを用いてMac で ssh接続をしてみる。

なんのことはない、Mac標準のターミナルを起動して標準のsshを起動するだけ。
アプリケーション ->ユーティリティ ->ターミナル



私の場合は ~/Documents に Myname.pem という公開鍵ファイルがあるという前提。

ssh起動時に ユーザー名@サーバー名 -i公開鍵ファイルと指定する。
接続の確認で yesと打てばあっさりと接続できる。


MacBook-Air:cd Documents
MacBook-Air:Documents$ pwd
/Users/Myname/Documents
MacBook-Air:Documents Myname$ ls -l | grep *.pem -r--------   1 Myname  staff      1694  9 10 13:19 Myname.pem
MacBook-Air:Documents Myname$ ssh -l root <Public DNA> -iMyname.pem
The authenticity of host '<Public DNA> (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is 76:c5:b6:xx:75:8c:da:c0:f7:fa:c8:xx:cd:f8:31:4f.
Are you sure you want to continue connecting (yes/no)?  yes Last login: Mon Sep 22 06:12:33 2014 from 118.238.212.140 # 

接続出来たら あとは以前のブログで書いたのと同じ。iDempiereサーバープロセスを起動(起動シェル作った方が楽だけど、とりあえず手で起動。。)

これまでは設定作業の都合でサーバープロセスを起動したり、終了したりをくり返していたのであえてシェルの後に "&" を付けなかったが、これからは iDempiere の動作確認に入るので、ターミナル停止の影響を受けたくないのでコマンドのあとに "&" を付けてバックグラウンドで走らせ続けることにした


Are you sure you want to continue connecting (yes/no)?  yes
Last login: Mon Sep 22 06:12:33 2014 from 118.238.212.140
# cd /usr/local/bin/idempiere/2.0/idempiere-server
# ls -l | grep idempiere-server.sh
-rwxr-xr-x.  1 root root      646 2014-02-17 06:46 idempiere-server.sh
# sh ./idempiere-server.sh &
省略
06:26:14.158           WebUIServlet.init: iDempiere Web Client started successfully [34]

idempiere起動のメッセージが流れれば、あとは safariからでも Webuiを呼び出せば利用可能。

次は日本語表示?

AWS CentOS iDempiere Webui iptables なんとかすべての問題をクリアして接続成功!

これまでの流れ:
1:急にiDempiere に興味を持った。
2:iDmpiere を使うためにAWS(Amazon Web Services) アカウントを作成することにした。
3:AWS にEC2 インスタンスを作成し、 CentOS をセットアップすることにした。
4: SSHの設定をして外部からアクセスできる様にしてみた。
5:コマンドラインでは使いにくいのでデスクトップ環境を作ってみた。
6-1:iDempiere に必要なDB (PostgreSQL8.4)をインストールしてみた。が失敗した。
6-2:PostgreSQL9.3をインストールしてみたがまた失敗した。
6-3:EC2でCentOS6.5のインスタンス作成からPostgreSQL9.3のインストールまで完了した。
7:JDKをインストールする。
8:iDempiere で使用するデータスキーマを PostgreSQL へロードした。
9:iDempiere をセットアップした。
10:iDempiere へ Web クライアントからの接続してみた。が、失敗。。。
11:AWS のインスタンスをアップグレードしたら VNC上から http://localhost:8080/webui で接続できた。


もう設定のゴール寸前。あとはすんなりと外部のクライアントPCからWebuiで接続できるはずだ。。。。はずなんだけど。。

WindowsやMacのブラウザから http://<Public DNA>:8080/webui で接続しようとしてもまったく受け付けない。
VNC上からhttp://<Public DNA>:8080/webui としてももちろん駄目、http://localhost:8080/webui では接続出来るのに。。。

AWS の Security group では all trafficを anywhere 接続可能にしても駄目。
Ping は通る。なぜ?

ちなみに AWS Security Group にて Custom ICMP rule にてEcho reply を anywhere にしても何故か外部からの Ping を受け付けない。 All traffic を anywhere にすると通る。
今ひとつ納得できない。
それはともかくAll traffic を anywhere スルーにしているのに iDempiere の Webuiが外部から接続できないのは困った。
動作としてはどう見ても Firewall ではじかれている様に見えるのだが、、

これはかなり悩んだ。
あちこちググると、 AWS の CentOS AMI のFirewall はデフォルトで活きているとのこと。
つまり AWS の Security Group とかぶっているようだ。

Firewallの機能は AWS の Security Groupに集中させた方が良いと思い、CentOS側の iptables は停止する。



/etc/rc.d/init.d/iptables stop

これでクライアントからブラウザで接続してみる。



接続成功!

余談ですが、 SELinux もデフォルトで動作しています。設定で何か問題が起きたらSELinuxのセキュリティ設定も確認しましょう。

しかし、 AWS の Security Group と CentOS の iptables が2重になっているとは。。。とんだ罠だ。

あと、再起動時に iptables が立ち上がらないようおまじない。

chkconfig iptables off

いや、ながかった。

お疲れ様でした。

2014年9月18日木曜日

iDempiere に Web client から接続してみた

これまでの流れ:
1:急にiDempiere に興味を持った。
2:iDmpiere を使うためにAWS(Amazon Web Services) アカウントを作成することにした。
3:AWS にEC2 インスタンスを作成し、 CentOS をセットアップすることにした。
4: SSHの設定をして外部からアクセスできる様にしてみた。
5:コマンドラインでは使いにくいのでデスクトップ環境を作ってみた。
6-1:iDempiere に必要なDB (PostgreSQL8.4)をインストールしてみた。が失敗した。
6-2:PostgreSQL9.3をインストールしてみたがまた失敗した。
6-3:EC2でCentOS6.5のインスタンス作成からPostgreSQL9.3のインストールまで完了した。
7:JDKをインストールする。
8:iDempiere で使用するデータスキーマを PostgreSQL へロードした。
9:iDempiere をセットアップした。

次は iDempiere へ Web クライアントからの接続です。



とりあえずサーバープロセス動かします

# cd /usr/local/bin/idempiere/2.0/idempiere-server
# sh ./idempiere-server.sh

なんかちらっとエラーが見えた。

JAVA_HOME が定義されてないとか。。。


JAVA_HOME is not set. You may not be able to start the server Set JAVA_HOME to the directory of your local JDK.
こんな感じ。

で、セット。どこにあるんだろ?

#find /usr -name java -print /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/bin/java
(実際は他のディレクトも表示されているが、これっぽいという理由で選択。まちがえてたらまたあとで修正)

これを root の .bashrc に定義しておく。

# cd /root
# vi .bashrc
追加行
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
# source .bashrc
# echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64

再度起動

# cd /usr/local/bin/idempiere/2.0/idempiere-server
# sh ./idempiere-server.sh

なんだろ、接続できない。


firewall を避けるため、VNC からブラウザで http://localhost:8080/webuiにアクセスするとサーバープロセスが落ちたりする。(タイミングの問題?)


起動ログが続いて、Web Client がスタートする、が、、、、落ちる。。


07:43:39.066           WebUIServlet.init: iDempiere Web Client started successfully [40]
idempiere-server.sh: line 18:  2555 Killed                  $JAVA -Dosgi.compatibility.bootdelegation=true -Dosgi.noShutdown=true -Dosgi.framework.activeThreadType=normal -XX:MaxPermSize=192m -jar $BASE/plugins/org.eclipse.equinox.launcher_1.*.jar -console 12612 -application org.adempiere.server.application


もしかしてサーバーリソースがもはや限界なのか?

ここまでまったくお金をかけずに来たが、やはり限界か。。ちなみに AWS の monitor でCPU の使用率は。。。




仕事の都合もあり、もしかしたらここで一度中断するかもしれません。

結局中身に入らないと意味ないのですが、、

ま、ぼちぼちと、、