IBM Transient Virtual Serverを使ってActivitiを試してみよう

# 皆やりたいと思っている申請処理のペーパーレス化

物品購入や休暇取得のための申請書が紙であることで、承認が捕まらず、子どものイベントに参加できなかったり、基幹システム用サーバーの緊急保守が遅れたりしたことはありませんか？
そこまで危ないものでなくても、稟議書が中々通らず、困ったことはあると思います。

そこで申請手続きをペーパーレス化すれば良いのですが、中小企業では情報システム予算が増え難いのでお金をそれほど使わずにペーパーレス化するために、[Activiti](https://www.activiti.org/)を試してみます。
ここで使用するActivitiは、一般にはAlfresco Process Servicesに組み込まれて使用されますが、独立して使用することもできます。

実際、Activitiではありませんが、実際の申請処理(ワークフロー)をペーパーレス化すると、承認する側はゆっくり晩酌を楽しむ時間がなくなったりすることがあります。申請する方としては、上司を捕まえるためにいちいち会社に戻らずに済んでお手軽なんですが....。

# IBM Transient Virtual Server
プレスリリースは[こちら](https://www.ibm.com/blogs/bluemix/2018/02/transient-virtual-servers/)。
IBM Cloudに追加された仮想サーバー(Virtual Server)の利用形態の１つで、一時的に使用するような用途向けです。ミッションクリティカルではない作業向けで、通常の仮想サーバーよりも大幅に安く、なんとなく「Amazon Data Pipeline」のようなサービスが今後登場することを期待してしまいます。もちろん、検証用サーバーなどで利用しても良いでしょう。
![ibmcloud_virtualserver_select.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/597e9891-d4d3-77d2-68fd-8d35252aedca.png)

Transientと本番向けの比較ですが、Flavor C1.2x2x25(VCPU 2個、RAM 2GB、First Disk 25GB)の構成で、OSはUbuntu Linux 16.04 LTSとします。Linuxの最大シェアはUbuntuですから扱える人は多くいます。
本番向けのPublic Virtual Server：時間あたり、$0.08 = 8円
一時利用向けPublic Transient Virtual Server：時間あたり、$0.02 = 2円

![ibmcloud_virtualserver_transit.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/e441308c-798b-f2f1-000f-546bae1bdde6.png)

検証とか一時的に使いたいときには、お安くすんで財布に優しいです。

Transient Virtual Serverで、FlavorにC1.2x2x25を選び、OSはUbuntu16.04-64 Minimalにて、仮想サーバーをオーダーします。セキュリティグループは、この段階ではパブリック向けに「allow_outbound」を選択します。
仮想サーバー起動後に、「allow_ssh」を追加し、またポート8080でアクセスできるように[セキュリティグループ管理画面](https://control.softlayer.com/security/securitygroups)で、グループとルールを作成します。
![ibmcloud_security_group_add_tomcat.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/88f2f708-fdfc-83fc-0786-b1d4e2a21b5b.png)

# Activitiを入れてみよう
## JavaとTomcat9の導入

ここでは、Tera Termを使ってSSH接続で仮想サーバーに接続しています。
下記コマンドを実行し、Activitiを実行するためにTomcat9を導入します。

```
apt-get update && apt-get upgrade
apt-get install unzip
apt-get install default-jdk
cd /opt
wget http://ftp.riken.jp/net/apache/tomcat/tomcat-9/v9.0.5/bin/apache-tomcat-9.0.5.tar.gz
tar -zxvf apache-tomcat-9.0.5.tar.gz
mv apache-tomcat-9.0.5 tomcat9
useradd -M -d /opt/tomcat9 tomcat
chown -R tomcat. /opt/tomcat9
su - tomcat -c /opt/tomcat9/bin/startup.sh
```
サーバーに割り当てられたパブリックIPアドレスを用いて、Tomcatにアクセスします。例えば、xxx.xxx.xxx.xxx:8080をWebブラウザのURL欄に入力します。 実際はxxxのところはIPアドレスです。

## Activitiの導入と起動
Tomcatの動作を確認しましたら、Activitiを導入します。
下記コマンドを実行していきましょう。

```
cd /opt
wget https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip
unzip activiti-6.0.0.zip
cp -r activiti-6.0.0/wars/activiti-app.war /opt/tomcat9/webapps/activiti-app.war
su - tomcat -c /opt/tomcat9/bin/startup.sh restart
```

Webブラウザから、Activitiにアクセスします。Tomcatで確認したURLの後に、/activiti-app/ が続く形です。http://パブリックIPアドレス/activiti-app/ 。

## Activitiにログイン
![activit_install_1.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/a0b7f0ca-046d-4e08-a3c6-0e1c8b74d12a.png)
導入したActivitiを起動し、アクセスしますと、上図のようなログイン画面が表示されます。
username:admin
password:test
で作成済みの管理者ユーザーとしてログインすることができます。最初はこのユーザーしか作成されていませんので、ログイン後にきちんとしたユーザーを作成します。
但し、デフォルトではH2 Databaseを使用しているため、Tomcatを再起動するとデータが消えますので、データベースの永続化設定を行ってから、ユーザー作成することを推奨します。
逆に言えば、データベースの永続化設定前であれば、いろいろと試すことができます。

![activit_install_2.png](https://qiita-image-store.s3.amazonaws.com/0/41414/15d3ee4a-3c88-0d80-8296-b8747994c3b9.png)
ログインが成功すると、上図のように表示されます。

「Kickstart App」をクリックし、申請プロセスを作ることができます。