RocketChatのバージョンアップ(0.74.3->1.2.1)を行った
背景
私が在籍する研究室では,サーバ上に立つRocketChatを活用している.
導入された当初は便利なものがあるんだなとみんなが思っていたが,
ある頃からどうも通知が送られてこなくなっていまい,
使うにも使いづらい状況になってしまった.
RocketChatを導入した前任のサーバ管理者が長い間無双していて,
その結果,去年卒業されてしまってからは研究室内に
管理をできる人がいなくなってしまった...
前任者に以前少しだけサーバ関係を教えてもらった後輩として,
RocketChatを最新版にし,通知を取り戻し便利にしようと考えた.
環境
CentOS 7.6.1810
実際の動き
新規構築
そもそもどうやってバージョンアップをすればいいんだろう?と思い,
まず新規サーバにRocketChatを導入するところからやってみた.
これは公式のドキュメントを見ることが一番だった.
上から同じように実行していくだけでサクッと構築できた.
rocket.chat
新規構築を通して,/opt/Rocket.ChatにはRocketChat本体のファイルのみが,
設定やChat履歴などは/var/lib/mongo/に入っていることがなんとなくわかった.
失敗
こちらの方がしているように,/opt/Rocket.Chatをディレクトリごと入れ替えようと考えた.
zuntan02.hateblo.jp
# サービス停止 systemctl stop mongod systemctl stop rocketchat # 差し替え cd /opt mv Rocket.Chat Rocket.Chat_0.74.3 ## 公式のRocketChat導入に従う
これでイケると思ったが,どうもうまく行かなかった.
どうやらMongoDBがエラーを吐いてしまっていた.
ERROR: dbpath (/data/db) does not exist.
Create this directory or give existing directory in --dbpath.
かなり時間をかけて対処しようとしたがどうともできず,
復旧もできずで正直もう終わってしまったと思った.
rm /var/lib/mongo/mongod.lock mongod /var/lib/mongo --repair
天啓
寝て起きて次の日になると,そもそも中身だけバックアップして
再インストールしてリストアすれば良いのではと考え始めた.
そもそも前任者が毎日自動的にバックアップを取るように
スクリプトを設定していた(本当にありがとうございます......)
RocketChatのインストールはうまくいっているはずなので,
MongoDBだけを対処する
というわけでMongoDB再インストール
#バックアップ(既にされていたので実行しなかった) # mongodump -d rocketchat -o ~ # Mongodb アンインストール systemctl disable mongod systemctl stop mongod yum remove $(rpm -qa | grep mongodb-org) rm -r /var/log/mongodb rm -r /var/lib/mongo # Mongodb インストール vim /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
yum install -y mongodb-org systemctl enable mongod systemctl start mongod # リストア systemctl stop rocketchat mongorestore -d rocketchat ~/rocketchat --drop systemctl start rocketchat
これで無事動作した!!
研究室のみんなには迷惑をかけてしまったが,
自分でなんとかする力がさらに身についたように思う.
それにしても前任者は自動バックアップと
リバースプロキシ(何がなんだかわからない)の設定まで
さらりとしていて,私ももっと頑張らなければと思う.
上記作業にあたり,こちらが大変参考になった.
qiita.com
gist.github.com