OpenMBEE MMS構築

#公式
https://github.com/Open-MBEE/mms-alfresco

#環境
OS:CentOS7,CentOS8,AlmaLinux
メモリ:16GB以上を推奨
ストレージ:30GB以上必要

#更新版

本手順ではうまく構築できなくなっていたため別の方法を記載しました。

OpenMBEE MMSとVEの環境構築(Alfrescoインストーラ使用)
https://qiita.com/crimson707/items/ae2dd05952de6c68565b

#作業用フォルダ作成

```
mkdir /OpenMBEE
cd /OpenMBEE
```

#mmsをclone
```
git clone https://github.com/Open-MBEE/mms-alfresco.git
```

#JAVA(OPENJDK)のインストール

```
yum install java-1.8.0-openjdk-devel
```

#Install and Configure ElasticSearch

URL:https://www.elastic.co/downloads

elasticsearchは5.x.xを使う必要がある。Content-Typeが未指定の処理があるため。
参考情報：https://dev.classmethod.jp/articles/elasticsearch-6-breaking-changes/
ダウンロード先：https://www.elastic.co/jp/downloads/past-releases/elasticsearch-5-6-16
6以降を使用した場合、後の手順で行うmms_mappings.shがエラーになる
ファイルはwgetやブラウザでダウンロードする

```
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.rpm
rpm -ivh elasticsearch-5.6.16.rpm
```

下記のkibanaは必須ではないが、必要に応じてインストール
https://www.elastic.co/jp/downloads/past-releases/kibana-5-6-16

```
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.16-x86_64.rpm
rpm -ivh kibana-5.6.16-x86_64.rpm
```

自動起動設定

```
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
```

起動

```
sudo systemctl start elasticsearch.service
```

ElasticSearchを起動してから以下を実行

```
cd /OpenMBEE/mms-alfresco/mms-ent/repo-amp/src/main/resources
./mms_mappings.sh
```

creating element mappings: {"acknowledged":true}と表示される。



#postgresインストール

```
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql96-server postgresql96-devel postgresql96-contrib
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl start postgresql-9.6.service
systemctl enable postgresql-9.6.service
cd /var/lib/pgsql/9.6/data
echo "# PostgreSQL Client Authentication Configuration File" >  ./pg_hba.conf
echo "# ===================================================" >> ./pg_hba.conf
echo "local all all              trust"                      >> ./pg_hba.conf
echo "host  all all 127.0.0.1/32 trust"                      >> ./pg_hba.conf
echo "host  all all ::1/128      trust"                      >> ./pg_hba.conf
systemctl restart postgresql-9.6.service
```

※CentOS8やAlmaLinuxの場合、元々のpostgresをdisableする必要がある。

```
 dnf -qy module disable postgresql
```

CentOS8やAlmaLinuxの場合の手順

```
dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql
dnf install postgresql13-server postgresql13-devel postgresql13-contrib
/usr/pgsql-13/bin/postgresql-13-setup initdb
systemctl enable postgresql-13
systemctl start postgresql-13
cd /var/lib/pgsql/13/data
echo "# PostgreSQL Client Authentication Configuration File" >  ./pg_hba.conf
echo "# ===================================================" >> ./pg_hba.conf
echo "local all all              trust"                      >> ./pg_hba.conf
echo "host  all all 127.0.0.1/32 trust"                      >> ./pg_hba.conf
echo "host  all all ::1/128      trust"                      >> ./pg_hba.conf
systemctl restart postgresql-13
```


#データベース作成

```
psql -U postgres
CREATE ROLE mms WITH LOGIN PASSWORD 'mms';
ALTER ROLE mms CREATEDB;
create database mms owner mms;
\q
```

create databaseは以下でもOK

```
create database mms;
ALTER DATABASE mms OWNER TO mms;
\q
```

<details><summary>DBの再作成</summary><div>

```
psql -U postgres
DROP DATABASE mms;
create database mms owner mms;
\q
```

</div></details>

#ブランチの変更
デフォルトではDevelopブランチだが、Masterブランチのほうが安定して動作するため、ブランチを変更する。

```
cd /OpenMBEE/mms-alfresco
git checkout master
```

#データベースへテーブルの作成

```
cd /OpenMBEE/mms-alfresco/mms-ent/repo-amp/src/main/resources
psql -h localhost -p 5432 -U mms -d mms -v schema=public < mms.sql
```

#mms.properties

```
cd /OpenMBEE/mms-alfresco/mms-ent/
cp mms.properties.example mms.properties
vi mms.properties
```

以下のように修正

```
pg.name=mms
pg.user=mms
pg.pass=mms
```

#Install and Configure ActiveMQ (最新のMMSでは不要かも)

URL:http://activemq.apache.org/

※/OpenMBEEにactiveMQ.tar.gzをダウンロード

```
cd /OpenMBEE
tar zxvf apache-activemq-5.16.0-bin.tar.gz
mv apache-activemq-5.16.0 /usr/local/
ln -s /usr/local/apache-activemq-5.16.0/ /usr/local/activemq
/usr/local/activemq/bin/activemq start
```

#Mavenのインストール

Mavenをダウンロード
URL:https://maven.apache.org/download.cgi

```
wget https://ftp.riken.jp/net/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
tar xzf apache-maven-3.8.1-bin.tar.gz
mv apache-maven-3.8.1 /usr/local
cd /usr/local
sudo ln -s apache-maven-3.8.1 maven
sudo vi /etc/profile.d/maven.sh
```

以下を書き込む

```
export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
```

#springリポジトリ変更
必要かも
https://spring.io/blog/2020/10/29/notice-of-permissions-changes-to-repo-spring-io-fall-and-winter-2020

```
vi /OpenMBEE/mms-alfresco/mms-ent/repo-amp/pom.xml

<url>http://repo.spring.io/plugins-release/</url>
下記に変更
<url>https://repo.spring.io/libs-snapshot</url>
```

#mms起動

```
cd /OpenMBEE/mms-alfresco/mms-ent
./run.sh
```

※run.sh実行後は時間がかかる。
特に初回実行時は数時間かかる。
初回実行時は./clean-run.shでもよい
※postgresql、elasticsearch、kibana、ActiveMQの起動し忘れに注意

#備考
日々Githubで更新されているのでこのページの手順を行っても動かない可能性がある。

Bintray閉鎖の影響で./run.shした際にswagger-codegenが取得できなくて止まる気がする・・・