ビルド&インストール

GARDEN Scenario Platform をビルドします。

ユーザーを切り替えます。

sudo su - garden-user

Mavenをインストールします。

sudo apt update
sudo apt install maven=3.6.0-1~18.04.1

Antをインストールします。

sudo apt update
sudo apt install ant=1.10.5-3~18.04

Gitをインストールします。

sudo apt update
sudo apt install git=1:2.17.1-1ubuntu0.8

GWTをダウンロードします。

cd ~/garden
curl -O https://storage.googleapis.com/gwt-releases/gwt-2.9.0.zip

ファイル展開します。

unzip gwt-2.9.0.zip -d ./

GARDENプロジェクトのビルドを実行します。

cd ~/garden
git clone https://github.com/open-garden/garden.git garden-repo
cp ~/garden/garden-repo/script/GARDEN_acacia.sh ~/garden/script	
cd ~/garden/script
chmod 764 GARDEN_acacia.sh	
./GARDEN_acacia.sh build_all

必要な資材が以下のように格納されていることを確認します。

# warの資材
/home/garden-user/garden/war
├── Zipc_Webplatform.war
├── com.zipc.garden.webplatform.dsl.fmc.web.war
├── com.zipc.garden.webplatform.dsl.sc.web.war
├── RDFViewer.war
└── prefix.properties

# dagsの資材
/home/garden-user/etc/airflow/dags
├── analyzer
├── coordinates_converter.py
├── coordinates_converter_trigger.py
├── garden_analyzer.py
├── garden_dag_trigger.py
├── lon_lat_extractor.py
└── requirements.txt

# scriptの資材
/home/garden-user/garden/script
├── CompactDatabase.jar
└── GARDEN_acacia.sh

# Job Executorの資材
/home/garden-user/garden/job_executor/
├── Zipc_JobExecutor.jar
├── acts_cmd_2.92.jar
└── lib
    ├── Zipc_Xtext_SC.jar
    └── z3
        ├── Microsoft.Z3.deps.json
        ├── Microsoft.Z3.dll
        ├── Microsoft.Z3.xml
        ├── com.microsoft.z3.jar
        ├── libz3.a
        ├── libz3.so
        ├── libz3java.so
        ├── requirements.txt
        └── z3

# node系アプリの資材
/home/garden-user/garden/node_services/
├── GARDEN_Portal
├── Zipc_ScenarioEditor
└── Zipc_Microservice-Road

garden-userでPM2をインストールします。

npm install pm2@5.1.0 -g

ecosystem.config.jsファイルを新規作成する

cd /home/garden-user/garden/node_services
pm2 ecosystem

作成されたファイルの内容を変更します。

vi /home/garden-user/garden/node_services/ecosystem.config.js
module.exports = {
  apps : [
    {
      name: 'portal',
      script: 'npm --prefix /home/garden-user/garden/node_services/GARDEN_Portal/server run start',
      error_file: '/home/garden-user/garden/node_services/GARDEN_Portal/server/logs/err.log',
      out_file: '/home/garden-user/garden/node_services/GARDEN_Portal/server/logs/out.log',
      time: true
    },{
      name: 'road_service',
      script: '/home/garden-user/garden/node_services/Zipc_Microservice-Road/index.js',
      error_file: '/home/garden-user/garden/node_services/Zipc_Microservice-Road/logs/err.log',
      out_file: '/home/garden-user/garden/node_services/Zipc_Microservice-Road/logs/out.log',
      time: true
    },{
      name: 'scenario_editor',
      script: 'npm --prefix /home/garden-user/garden/node_services/Zipc_ScenarioEditor run start',
      error_file: '/home/garden-user/garden/node_services/Zipc_ScenarioEditor/logs/err.log',
      out_file: '/home/garden-user/garden/node_services/Zipc_ScenarioEditor/logs/out.log',
      time: true
    }
  ]
};

apache2.confの設定を変更します。

sudo vi /etc/apache2/apache2.conf

以下を追記します。

<Directory /home/garden-user/etc/tomcat/webapps>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Locationを追記します。

<Location /scenario_modeler/>
        ProxyPass ajp://localhost:8080/scenario_modeler/
</Location>
<Location /rdf_viewer/>
        ProxyPass ajp://localhost:8080/rdf_viewer/
</Location>

AJPポート設定の追加をします。

sudo vi /etc/apache2/mods-available/proxy_ajp.conf

proxy_ajp.conf の内容は以下となります。

ProxyPass /scenario_modeler/  ajp://localhost:8080/scenario_modeler/
ProxyPass /rdf_viewer/ ajp://localhost:8080/rdf_viewer/

proxy proxy_ajp を有効にします。

cd /etc/apache2/mods-available/
sudo a2enmod proxy proxy_ajp

apache2 を再起動します。

sudo systemctl restart apache2

Tomcatの設定を変更します。

sudo vi /home/garden-user/etc/tomcat/conf/server.xml

以下を追記します。

<Context path="/scenario_modeler"
    docBase="/home/garden-user/etc/tomcat/webapps/Zipc_Webplatform"
    debug="0" reloadable="true" />
<Context path="/rdf_viewer"
    docBase="/home/garden-user/etc/tomcat/webapps/RDFViewer"
    debug="0" reloadable="true" />

tomcat, apacheを再起動します。

sudo systemctl restart tomcat
sudo systemctl restart apache2

GARDENのサービスを実行するには以下を実行します。

cd ~/garden/script
./GARDEN_acacia.sh start_all

GARDENのサービスを停止するには以下を実行します。

cd ~/garden/script
./GARDEN_acacia.sh stop_all

Fusekiデータベースのcompactを実行するには以下を実行します。

cd ~/garden/script
./GARDEN_acacia.sh compact_fuseki

定時実行の設定をします。

cronをインストールします。

sudo apt update
sudo apt install cron

crontabファイルを作成します。

sudo cp /etc/crontab /etc/cron.d/acacia_cron
sudo vi /etc/cron.d/acacia_cron

毎日23:30に、Fuseki Compactを実行する設定をします。

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
30 23   * * *  root  cd /home/garden-user/garden/script && "./GARDEN_acacia.sh" "compact_fuseki">>/home/garden-user/garden/script/script.log

crontabファイルの設定を有効にします。

sudo systemctl restart cron