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

2015年1月16日金曜日

iDempiere AWS EC2 Elastic IPs 固定アドレスの変更

あせりました、、

気がついていた方もいると思うのですが、以前はAWSでIPを固定せず Public DNS を使って接続していたのですが、、
面倒だったので、以前 AWS の Elastic IPs にて固定アドレスに変更使っていました。

すると画面ハードコピーのアドレスに IP アドレスが表示されてしまうため、これを消す作業をしつつブログに貼り付けていたのです。

もちろん私の場合は iDempiere サーバーのIP アドレスを公開した結果をどなたに見て頂いても構わないのですが、内容を変更されると検証にならないので一手間かけて隠していました。

各画面は気をつけていたつもりなのですが、ログイン画面は気にかけていませんでした。
さっき見たらIPアドレスばっちり書いてありました。

というわけであせってAWSのElastic IPs の振り直し。
せっかくなので、簡単に紹介しておきます。

そもそも Elastic IPs にてアドレスを固定するのには AWS にログインして EC2 から下画面のように
NETWORK & SECURITY  -> Elastic IPs を選択します。





初めての場合は Address を Allocate するか?とか出ますのでクリックします。

アドレスを振り出した後、それをどのインスタンスに 紐付けるか指定する為に "Associate Address" をクリックします。するとインスタンスを選択するダイアログが表示されるので、適切なものを指定します。(私はiDempiereテスト用のインスタンス1つなので間違いようがありませんでした。)

ちなみに Elastic IPs は1つは無料だそうです。安心。


で、今回やった作業は 固定アドレスの変更。
Associate されているアドレスは Release できません。このためElastic IP を削除するためには一度 "Disassociate Address" にてIP とインスタンスを切り離します。

切り離すと アドレスをリリース可能となりますので、一度リリースします。
あとははじめに Elastic IP を作ったように Allocate New Address して、 Associate Address でインスタンスとつなげて終了。

あっというまに固定IP の変更が完了です。

もちろん通常は気にするところではありませんが、ユーザー名やらパスワードをデフォルトのまま使っておりアドレスばれると無防備になってしまうので、アドレス側を隠すという「せこい」方法をとっていました。
(iDempiereだけでなく、PostgreSQLその他もこのブログで手順を書いていることもあり、全部変更するのはめんどうなので、、)

しかし、気軽になんでも変更できるAWS すごい。



2014年10月2日木曜日

EC2インスタンスの自動停止を設定してみた

AWS の EC2インスタンスで iDempiereの検証を始めてから、すっごくちっちゃいことでドキドキしていたことがある。

それは検証をしていない時インスタンスの停止を忘れてしまうこと。。

たかだか1時間60円くらいと侮ってはいけない。もし週末2日確認わすれて動いていたら。。。それだけで3000円弱無駄にしているようなものだ。

で、使っていない時自動的にインスタンスを停止できないものかと。。。

ありました。ちゃんとAWSのCloudWatchという仕掛けが、、

一定時間CPUの使用率などが指定の条件になれば停止してくれるという優れもの。

実は、、結論を言えば今回の用途には厳しいかな。

CPU の使用率を Monitor で見てみると、インスタンス起動時は60%程度まで行くものの、検証でiDempiereをポチポチと使用している時はだいたい使用率は20%程度で推移している。

つまり起動時以外は使用しているのか使用していないのか判別が付きにくいのです。

ま、それはおいおい検証していくことにして、、
今回は設定の方法だけ、

EC2 instance で Monitorタグを指定する。
右の方の Create Alarmボタンを押す



設定ダイアログが表示されるので、必要な条件を設定する。
これで停止時にメールがくる、はず。。。(まだ検証できていない)




CPU使用率みていただくとわかるのですが、ピークが立っているところはインスタンス起動時。それ以外はだいたい20%前後。
ということは検証中でも1時間すると勝手にダウンすると思われます。。。。

ちなみに私のAWS は m1.small です。使用率の目安はそれぞれの環境に依ると思います。

