在EC2上安装growi到Amazon Linux 2上
1. GROWI环境建设目标
-
- AWS EC2環境へインストールします
OS : Amazon Linux 2
インスタンス : micro
必須:ElasticSearch, Mongo
別途:PlantUML
利用想定
最大3名以下のクローズドな使い方
インストール方法
Dockerを使わずに、インストールしていきます
レガシーですが、それじゃ面白くないので…
インストール中は、スペックを上げて作業しています(small)
ビルドとかメモリ使いそうだし
安装时的版本号
首先,通过查阅GROWI Docs的内容来确认流程。
-
- CentOS 7環境へのインストール手順があるので、基本はそれを踏襲します
CentOS | GROWI Docs
バージョンは、同じく公開されてるdocker-composeのバージョンを踏襲していきます
このマニュアルでは、PlantUMLはインストールせずに外部のサーバーを指しているので、別途自前でインストールします
この内容は公式マニュアルに記載されていない内容ですので、動作保証はしません
3.安装 Node.js, npm, yarn
-
- NodeJS 12.xのインストール
公式マニュアルの手順をそって入れます
GitHub – nodesource/distributions: NodeSource Node.js Binary Distributions
事前準備
yum install gcc-c++ make
node.jsのインストール
curl -sl https://rpm.nodesource.com/setup_12.x | sudo bash –
sudo yum install nodejs
yarnのインストール
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn
4. 安装Elasticsearch
-
- OpenJDKのインストール
sudo yum install java-1.8.0-openjdk
Elasticsearch 6.xのインストール
Install Elasticsearch with RPM | Elasticsearch Reference [6.8] | Elastic
事前準備
sudo rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/elasticsearch.repo
レポジトリ先の設定
Install Elasticsearch with RPM | Elasticsearch Reference [6.8] | Elastic
インストール
sudo yum install elasticsearch
割り当てメモリの設定
sudo vim /etc/elasticsearch/jvm.options
サービス化と自動起動
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl status elasticsearch
プラグインのインストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
5.安装MongoDB
-
- 事前準備
sudo vi /etc/yum.repos.d/mongodb-org-3.6.repo
レポジトリ先の設定
Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux — MongoDB Manual
インストール
sudo yum install -y mongodb-org
サービス化と自動起動
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
MongoDBへの認証設定とユーザーの作成、パスワードの設定
長いので先駆者記事を参照
GCPにGrowiを構築する 06 MongoDBのユーザ設定 | Qrunch(クランチ)
設定したユーザー・パスワードは、growi起動時のオプションで利用します
6.安装PlantUML
-
- JREのインストール
sudo yum install java-1.8.0-openjdk-devel
graphvizのインストール
事前情報
2.30以後のバージョンがcentos向けにパッケージされていない
調べる限り、2018年ごろに消えている?
ソースからmakeする必要
2.39, 2.40はPlantUMLとの相性が良くないのでそれ以外
フォーラムによれば、2.40.1は直っている
事前準備
sudo yum install expat-devel autoconf make automake libtool libtool-ltdl yacc byacc flex bison libtool-ltdl-devel
インストール(再現チェックしてません)
git clone https://gitlab.com/graphviz/graphviz.git
git checkout -b 2.42.2 refs/tags/2.42.2
cd ./graphviz
./autogen.sh
./configure –prefix=/opt/graphviz
sudo make
sudo make install
この対応により、PlantUMLに必要なDOTが下記に配置されます
/opt/graphviz/bin/dot
PlantUmlのインストール
事前準備
sudo yum install tomcat maven
インストール
cd /opt/
git clone https://github.com/plantuml/plantuml-server.git
git checkout -b v1.2019.13 refs/tags/v1.2019.13
コマンド実行
mvn jetty:run -DGRAPHVIZ_DOT=/opt/graphviz/bin/dot
サービス化
sudo vi /etc/systemd/system/plantuml.service
“`
[Unit]
Description=plantuml
[Service]
WorkingDirectory=/opt/plantuml-server
ExecStart=/usr/bin/mvn jetty:run -DGRAPHVIZ_DOT=/opt/graphviz/bin/dot
[Install]
WantedBy=multi-user.target
“`
この対応によりPlantUML-serverがlocalhost:8080で立ち上がっています
7.执行GROWI
-
- コマンド実行
sudo MONGO_URI=mongodb://growiuser:password@localhost:27017/growi ELASTICSEARCH_URI=http://localhost:9200/growi PLANTUML_URI=http://localhost:8080 PASSWORD_SEED=passwordseed FILE_UPLOAD=mongodb npm start
オプションとして下記を含めています
MongoDBの接続先(ID/PWを含む)
ElasticSearchの接続先
PLANTUML_URIの接続先
PASSWORD_SEEDは適当なランダム値がよい
FILE_UPLOADはGROWIにファイルを上げる時の保存先、S3やローカルへの設定が可
サービス化
systemd による自動起動 | GROWI Docs
接続先情報や追加のオプションは適時変更
8.反向代理和HTTPS兼容
-
- GROWIはlocalhost:3000, PlantUMLはlocalhost:8080/plantumlで実行しています
-
- これらを443で応答できるようにリバースプロキシの設定をし、証明書を適応することでHTTPS対応が行えます
- また、異なるサーバーへ一部サービスを逃がす場合はそれらもHTTPS対応しておいた方がよいかもしれません