AWS EC2(CentOS7)로 RocketChat을 구축한다. ~RocketChat 설치~

기사 내용



제2부 AWS EC2(CentOS7)로 RocketChat을 구축한다. ~서버 조작&사전 준비~의 계속이 됩니다.

  • 제1부
  • AWS에서 EC2 인스턴스(CentOS7) 생성
  • EC2 인스턴스에 대한 보안 그룹 설정


  • 제2부
  • Linux 서버 작동 방법
  • RocketChat 사전 준비 (편리한 패키지 설치)


  • 제3부(이번)
  • RocketChat 설치


  • 본편



    설치



    기본적으로는 공식 매뉴얼 에 기재되어 있습니다.
    그 때문에, 매뉴얼을 자신 나름대로 읽은 형식으로 소개하면서, 망설인 점을 기재합니다.
    ※일본어 번역이라고 해도 나름대로 해석이므로, 잘못이 있으면 지적해 주세요.

    매뉴얼


    # 1
    #RPMパッケージのアップデートを実行する。
    sudo yum -y check-update
    
    # 2
    #MongoDBをインストールする際に参照される「mongodb-org-4.0.repo」を作成する。
    cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-4.0.repo
    [mongodb-org-4.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
    EOF
    
    # 3
    #「curl」パッケージのインストール 
    #「curl」を使って、NodeSourceのリポジトリをyumリポジトリに追加し、
    #セットアップファイルを実行する。
    sudo yum install -y curl && curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
    
    # 4
    # 「gcc-c++」・「mongodb-org」・「nodejs」をインストールする。
    # ※補足1
    sudo yum install -y gcc-c++ make mongodb-org nodejs
    
    
    # 5
    # 「GraphicsMagick」をインストールする。
    sudo yum install -y epel-release && sudo yum install -y GraphicsMagick
    
    
    # 6
    # nパッケージのインストール
    # ver8.11.4への切り替え
    sudo npm install -g inherits n && sudo n 8.11.4
    
    # 7
    # RocketChatのインストール
    # 「rocket.chat.tgz」としてRocketChatソースを入手する。
    curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
    
    # 7
    # tgzファイルの解凍
    tar -xzf /tmp/rocket.chat.tgz -C /tmp
    
    
    # 8
    # ディレクトリ移動
    # npmリポジトリからライブラリを入手する。
    cd /tmp/bundle/programs/server && npm install
    
    # パッケージ群を移動する。(任意のディレクトリに移動も可)
    sudo mv /tmp/bundle /opt/Rocket.Chat
    
    
    # 9
    # ディレクトリ作成
    # ユーザロック
    sudo useradd -M rocketchat && sudo usermod -L rocketchat
    
    # 10
    # ディレクトリ・ファイルの所有権を再帰的に変更する?
    sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
    
    # 11
    # rocketchat.serviceの編集
    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
    
    # この部分は、各自の環境によってカスタム可能
    MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
    MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
    ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000
    PORT=3000
    
    # 12
    # mongoDBの設定ファイルに対して、文字列置換
    sudo sed -i "s/^#  engine:/  engine: mmapv1/"  /etc/mongod.conf
    
    # 13
    # mongoDBの設定ファイルに対して、文字列置換
    sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf
    
    
    # 14
    # mongoDBサービスのサービス自動起動有効化
    # mongoDBサービスの開始
    sudo systemctl enable mongod && sudo systemctl start mongod
    
    
    # 15
    # 直接mongoDBにコマンド実行
    mongo --eval "printjson(rs.initiate())"
    
    # 16
    # rocketchatサービスのサービス自動起動有効化
    # rocketchatサービスの開始
    sudo systemctl enable rocketchat && sudo systemctl start rocketchat
    
    

    그리고,
    『http://(IP주소):3000』에 액세스하면 겨우 RocketChat 화면에 액세스할 수 있습니다.



    보충



    1. MongoDB를 설치할 수 없음



    매뉴얼의 #4에서 명령을 실행해도,
    "mongodb-org"가 설치되지 않았고 이끼였습니다.
    따라서 mongoDB 설치에 대해서는 공식 사이트에 나열된 명령을 실행했습니다.
    sudo yum install -y mongodb-org
    

    2. 부팅할 수 없음



    MongoDB·RocketChat의 서비스가 일어나도,
    왠지 부팅할 수 없어,,,,,,
    [(ユーザー名)@ip-(IPアドレス) centos]$ systemctl status
    ● ip-(IPアドレス).us-east-2.compute.internal
        State: degraded
    # 以下略~~~
    

    엣데그레?
    조사해 보면,,, 「kdump.service」가 안 되는 것이었습니다.
    [(ユーザー名)@ip-(IPアドレス) centos]$ systemctl --failed
      UNIT          LOAD   ACTIVE SUB    DESCRIPTION
    ● kdump.service loaded failed failed Crash recovery kernel arming
    

    다만, 이것은 백업 파일을 생성하는 「kdump.service」가 사용하는 메모리 용량이,
    부족한 것에 의해 발생하는 것 같아서 이번에는 회피하기 위해,
    참고 사이트의 리눅스 관련 고마운 사이트 2 에 기재되어 있는 방법을 이용했습니다.

    그 결과, 데그레 해소가 가능했습니다.

    명령 비망록


    #catコマンド
    #この場合はヒアドキュメントとの合わせ技で単なるテキストファイルの書き込みではなく、
    #コマンド呼び出しも実行しています。
    cat << EDF | コマンド 
    ~~~~
    EOF
    
    #teeコマンド
    #「ファイル名」に書き込みを行う。
    #また、ファイルが存在しなければ新規作成したうえで、書き込みを行う。 
    tee -a ファイル名
    

    참고



    리눅스 관련 고마운 사이트 1
    리눅스 관련 고마운 사이트 2

    mongoDB 공식 사이트

    좋은 웹페이지 즐겨찾기