後日記:やっぱりCPU の稼働率が上がるのは立ち上げ直後のみで、検証中は20%を下回って特にピークは立たないため、検証中に停止してしまいます。
まぁ、望んだ動きではありませんが、無意味な出費を抑えるためにはやむを得ないでしょう。







2014年9月30日火曜日

iDempiere でクライアントを新規作成してみた

EC2 インスタンスで iDempiere を設定中の人は、作業時間以外はインスタンスを Stop しているのではないでしょうか?(無料版ではリソース不足で動作しないし。。)

というわけで、いつものようにEC2 インスタンス起動。
すでにインスタンス起動時に iDempiere サーバーも起動するように設定してあるので、ころあいを見計らってクライアント(私は Mac から Safariで接続しています。)からPublicDNS:8080/webui で接続。

User: SuperUser
Password: System

日本語も使える環境に設定済みですが、今回都合により画面は英語バージョンでいきます。


Client: System
Role: *



ログイン後
menu -> System Admin -> Client Rules -> Initial Client Setup Process (初期クライアント設定)

次のような設定画面が出てくるので、必要そうなところをちゃちゃっと入力してみます。

Client name* (クライアント名)
Org key (組織キー)
Organization Name* (組織名)
Administrative User Name 管理ユーザー名
Administrative User Email 管理ユーザーEmail
Normal User Name* 通常ユーザー名
Normal User Email 通常ユーザーEmail
Currency* 通貨
Country* 国
Region 地域
City Name 都市名
City
ZIP 郵便コード

Address 1 住所

BP Accounting
Product Accounting
Sales Region Accounting

項目名の後ろにアスタリスク(*)が付いた項目は必須です。

(会社名は個人名は架空のものです、)

Region(地域)は Country(国)によりマスターが存在しており、都道府県を漢字で選ばざるを得ません。
グローバル展開をする会社で、日本語を出したくない場合はマスターを修正する必要がありそうです。

入力項目の下の BP Accounting/Product Accounting はBusiness Partner (取引先)とProduct (製品品目)の分析軸です。 なんとなく Sales Region Accounting も必要そうなのでチェックを入れてしまいました。

City Name と City の区別が今ひとつ付きませんし、 City はマスター設定に関係するのか入力しても空白に戻ってしまいます。
今は無視しておきます。。

ここで一つ壁に突き当たりました。。

Chart of Accounts File (勘定科目)の指定が必須なのですが、ファイルを開こうにもクライアント側のフォルダが表示されるので、私のようにAWSを利用してクライアントからはWebで接続している場合は思い当たる節がなく面食らってしまいました。

AWS の CentOSへ展開したiDempiere のフォルダを見てみると各国の標準的な Chart of Accounts File が提供されているようです。
おそらくここは会社ごとの設定もしくは JIS などの国内標準(業界毎)の勘定科目などをインポートすることになると思います。
あとで変更も可能のようなので、今はとりあえず付属のUS版でお茶を濁しました。

data/import/AccountingUS.csv

私の環境の場合は次のフォルダです。
/usr/local/bin/idempiere/2.0/idempiere-server/data/import/AccountUS.csv

ファイル内の1行目は項目名(ヘッダ)なので必要ありません。

実はこれまでの設定の中でFTPの設定をしておらず、このままではサーバーのファイルをクライアントに持ってこられません。

FTPの設定をすればいいだけなのですが、ファイル1つのために設定するのも面倒なので、私は PuTTY の端末ログのクリップボード出力を使い、次のようにサーバー上でファイルの中身を表示させ、これをクライアント側でcsvファイルとしてセーブしました。

# cat /usr/local/bin/idempiere/2.0/idempiere-server/data/import/AccountUS.csv
表示は流れてしまって読めませんが、表示が止まったら PuTTY のウィンドウ上枠部分でマウス右クリックするとメニューダイアログがでてきますので、「Copy All to Clipboard」を選択、適当なエディタ(notepadでも問題ありません)に必要な部分をペーストし、適当な名前をつけてセーブします。(打ち込んだコマンドやプロンプトもすべてクリップボードに含まれているため、かならず編集して不必要部分を削除してください。)

