PAMの開発環境をローカルで作成して触ってみるための手順

Red Hat Process Automation Manager(PAM)の開発環境をローカルに作成して、起動してみるところまで。
製品バージョンによって多少異なるところもありますので、あくまで参考に。
（DBは、とりあえずはデフォルトでH2DBがついてるので、そのままサンプル動かしてみることはできます。でも、PAM再起動でデータは消えてしまうのでご注意ください）
DBをPostgreSQLに変更する手順はこちらを参照ください→[PAMで利用するDBを変更する方法（PostgreSQLの場合）](https://qiita.com/Erina/items/85434f6aba1df6068d4b)

# ここでの前提
- ローカルPCに構築（ちなみに個人環境はMacBook Pro ４コア16GB。 ２コア4GB以上推奨）
- JDK 8 or 11がインストール済み（私はOpenJDK11を使用）
- PAMの製品バージョンは、7.9.x
- Business Central + Kie Server を同一EAP上にデプロイ
- EAP(Red Hat Enterprise Application Platform)のバージョンは、7.3.x

※製品のサポートされる環境やテスト済みの環境については、[こちらのページ](https://access.redhat.com/articles/3405381)をチェックください。

とりあえず触ってみるための環境なので、こんな感じの構成にします。
同一EAP上に、Business CentralとKie Serverをデプロイします。
何も設定変更しないと、データベースはH2DBが使われます。
![スクリーンショット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276989/2b70566a-a3b2-5bcf-85f3-8ec1dba162a9.png)


ちなみに、軽くコンポーネント説明をすると、
##### Business Central
プロセスの開発・ビルド・デプロイ等を行うことができる、Webアプリ。プロセスエディタもある。
Kie Serverと連携して、実装したプロセスをテスト実行することができる。Kie Serverの管理機能もある。
business-central.warで提供される。必ずしも使わなくてもよい。

##### Kie Server
プロセスのランタイム環境を含むWebアプリ。
プロセスのプロジェクトをデプロイして実行することができる。
kie-server.warで提供される

# 必要なもの
JDKとPostgreSQLは、あらかじめダウンロードサイトから取得して、インストールしておいてください。

- EAP7.3
    [https://developers.redhat.com/download-manager/file/jboss-eap-7.3.0.zip](https://developers.redhat.com/download-manager/file/jboss-eap-7.3.0.zip)
- PAM7.9
    - Business Central
    [https://developers.redhat.com/download-manager/file/rhpam-7.9.0-business-central-eap7-deployable.zip](https://developers.redhat.com/download-manager/file/rhpam-7.9.0-business-central-eap7-deployable.zip)
    - Kie Server
    [https://developers.redhat.com/download-manager/file/rhpam-7.9.0-kie-server-ee8.zip](https://developers.redhat.com/download-manager/file/rhpam-7.9.0-kie-server-ee8.zip)

# インストール手順
流れはざっとこんな感じです。

1. EAPインストールして
2. Business CentralをEAP上にデプロイして
3. Kie ServerをEAP上にデプロイして
3. PAM用アプリユーザ作って
3. EAP起動して、Business Centralにログイン

（注：ここでは、ZIPをダウンロードして展開するインストール方法について記述します。インストーラーを使ってインストールする場合は、以下のいくつかの手順は省略されます）

### 手順を細かく記載

アプリケーション・サーバーである、EAPをまずインストールします。
EAPのインストールフォルダを適当な場所に作成し、その配下にインストールしていきます。
ここでは、ダウンロードしたzipを解凍するだけです。

```
$ mkdir paminstall
$ cd paminstall
$ unzip $DONWLOAD_PATH/jboss-eap-7.3.0.zip
```
これにより、`/paminstall`フォルダの下に、`jboss-eap-7.3`フォルダが作成されます。ここを、`$EAP_HOME`とします。

Business Centralを解凍して、`$EAP_HOME`に上書きします。
（上書き先を間違えないように！ `/paminstall`フォルダ直下で、unzipします）

```
$ unzip -qo $DONWLOAD_PATH/rhpam-7.9.0-business-central-eap7-deployable.zip
```
次に、Kie Serverのzipを適当なFolderで解凍します。
解凍すると、２つのFolderができます。
>kie-server.war
>SecurityPolicy

kie-server.warフォルダを、`$EAP_HOME/standalone/deployments/`に移動します。
SecurityPolicyフォルダ配下のファイルを、`$EAP_HOME/bin/`に移動します。

```
$ unzip $DONWLOAD_PATH/rhpam-7.9.0-kie-server-ee8.zip
$ mv kie-server.war/ $EAP_HOME/standalone/deployments/
$ mv SecurityPolicy/* $EAP_HOME/bin/
```

kie-server.warを自動デプロイするための`.dodeploy`ファイルを作成します。

```
$ touch $EAP_HOME/standalone/deployments/kie-server.war.dodeploy
```

ここまでで、EAP上にPAMがデプロイできたことになります。
起動する前に、PAM用のアプリユーザを作成します。

アプリユーザは、Business Central用のユーザと、Kie Serverコントロール用のユーザを２つ作成します。
Business Central用ユーザ： 所属グループは、admin,kie-server,rest-all とする
Kie Server用ユーザ：所属グループは、kie-server,rest-all とする
以下、作成例。（ユーザの追加は、/bin/add-user.shで行います）

```
$ ./jboss-eap-7.3/bin/add-user.sh -a --user pamadmin --password pamadmin1! --role admin,kie-server,rest-all
$ ./jboss-eap-7.3/bin/add-user.sh -a --user controllerUser --password 'controllerUser1234;' --role kie-server,rest-all 
```

次に、Business CentralからKie Serverに接続できるように、設定追加します。
/$EAP_HOME/standalone/configuration/standalone-full.xmlを編集します。

```xml:standalone-full.xml
・・・
<system-properties>
・・・
(コメントアウトされている以下の箇所をアンコメントする。ここで設定するuserとpwdは、上記でKie Server用に作成したユーザとパスをセットする）
   <property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"/>
   <property name="org.kie.server.controller" value="http://localhost:8080/business-central/rest/controller"/>
   <property name="org.kie.server.controller.user" value="controllerUser"/>
   <property name="org.kie.server.controller.pwd" value="controllerUser1234;"/>
   <property name="org.kie.server.user" value="controllerUser"/>
   <property name="org.kie.server.pwd" value="controllerUser1234;"/>
   <property name="org.kie.server.id" value="default-kieserver"/>
</system-properties>
・・・
```

さて、では、PAMがデプロイされたEAPを起動してみましょう！
Kie ServerをデプロイしたEAPを起動する際は、standalone-full.xmlを使います。

```
$ ./jboss-eap-7.3/bin/standalone.sh -c standalone-full.xml
```

しばらくしてコンソールログに`JBoss EAP 7.3.0.GA (WildFly Core 10.1.2.Final-redhat-00001) は 34294ms で開始しました` というような表示がされたのを確認して、ログイン画面にアクセスしてみましょう。

####  PAMログイン画面
http://localhost:8080/business-central/
![スクリーンショット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276989/47c39180-c50b-9bbe-afae-bf85a12797a5.png)

先ほど作った、PAM用ユーザでログインします。(pamadmin/pamadmin1!)
ログインできれば、以下のようなホーム画面が表示されます。

#### Business Centralのホーム画面
![スクリーンショット 2020-12-03 19.55.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276989/d9ced0a6-bf8a-ebc4-e293-0cbf03b9021c.png)
ログインユーザが属するロール（またはグループ）によって、利用可能な機能が異なります。

### 表示言語が英語になっている場合

ホーム画面の右上の歯車アイコンをクリックすると、設定画面が開きます。
![スクリーンショット 2020-12-08 15.04.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276989/03597431-6ba4-8cb5-9002-9670ccbf9661.png)

（英語表示の例）
![スクリーンショット 2020-12-08 15.52.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276989/6ea22712-e0f5-5fd7-ed6a-72b0134521f9.png)
Languages をクリックし、表示したい言語に変更します。

# サンプルをインストールして動かしてみる
PAMにはいくつかのサンプルプロジェクトが用意されており、ビルドして動かすことができるようになっています。

### サンプルの試し方

サンプルの解説は、別の記事にて書く予定です。