Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MIRACLE LINUXにSlackライクなチャットツール「Rocket.Chat」を構築してみた!

MIRACLE LINUXにSlackライクなチャットツール「Rocket.Chat」を構築してみた!

毎月開催しているMIRACLE LINUX/meetupの紹介と、MIRACLE LINUXでのサーバ構築の例としてオンプレミス環境やプライベートクラウド環境にチャットシステムを構築することができるRocket.Chatのインストール方法などを紹介します。

koedoyoshida

March 11, 2023
Tweet

More Decks by koedoyoshida

Other Decks in Technology

Transcript

  1. MIRACLE LINUX Meetup!! 1 MIRACLE LINUX Users Meetup!! OSC 2023

    出張開催!
 MIRACLE LINUXにSlackライクなチャットツール
 「Rocket.Chat」を構築してみた!
 吉田 俊輔 (MIRACLE LINUX Users Group)

  2. MIRACLE LINUX Meetup!! 4 MIRACLE LINUX Users Meetup !!
 •

    MIRACLE LINUX Users MeetupはMIRACLE Linuxを使っている、 または興味のあるユーザの集まりです。 • MIRACLE LINUXを使うユーザ同士でお互いに発表しあう互助会で す。 ◦ 会社関係者からの発表ではなく、ユーザ同士での発表の形にしていきた い • 定期的にMeetup イベント(勉強会)を開催します。 ◦ https://miraclelinux.connpass.com/ ◦ 毎月開催予定 是非登録してください。 ◦ zoom,youtubeで参加可能です。過去発表動画も • meetup以外の展開も計画中です。 ◦ wikiができました!
  3. MIRACLE LINUX Meetup!! 5 MIRACLE LINUX Users Meetup !! Youtube


    https://www.youtube.com/@MIRACLELINUXUsers/videos
  4. MIRACLE LINUX Meetup!! 6 MIRACLE LINUX Users Meetup !! wiki


    • https://miraclelinux-users-wiki.growi.cloud/ • MIRACLE LINUXを便利に使えるように情報を 集めています。 • MIRACLE LINUX Users Groupで運営してい ます。
  5. MIRACLE LINUX Meetup!! 8 国産エンタープライズLinux 「MIRACLE LINUX」
 • 国産ディストリビューター22年目
 •

    日本国内、日本語の技術サポート
 • 18年を超える長期サポート
 2000年より国産Linuxのディストリビューションを継続して提供
 安心して使えるLinux 

  6. MIRACLE LINUX Meetup!! 9 • 2000年から国内向けにMIRACLE LINUXを継続して提供、サポート • 2002年から継続的にRHELをベースにしたフォークを作りつづけている経験 ◦

    パッケージ数の増加、アップデート頻度の増加、ビルド難易度の向上など、年々 RHELのパッケージのリビルドは独特のテクニックを知らなければ作りにくくなって いる。 • 2021年現在、国内で唯一のRHELフォークの企業ディストリビューター ◦ 主に産業用PCや自社アプライアンスなどへ現在に至るまで長年の供給実績 ◦ 現在の MIRACLE LINUX 8 , 9 は サイバートラスト 1社で開発中 MIRACLE LINUX の立ち位置

  7. MIRACLE LINUX Meetup!! 10 MIRACLE LINUX 6.0 MIRACLE LINUX 8.4

    無償提供開始 MIRACLE LINUX 2.0 • Red Hat Linux ベース MIRACLE LINUXの歩み
 2001
 MIRACLE LINUX 1.0 • オラクルDBとの親和性 • TurboLinux社と共同開発。TurboLinuxベース MIRACLE LINUX 3.0 長期サポート開始  • 某基幹システムに採用。18年間の長期サポート 2004
 2005
 MIRACLE LINUX 4.0 • CGL対応 2007
 MIRACLE LINUX 5.0 2011
 2015
 MIRACLE LINUX 7.0 2020
 MIRACLE LINUX 8.0 2021
 CentOS 6 サポート終了 CentOS 終了発表 2004
 2020
 2017
 CentOS 5 サポート終了 2021
 CentOS 8 サポート終了 2000
 CentOSサポートサービス開始 2009
 CentOS 8救済サービス開始 CentOS 6 サポート開始 CentOS 5 サポート開始 R H E L ベ | ス R H E L 互 換 2020
 2021
 2017
 MIRACLE LINUX 産業PC Linux シェアNo.1
  8. MIRACLE LINUX Meetup!! 11 サイバートラストのあゆみ
 国内最大級の電子認証インフラ と 組込み Linux OS

    の技術を融合
 2017年
 10月
 2006
 2016
 設立
 
 組込み
 Linux OS
 開始 
 IoT分野
 協業開始
 合併
 IoT強化
 2016
 国内初
 電子認証センター
 開局
 2015
 SIOTP
 開始
 共同IoT
 ソリューション開始
 1997
 設立
 2017年
 3月
 2017年
 3月
 ※SIOTP:セキュアIoTプラットフォーム
 2021年
 4月
 マザーズ上場
 (4/15)
 2000
 1995

  9. MIRACLE LINUX Meetup!! 14 https://www.cybertrust.co.jp/miraclelinux-license-free/
 より良いMIRACLE LINUXユーザーの利用環境の拡大に向け
 MLフォーラム
 検証済み 環境


    <MIRACLE LINUX ユーザー向け>
 ①ユーザーFeedback受付け ~ QA形式で回答公開
 ②開発ポリシー、ロードマップ、最新の関連ニュース掲載
 <ユーザー向け / メーカー様,事業者様向け>
 ①ユーザー向け:MIRACLE LINUXの 検証済み環境 一覧掲載
 ②メーカー,事業者様向け:申請、検証/支援、情報掲載まで
 企業ユーザーがより安心して、MIRACLE LINUXを使える環境へ
 「MLフォーラム」と「検証済み環境」専用サイトを開設
 • 「MLフォーラム」:MIRACLE LINUXユーザーとMIRACLE LINUX開発者との情報の窓口
 • 「検証済み 環境」:SW, サーバ, 仮想基盤, クラウドの動作検証の対応状況と新規対応について
 MLフォーラム 検証済み 環境 New!! New!! New!!
  10. MIRACLE LINUX Meetup!! 15 MIRACLE LINUX 8.4,MIRACLE LINUX 9無償で利用可能!
 MIRACLE

    LINUX 9 もライセンス無償でリリース
 MIRACLE LINUX 8同様:ライセンス無償, 10年アップデート, オプション有償サポート
 • 2022年度にMIRACLE LINUX 9をライセンス無償でリリース
 • 既存のMIRACLE LINUX 8メニューそのままに、企業ユーザーの要望はさらに反映
 New!!
  11. MIRACLE LINUX Meetup!! 16 MIRACLE LINUX 9
 
 MIRACLE LINUX

    9
 MIRACLE Standard
 サポート
 Linux専用機向け
 サポート
 大規模向け
 サポート
 対象
 ー
 情報システム、一般ユーザー 
 専用機メーカー
 数百~数万規模の事業者 
 メニュー
 ・ISO / 9Released / 9Latest 
 ・AppStream, PowerTools, 
 HA, 他リポジトリ 公開
 ・障害解析 / 技術問合せ対応 
 ・日本語によるエラッタ情報サイト 
 ・エラッタ情報メール通知
 ・障害解析 / 技術問合せ対応 
 ・超長期サポート(~15年) 
 ・標準パッケージ外のOSS対応 
 ・障害解析 / 技術問合せ対応 
 ・RHELクローンOS 全体
 ・旧バージョンから最新まで 
 価格
 無償
 
 ・SOWベース個別契約
 ・ML商標の再販
 ・SOWベース個別契約
 ・保守対象は台数無制限 
 標準(1台/2VM)
 仮想基盤(1台)
  1年: 57,000円
  3年: 117,000円
 5年: 159,000円
 1年: 147,000円
 3年: 345,000円
 5年: 495,000円
 MIRACLE LINUX 9 もライセンス無償でリリースへ
 MIRACLE LINUX 8同様:ライセンス無償, 10年アップデート, オプション有償サポート
 • 2022年度にMIRACLE LINUX 9をライセンス無償でリリース
 • 既存のMIRACLE LINUX 8メニューそのままに、企業ユーザーの要望はさらに反映していく
 New!!
  12. MIRACLE LINUX Meetup!! 17 CentOS延長サポート CentOS 7/CentOS 8
 CentOS6
 


    
 
 
 
 
 
 
 
 
 
 
 CentOS7
 
 
 
 
 
 
 
 
 
 
 
 
 CentOS8
 
 
 
 
 
 
 
 
 
 
 
 
 MIRACLE
 LINUX 8
 
 
 
 
 
 
 
 
 
 
 
 
 MIRACLE
 LINUX 9
 
 
 
 
 
 
 
 
 
 
 
 
 延長サポート
 コミュニティサポート期間 
 (技術サポート提供可能)
 延長サポート
 延長サポート
 
 2022
 2023
 2024
 2025
 2026
 2027
 2028
 2029
 2030
 2031
 2032
 2033
 • CentOS 7延長サポートで2022年1月から5年にわたって企業利用が可能
 • CentOS 7を長期利用することでPost CentOSの対応に慎重な判断が可能になる
 MIRACLE Standardサポート
 MIRACLE Standardサポート
 CentOS Linux 7を2027年まで利用可能になります
 CentOS Linux 7 EoL後, 約2年半のアップデート提供(技術保守込み)
 New!! 延長サポート
 New!!

  13. MIRACLE LINUX Meetup!! 19 MIRACLE LINUX9 リリース
 • MIRACLE LINUX 9

    正式リリース!(2022年11 月) ◦ 無料ダウンロード ◦ https://www.miraclelinux.com/distribution/download • MIRACLE LINUX 8.6も 正式リリース!(同日) • AWSイメージ、Azureイメージもリリース!(2023年1 月) ◦ blogにてインストール方法を解説 ◦ https://www.miraclelinux.com/tech-blog • そのほかクラウド含めインストール方法紹介 ◦ https://www.cybertrust.co.jp/miraclelinux-license-free/verified-products.html ◦ https://miraclelinux-users-wiki.growi.cloud/62c563fdbd4f602725aa4dea
  14. MIRACLE LINUX Meetup!! 21 概要・背景
 今回はOSSのビジネスチャットソフトウェア、Rocket.ChatをMIRACLE LINUX 9にインストールしてみ ました! 現在、電子メールや電話に置き換わるコミュニケーションツールとして、チャットが広く利用されるように

    なってきました。Slack等クラウドサービスとして利用できるチャットサービスも多く提供されており、容 易にチャットを利用できるようになっています。 ビジネスチャットは、会社全体、部門内、グループ内のコミュニケーションや、1対1のコミュニケーション 等、様々な用途で利用することができます。過去のやり取りを参照したり、検索したりすることもできる ようになっており、業務効率化、生産性向上が期待できます。
  15. MIRACLE LINUX Meetup!! 22 概要・クラウドサービスのビジネスチャットとの違い
 Slack等クラウドサービスのビジネスチャットを利用する場合、チャットのやり取りの履歴がサービス提 供サイトに残ることになります。アクセスは制限されたユーザーに絞ることはできますが、外部に機密 情報や個人情報を残すことが心配であったり、組織のセキュリティポリシーに反したりすると、クラウド サービスのビジネスチャットを利用することが難しいこともあります。 Rocket.Chatは、オープンソースソフトウェアのビジネスチャットソフトウェアです。

    公開チャンネル、非公開チャンネル、1対1でチャットを行うダイレクトメッセージ等のチャットルームの利 用、チャットメッセージの文字修飾(太字、斜体、取り消し線)、絵文字の利用等、チャットシステムで一 般的に利用できる機能は網羅しています。 Rocket.Chatは、オンプレミス環境に組織専用のチャットシステムを構築することができますので、前 述のようなセキュリティの心配が少なくなり、安心して利用できるチャットシステムを構築することができ ます。
  16. MIRACLE LINUX Meetup!! 23 ユースケース1
 インターネットに接続できない環境での利用 自治体や機密情報を扱う企業では、インターネットに接続できない環境で業務を行っていることがあり ます。このような環境でチャットを使用する場合、クラウドサービスのチャットシステムを利用することが できません。 Rocket.Chatは、オンプレミス環境やプライベートクラウド環境にチャットシステムを構築することができ

    ますので、上記のようなインターネットに接続できない環境でもチャットシステムを利用することができ ます。 また、インターネットに接続できる環境であっても、セキュリティの観点から外部サービスの利用が禁止 されている場合には、オンプレミス環境にチャットシステムを構築することで、安心してチャットシステム を利用できるようになります。
  17. MIRACLE LINUX Meetup!! 24 ユースケース2
 チャット利用アカウントを柔軟に運用したい環境での利用 チャットシステムを、社員や職員だけでなく、パート社員、アルバイト、取引先等、広い範囲で利用した い場合、アカウントの管理方法が課題となることがあります。クラウドサービスのチャットシステムで は、アカウント課金を考慮しないといけないこともあります。 Rocket.Chatは、組織専用のチャットシステムですので、アカウント課金はなく、アカウントを自由に発

    行することができます。必要な時にアカウントを発行し、不要なったら削除するというような運用を簡単 に行うことができます。 また、組織が持っているActive Directory等のアカウント管理システムと連携して、既存のアカウントで チャットシステムを利用したり、シングルサインオンでチャットシステムを利用したりすることもできます。
  18. MIRACLE LINUX Meetup!! 26 構築手順・構築する環境
 Linuxディストリビューション MIRACLE LINUX 9 データベース

    MongoDB 5.0.14 JavaScriptエンジン Node.js 14.19.3 必要パッケージ GraphicsMagick 必要パッケージ gcc-c++, make チャットシステム Rocket.Chat 5.1.2
  19. MIRACLE LINUX Meetup!! 28 構築手順・MIRACLEL LINUX9 OSインストール
 今回、Rocket.Chatを構築するMIRACLE LINUX9のOSインストールは インストール時のソフトウェア選択で、「最小のインストール」を選択していることを想定しています。ま

    た、インターネットへ接続されていることが必要です。 MIRACLE LINUXのインストール方法についてはblogや先に紹介したwikiなどに多くのインストール方 法の紹介があります! blog:みらくるブログ https://www.miraclelinux.com/tech-blog wiki:MIRACLE LINUX 9.0 インストール手順 https://miraclelinux-users-wiki.growi.cloud/62c563fdbd4f602725aa4dea
  20. MIRACLE LINUX Meetup!! 30 構築手順・MongoDBのインストール・設定1
 公式サイトからMongoDBのパッケージをインストールするため、リポジトリファイルを作成します。 $ cat << EOF

    | sudo tee -a /etc/yum.repos.d/mongodb-org-5.0.repo [mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc EOF インストールを行います。 $ sudo dnf install -y mongodb-org $ cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-5.0.repo [mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc EOF $ sudo dnf install -y mongodb-org
  21. MIRACLE LINUX Meetup!! 32 構築手順・MongoDBのインストール・設定3
 /etc/mongod.confは、以下のような内容になります systemLog: destination: file logAppend:

    true path: /var/log/mongodb/mongod.log storage: dbPath: /var/lib/mongo journal: enabled: true engine: wiredTiger processManagement: fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfo net: port: 27017 bindIp: 127.0.0.1 replication: replSetName: rs01
  22. MIRACLE LINUX Meetup!! 33 構築手順・MongoDBのインストール・設定4
 MongoDBの起動、サーバ起動時の自動起動設定を行います。 $ sudo systemctl enable

    --now mongod mongoコマンドを使用して、レプリカセットを作成します。 $ mongo --eval "printjson(rs.initiate())" MongoDB shell version v5.0.14 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName;=mongodb Implicit session: session { "id" : UUID("c92f65e5-b984-4635-8471-5723b869e38c") } MongoDB server version: 5.0.14 { "info2" : "no configuration specified. Using a default configuration for the set", "me" : "127.0.0.1:27017", "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1663482784, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1663482784, 1) } $ sudo systemctl enable --now mongod $ mongo --eval "printjson(rs.initiate())" MongoDB shell version v5.0.14 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName;=mongodb Implicit session: session { "id" : UUID("c92f65e5-b984-4635-8471-5723b869e38c") } MongoDB server version: 5.0.14 { "info2" : "no configuration specified. Using a default configuration for the set", "me" : "127.0.0.1:27017", "ok" : 1, (略)
  23. MIRACLE LINUX Meetup!! 34 構築手順・MongoDBの状態確認
 $ sudo systemctl status mongod

    • mongod.service - MongoDB Database Server Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2023-02-08 14:50:13 JST; 7s ago Docs: https://docs.mongodb.org/manual (略)
  24. MIRACLE LINUX Meetup!! 36 構築手順・Node.jsのインストール・設定1
 MIRACLE LINUX 9 - AppStream

    からNode.jsのインストールを行います。 $ sudo dnf install -y nodejs 参考 MIRACLE LINUX 9 - AppStream https://www.miraclelinux.com/support/miraclelinux9/miraclelinux9-support/ml9-appstream-supp ort この資料執筆時点では nodejs 1:16.17.1-1.el9 nodejs-libs 1:16.17.1-1.el9 nodejs-docs 1:16.17.1-1.el9 nodejs-full-i18n 1:16.17.1-1.el9 npm 1:8.15.0-1.16.17.1.1.el9 が9-latest-AppStreamからインストールされました。
  25. MIRACLE LINUX Meetup!! 37 構築手順・Node.jsのインストール・設定2
 npmを使用してinheritsとnをインストールし、Rocket.Chatに必要なNode.jsのバージョンをセットアップ します。 $ sudo npm

    install -g inherits n $ sudo n 14.19.3 $ /usr/local/bin/node -v v14.19.3 $ sudo npm install -g inherits n $ sudo n 14.19.3 $ /usr/local/bin/node -v v14.19.3
  26. MIRACLE LINUX Meetup!! 39 構築手順・GraphicsMagickのインストール・設定1
 epelからGraphicsMagickのインストールを行います。 epelの登録 $ sudo dnf

    install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm GraphicsMagickのインストール $ sudo dnf install -y GraphicsMagick この資料執筆時点では GraphicsMagick 1.3.38-1.el9 がインストールされました。
  27. MIRACLE LINUX Meetup!! 42 構築手順・Rocket.Chatのビルドとインストール2
 Rocket.Chatの最新版をダウンロードします。 $ curl -L https://releases.rocket.chat/latest/download

    -o /tmp/rocket.chat.tgz tarファイルを展開し、セットアップを行います。 $ tar xf /tmp/rocket.chat.tgz -C /tmp $ cd /tmp/bundle/programs/server && npm install Rocket.Chatを/optに配置します。 $ sudo mv /tmp/bundle /opt/Rocket.Chat
  28. MIRACLE LINUX Meetup!! 44 構築手順・Rocket.Chatのビルドとインストール4
 Rocket.Chatを起動するためのsystemdユニットファイルを作成します。 $ cat << EOF

    | sudo tee -a /usr/lib/systemd/system/rocketchat.service [Unit] Description=The Rocket.Chat server After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service [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 Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 Environment=ROOT_URL=http://localhost:3000/ Environment=PORT=3000 [Install] WantedBy=multi-user.target EOF $ cat << EOF | sudo tee -a /usr/lib/systemd/system/rocketchat.service [Unit] Description=The Rocket.Chat server After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service [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 Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 Environment=ROOT_URL=http://localhost:3000/ Environment=PORT=3000 [Install] WantedBy=multi-user.target EOF
  29. MIRACLE LINUX Meetup!! 45 構築手順・Rocket.Chatのビルドとインストール5
 Rocket.Chatの起動、サーバ起動時の自動起動設定を行います。 $ sudo systemctl enable

    --now rocketchat 本手順通りにインストールを行うと、Rocket.Chatは3000/tcpで待ち受けを行います。必要に応じて firewalldの設定を行ってください $ sudo firewall-cmd --add-port 3000/tcp $ sudo firewall-cmd --add-port 3000/tcp --permanent
  30. MIRACLE LINUX Meetup!! 50 参考情報
 MIRACLE LINUX8での構築手順 LDAPサーバ連携手順 ウェブ会議システム連携(Jitsi) などの紹介blog

    MIRACLE LINUX 8にSlackライクなチャットツール「Rocket.Chat」を構築してみた! https://www.miraclelinux.com/tech-blog/ml8rocketchat
  31. MIRACLE LINUX Meetup!! 52 セッションの紹介
 2023年3月11日(土)16:00~ 【MTG】Linux ディストリビューション開発の近況 https://event.ospn.jp/osc2023-online-spring/session/810833 Cross

    Distro Developers Camp はLinuxディストリビューション横断で開発者が集まり、共通課題の 解決を目指し、合宿やもくもく会を行っているコミュニティです。 本ミーティングでは、各Linuxディストリビューションの開発者が集まり、簡単にそれぞれのディストリ ビューションを紹介した後、最近の開発について話します。参加者からの質問や話して欲しい内容のリ クエストも募集しています。また、今回からMIRACLE Linux が参加するので、 MIRACLE Linux の開 発についても聞いていきます。 参加予定ディストリビューション(飛び入り歓迎) - Debian - MIRACLE Linux - openSUSE - Ubuntu
  32. MIRACLE LINUX Meetup!! 54 4/1 OSC Offline Tokyo 
 MIRACLE

    LINUX Users Meetup!!で出展! 久々のリアル開催ということでステッカーやマウスパッドなどを 用意しています! 乞うご期待!場所は浅草! • 定期的にMeetup イベント(勉強会)を開催します。 ◦ https://miraclelinux.connpass.com/ ◦ 毎月開催予定! 是非登録してください。