クライアント側で作成したファイルを指定し、OKを押すと確認画面になります。



ここまで終了すると、今までクライアントはサンプルの Garden world と System の他に、今作成したクライアントを選択できる様になります。


でもユーザー名は登録した名前ではなくて、 Client 名 + Admin とかなんですねぇ、
あまり気にする必要はありませんが、ちょっと不思議です。

進んだんだか、進んでいないんだかよくわからない気もしますが、ここで一息つきましょう。
おつかれさまでした。





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月19日金曜日

AWS のEC2インスタンス変更してみた

これまでの流れ:
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 クライアントからの接続してみた。が、失敗。。。

で、CPU が Max なので考えるのやめて、AWS インスタンスをt1.micro から m1.small(有料)へ変更してみた。


m1.small は旧世代らしい、 新世代はm3.medium から、
m1.small は1時間60円くらい。 m3.medium は100円くらい。

今はとりあえず動けば良いので、安いに越したことはない。うごけば。。

いくらEC2で自由なリソースの増減が可能とはいえ、変更するにはインスタンスを一度停止する必要がある。
インスタンス停止後、 Action -> Change Instance Type を選択する。


インスタンスタイプが選べるので、お好きなものを。。。
私は m1.small を選択。きつくなったら m3.medium あたりにしようかな。




Apply を押すとあっさりインスタンスタイプが変更されます。
あれ?利用料の確認とかもないのね。いいけど。

変更後に動作確認。

これまでと同じ手順でiDempiereを起動してみる。

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

クライアント起動のメッセージ確認後、Web での接続確認。


まずはVNC で デスクトップからの接続。
ブラウザで
http://localhost:8080/webui


やった!接続成功!(まだようやく入り口なんですけど。。)

User: SuperUser
Password: System


とうとう初期画面とご対面!

Windows からPublic DNSを指定した接続はまた明日。
(一度やったけど出来なかったので今日はこれで満足して終わることにします。)

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 の使用率は。。。




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

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

ま、ぼちぼちと、、

2014年9月16日火曜日

Open JDK1.7.0 をインストールする。 EC2インスタンスを削除してみる。

これまでの流れ:
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のインストールまで完了した。

iDempiereは JDK を必要とする。ここはCentOS6.5にプリセット(?)されている JDK1.7.0で行けそうなので、そのままyum する。


# yum -y install java-1.7.0-openjdk*

ちょっと時間が半端になったので、iDempiere のインストールはお預け。いらなくなった EC2インスタンスを削除してお茶を濁しておく



EC2 -> Instance -> インスタンス選択して -> Action -> Terminate
で、ステータスが terminated となる。

このままほっとくと1,2日で消えるらしい。
あ、消えた。
terminateしてから1時間ほどで消えました。

AWS EC2 CentOS6.5 に もう一度はじめからPostgreSQL9.3 を インストールしてみた(その3)


これまでの流れ:
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をインストールしてみたがまた失敗した。

先日 PostgresSQL8.4 をインストールしたときの残骸が悪さをしていると、ネットなどで原因調査するときに混乱の元になる恐れもあり、CentOS6.5 のインスタンス作成からやり直すことにした。

で、とりあえず以前作ったCentOS6.5 インスタンスは停止(放棄)
新しく以前ここで書いた手順通りに実行。(いくつか間違いも発見したのでついでに訂正)

さ、PostgreSQLインストールしよう。
その前に インターネットブラウザのインストール。

System -> Administration -> Add/Remove Software
で、 firefox とかで検索して、 Mozilla Firefox Web browser にチェックを入れてapplyする。





いよいよ PostgresSQL9.3 のインストール。
CentOS6.5 は標準で PostgreSQL8.4が入っているので、焦らずネットから 9.x を持ってくる。
9.4は Beta version とのこと。9.3 にしておこう。
http://yum.postgresql.org/repopackages.php#pg93


