3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

オンプレのRedHatへRocket.Chatをインストールする

Last updated at Posted at 2020-03-12

はじめに

Rocket.Chatをオンプレ(インターネット非接続)のサーバにインストールする必要があり、そこそこ面倒だったのでやったことをまとめました。
※Dockerは使用していません

Rocket.Chatについて

SlackライクなOSSのコミュニケーションツール。
サーバさえ構築すればイントラネットでも使えます。
ただし、依存するツールやライブラリを別途インストールする必要があるのでオフラインだと環境構築がやや__面倒__。

##環境

OS

  • Red Hat Enterprise Linux Server release 7.6

導入ソフト

  • Rocket.Chat 3.0.0
  • Mongodb 4.0.9
  • NodeJS 12.14.0

やったこと

基本的には公式ページの手順に従いインスト―ル。
yumやらnpmで導入している依存関係にあるファイルやライブラリはインターネットに接続した端末でローカルリポジトリ化するなどしてオンプレ環境に持ち込んで対応しました。

インターネットに接続された端末での作業

下記の手順で/tmp/RC以下に必要なファイルを配置する。

yumで必要なファイルをとってくる

ローカルリポジトリ作成用に必要なパッケージをダウンロード

$ sudo yum install yum-plugin-downloadonly

$ sudo yum update --downloadonly --downloaddir=/tmp/RC/yum -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum nodejs -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum gcc-c++ -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum GraphicsMagick -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum mongodb-org-server -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum mongodb-org -y

ローカルリポジトリの作成。

$ sudo yum install createrepo

$ createrepo --update /tmp/RC/yum

これでローカルリポジトリの準備は完了。

nodeJS 12.14.0の取得

curlコマンドでファイルの取得。

$ curl -L https://nodejs.org/download/release/v12.14.0/node-v12.14.0-linux-x64.tar.xz -o /tmp/RC/node-v12.14.0-linux-x64.tar.xz

これは特に何も触らない。

Rocket.Chatの取得

curlコマンドでファイルの取得。

$ curl -L https://releases.rocket.chat/latest/download -o /tmp/RC/rocket.chat.tgz

ファイルを展開し、必要なパッケージを含めたうえで再圧縮。

$ tar -xzf /tmp/RC/rocket.chat.tgz -C /tmp/RC
$ yum install nodejs -y
$ cd /tmp/RC/bundle/programs/server
$ npm install
$ npm install inherits n
$ cd /tmp/RC && tar -zcvf rocket.chat.tgz bundle --remove-file

準備完了。
"/tmp/RC"以下に配置したファイルをすべてオンプレ環境に持込む。

オンプレ環境での作業

インターネットに接続された端末で"/tmp/RC"以下に配置したファイルをすべてオンプレ環境に持込み、インストールを行う。
持ち込んだファイルの配置先も"/tmp/RC"とする。

ローカルリポジトリからインストール

リポジトリへの参照を追加。

$ sudo mkdir etc/yum.repos.d/bk && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bk
$ sudo cat << EOF | sudo tee -a /etc/yum.repos.d/myrepo.repo
[local]
name=localrepo
baseurl=file:///tmp/RC/yum
gpgcheck=0
enabled=1
EOF

ローカルリポジトリから必要なものをインストールする。

$ sudo yum update -y
$ sudo yum install nodejs -y
$ sudo yum install gcc-c++ -y
$ sudo yum install GraphicsMagick -y
$ sudo yum install mongodb-org-server -y
$ sudo yum install mongodb-org -y

ローカルリポジトリからインストールは完了。

NodeJSの置換

yumで取得してきたnodeJSのバージョンが欲しいバージョンではないのでファイル一式を置換する。

$ xz -dv  node-v12.14.0-linux-x64.tar.xz
$ tar xfv node-v12.14.0-linux-x64.tar
$ sudo \cp -pRf /tmp/RC/node-v12.14.0-linux-x64/* /usr/local
$ PATH="$PATH"

バージョンの確認。
12.14.0であることを確認。

$ node -v

Rocket.Chatの配置

下記コマンドにて持ち込んだRocket.Chatを解凍し、"/opt"以下に配置する。

$ tar -xzf /tmp/RC/rocket.chat.tgz -C /tmp/RC
$ sudo mv /tmp/RC/bundle /opt/Rocket.Chat

$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

MongoDBの起動

下記コマンドにてmongodbを起動する。

$ sudo sed -i "s/^#  engine:/  engine: mmapv1/"  /etc/mongod.conf
$ sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf
$ sudo systemctl enable mongod && sudo systemctl start mongod
mongo --eval "printjson(rs.initiate())"

Rocket.Chatの起動

Rocket.Chat起動用にサービスファイルを作成。

$ cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

下記コマンドにてRocket.Chatを起動する。

$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat

Rocket.Chatの状態確認。

$ sudo systemctl status rocketchat

ついでに3000番ポートも開放しておく。

sudo firewall-cmd --add-port=3000/tcp --zone=public --permanent
sudo firewall-cmd --reload

結果

オンプレでRocket.Chatが動く。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?