関係するパッケージの推奨や、root のパスワード入力を経てインストール完了。
PostgresSql9.3 で、 CentOS 6 - x86 64 をクリック。するとすぐさまrpm(セットアップ)の確認画面が。。


OK押すともう一度確認画面が出てくるので installを進める。
もちろんルートのパスワードの確認されるので、これも入力。

ここからまた設定。
データベースを初期化
サービスの起動
サービスの起動を起動時にも反映


service postgresql-9.3 initdb
Initializing database:                                     [  OK  ]
# service postgresql-9.3 start
Starting postgresql-9.3 service:                           [  OK  ]
# chkconfig postgresql-9.3 on
ちなみに設定ファイルはここにあった。(いろいろな情報があるのだけど、私のケースは /var/lib/pgsql/9.3/data だった。

# pwd
/var/lib/pgsql/9.3/data
# ls
base         pg_ident.conf  pg_serial     pg_subtrans  pg_xlog
global       pg_log         pg_snapshots  pg_tblspc    postgresql.conf
pg_clog      pg_multixact   pg_stat       pg_twophase  postmaster.opts
pg_hba.conf  pg_notify      pg_stat_tmp   PG_VERSION   postmaster.pid

postgresql.conf の設定で時間など合わせておく。
log_timezone = "Asia/Tokyo" timezone = "Asia/Tokyo"
# These settings are initialized by initdb, but they can be changed. lc_messages = 'ja_JP.UTF-8'                  
# locale for system error message                                      
# strings lc_monetary = 'ja_JP.UTF-8'                  
# locale for monetary formatting lc_numeric = 'ja_JP.UTF-8'                    
# locale for number formatting lc_time = 'ja_JP.UTF-8'                      
# locale for time formatting

後日記:
あとで必要になります。次の行も pg_hba.confに追加しておいてください。
(この設定がないと Database port error となりました。)


修正前
#listen_addresses = 'localhost'  
#port = 5432
修正後
listen_addresses = '*'  
port = 5432

あと、すっかり忘れていたけど、CentOS の時間も合わせておきます。
デスクトップから修正してしまえば簡単。



PostgresSQLの設定を変えた場合はリスタートしておきます。
# service postgresql-9.3 restart
Stopping postgresql-9.3 service:                           [  OK  ]
Starting postgresql-9.3 service:                           [  OK  ]
#

PostgreSQL はインストールするとユーザー postgres を(勝手に)作成する。これはDBにとってはスーパーユーザーとなるので心してパスワードを設定しましょう。
# id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres)
# passwd postgres
Changing password for user postgres.
New password:
Retype new password:
passwd: all authentication tokens updated successfully
で、Postgres ユーザーに su(substitute user)して、DBユーザー(ロール・役割)を設定します。

# id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres)
# passwd postgres
Changing password for user postgres.
New password:
Retype new password:
passwd: all authentication tokens updated successfully

おお、起動した。PostgreSQL8.4アンインストールして 9.3入れ直したときはだめだったけど。とりあえず先に進むことができる。。。

ネットでいろいろ見てみると、iDempiere で使用するDBは、DBユーザー名(ロール)はadempiere、DB名は idempiere である必要があるようです。

PostgreSQL 必須設定
DBユーザー名:adempiere
DB名:idempiere


# su - postgres
-bash-4.1$ psql
psql (9.3.5)
Type "help" for help.
postgres-# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {} postgres-# \q -bash-4.1$
続いてDB作成名前は idenpiereDB としました。
iDempiere のDB名は idempiere である必要があるようです。再作成しました。
でも失敗、エラーメッセージが出てきて失敗。(前回はテンプレートの指定をしなかったので問題とならなかったようです。)


-bash-4.1$ createdb --template=template0 -E UNICODE -O adempiere -U adempiere idempiere createdb: could not connect to database template1: FATAL:  Peer authentication failed for user "adempiere" 
-bash-4.1$ exit
エラーメッセージググってみると、海外のQ&Aでpg_hba.conf修正しろと出ていたので試しに修正したところ無事進みました。
# vi /var/lib/pgsql/9.3/data/pg_hba.conf 
オリジナル ==> pg_hba.conf <== local   all             all               peer
修正      ==> pg_hba.conf <== local   all             all               trust
ちなみに他の行も後々のために変えておいた方が良いかもしれませんが、今回は1行のみ修正しました。

後日記:
あとで必要になります。次の行も pg_hba.confに追加しておいてください。
(この設定がないと JDBC 接続エラーとなりました。)

host    all             all             0.0.0.0/0          trust

ググると 192.168.0.0/24 trust を追加するなどありましたが、おそらくこれは自宅サーバーで自宅LANアドレスを 192.168.0.xx とした場合の設定だと思います。AWS のような外部環境ではこれは使えません。
ちなみに 0.0.0.0になるとどこからでもアクセスできることになるので、ここのアドレスは AWS の Private IPs にしておいた方が良いと思います。


PostgreSQLの設定を変えたので、ここでPostgreSQLのサービスリスタートします。

# service postgresql-9.3 restart
Stopping postgresql-9.3 service:                           [  OK  ]
Starting postgresql-9.3 service:                           [  OK  ]
#

再度 createdb 実行。

-bash-4.1$ createdb --template=template0 -E UNICODE -O adempiere -U adempiere 
-bash-4.1$ psql
psql (9.3.5) Type "help" for help. 
postgres=# \l
                                   List of databases    
Name    |   Owner   | Encoding |   Collate   |    Ctype    |   Access privile ges -----------+-----------+----------+-------------+-------------+---------------  idempiere | adempiere | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  postgres  | postgres  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  template0 | postgres  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres  template1 | postgres  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres (4 rows) postgres=#
ちゃんとできているようです。
どうやら以下の設定も必要なようです。一応コマンドを打っておきました。
postgres=# CREATE SCHEMA adempiere;
postgres=# ALTER ROLE adempiere SET search_path TO adempiere, pg_catalog;
postgres-# \q 
-bash-4.1$ exit 
#

でも使えるの? -d オプションで今作ったDBにアクセス、 -U オプションで adempiereユーザーでログインしてテーブル操作してみました。

-bash-4.1$ psql -d idempiere -U adempiere
psql (9.3.5) Type "help" for help.
idempiere=# create table test1 (column1 integer);
idempiere=# \d
List of relations  Schema | Name  | Type  |  Owner
--------+-------+-------+----------  
public | test1 | table | idempiere (1 row)
idempiere=# insert into test1 values (1);
INSERT 0 1
idempiere=# select * from test1;  
column1 ---------        1 (1 row)
idempiere=# insert into test1 values (123);
INSERT 0 1 idempiere=# select * from test1;  
column1 ---------        1      123 (2 rows)
idempiere=# \q
-bash-4.1$ exit
#

なんか良さそう。ちゃんとテーブル作れて、値をセットして、呼び出しができている。
いろいろなバージョンやOSとの組み合わせで様々な情報があって、目指すところに来るのは大変でしたが、とりあえずは PostgresSQLまでOK。

次はJDKのインストールです。


----------余談。テーブルのドロップ---------
# su - postgres 
-bash-4.1$ psql 
psql (9.3.5) Type "help" for help. 
postgres=# \l
                                    List of databases
     Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privil -------------+----------+----------+-------------+-------------+----------------  idenpiereDB | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  postgres    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  template0   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres  template1   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres (4 rows) 
postgres=# \q 
-bash-4.1$ 
-bash-4.1$ dropdb idenpiereDB 
-bash-4.1$ psql 
psql (9.3.5) Type "help" for help. 
postgres=# \l
                                   List of databases
    Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileg -----------+----------+----------+-------------+-------------+------------------  postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |  template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres  template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres (3 rows) 
postgres=# \q