RocketChat.Server

Rocket.Chat Ansible Galaxy Travis-CI

Rocket.Chat、最終的なオープンソースのウェブチャットプラットフォームをAnsibleで展開しましょう!

注意事項

  • masterv2.0にリベースされ、現在これが役割の最新のコードです(1.9対応版ではありません)。最新のコードを取得したい場合は、バージョンを指定せずにansible-galaxyを使って最新のタグを引き込むか、version: masterを指定し、常に開発の最新のものを使えます。
  • v1.9のユーザーは、v1.9またはv1.9.0のタグを利用し続けることができ、ansible_1.9ブランチも残りますが、ほとんどバックポートは行われません。

特徴

  • オプションのフルスタック展開: Rocket.Chatを、MongoDBおよびNginxリバースSSLプロキシを含めて完全に展開します。 または、既存のMongoDBおよび/Nginxインスタンス/展開方法と統合してRocket.Chatを展開します。

  • オプションの自動SSL証明書生成: Nginxリバースプロキシを介して、HTTPS接続のSSL証明書を自動的に生成します。 または、自分のSSL証明書を展開してください!

  • オプションの自動アップグレード[Ansible 2.0が必要]: 新しいバージョンのRocket.Chatがリリースされた場合や、テスト目的で開発を追跡したい場合は、展開したいリリースにrocket_chat_versionを更新して、rocket_chat_automatic_upgradestrueに設定し、この役割に残りの処理をさせてください。 もし、あなたがフォローしているrocket_chat_version(例えば、'latest'や'develop')がリモートで変更されたり、新しいrocket_chat_versionを設定した場合、この役割はRocket.Chatサービスのアップグレードと再展開を管理し、あなたのデータを保持します。 注意:この機能はAnsible 2.0が必要です。この役割の2.0バージョンを取得する方法はAnsible Galaxyからインストールするセクションを参照してください。

サポートされているプラットフォーム

Debian

  • Strect (9)
  • Buster (10)

Ubuntu

  • Bionic Beaver: 18.04 LTS
  • Xenial: 16.04 LTS
  • Trusty: 14.04 LTS

EL (RHEL/CentOS)

  • 7

あなたのディストリビューション/オペレーティングシステムをサポートしてほしい場合は、問題を報告してください!

問題が発生しましたか?

問題を報告する前に、FAQやすべてのドキュメントを読んでいることを確認してください。

役割の変数

すべての変数はdefaults/main.ymlに適切なデフォルトが設定されています。

デフォルト

名称 デフォルト値 説明
rocket_chat_automatic_upgrades false ソースコード変更時にRocket.Chatをアップグレードするかどうかを決定するブール値
rocket_chat_upgrade_backup true アップグレード時に現在のRocket.Chatバージョンをバックアップするかどうかを決定するブール値
rocket_chat_upgrade_backup_path "{{ rocket_chat_application_path }}" rocket_chat_upgrade_backuptrueの場合のRocket.Chatのバックアップを保存するパス
rocket_chat_application_path /var/lib/rocket.chat Rocket.Chatを展開するファイルシステム上の宛先
rocket_chat_version latest 展開するRocket.Chatのバージョン;使用可能なオプションについてはRocket.Chatリリースページを参照
rocket_chat_tarball_remote defaults/main.ymlを参照 Rocket.Chatのtarballを取得するためのリモートURL(rocket_chat_versionを使用)
rocket_chat_tarball_sha256sum defaults/main.ymlを参照 取得中のRocket.Chat tarballのSHA256ハッシュ
rocket_chat_tarball_fetch_timeout 100 Rocket.Chat tarballの取得が失敗する前のタイムアウト時間(秒)
rocket_chat_tarball_validate_remote_cert true Rocket.Chat tarballのリモートSSL証明書を検証するかどうかを決定するブール値
rocket_chat_service_user rocketchat Rocket.Chatサーバープロセスを実行するユーザー名
rocket_chat_service_group rocketchat rocket_chat_service_userユーザーのプライマリグループ名
rocket_chat_service_host "{{ ansible_fqdn }}" Rocket.ChatシステムのFQDN
rocket_chat_service_port 3000 Rocket.ChatがリッスンするTCPポート
rocket_chat_service_extra_instances [] 1台のマシンでより多くのユーザーを扱うための追加のrocketchatサービスインスタンスのTCPポート番号のリスト
rocket_chat_node_version 4.5.0 nが理解するNodeJSのインストールバージョン
rocket_chat_node_prefix /usr/local/n/versions/node/{{ rocket_chat_node_version }} nがインストールするnodeバイナリディレクトリのパス
rocket_chat_npm_dist /usr/bin/npm nがNodeのバージョンをインストールする前の元のnpmバイナリへのパス
rocket_chat_include_mongodb true MongoDBを展開するかどうかを決定するブール値
rocket_chat_mongodb_keyserver keyserver.ubuntu.com MongoDBリポジトリキーをインポートする際に使用するGPGキーサーバ
rocket_chat_mongodb_gpg_key 7F0CEB10 MongoDBリポジトリのインポートに必要なGPGキーの指紋
rocket_chat_mongodb_user デフォルトでは使用しない MongoDBに接続する際に使うユーザー名。設定した場合は、rocket_chat_mongodb_passwordも定義する必要があります。さもなくば、接続時にユーザー名/パスワードは使用されません。
rocket_chat_mongodb_password デフォルトでは使用しない MongoDBに接続する際に使うパスワード。設定した場合は、rocket_chat_mongodb_userも定義する必要があります。さもなくば、接続時にユーザー名/パスワードは使用されません。
rocket_chat_mongodb_server 127.0.0.1 MongoDBホストのIP/FQDN
rocket_chat_mongodb_port 27017 MongoDBホストにアクセスするためのTCPポート
rocket_chat_mongodb_database rocketchat Rocket.Chat用に使用するMongoDBデータベース
rocket_chat_mongodb_use_tls false MongoDB DBに接続する際にTLSを使用するかどうか
rocket_chat_mongodb_packages mongodb インストールするMongoDBパッケージ名(異なるディストリビューションで異なる)
rocket_chat_mongodb_config_template mongod.conf.j2 展開する/etc/mongod.confのテンプレート
rocket_chat_mongodb_org_pkgs false | true (Debian/Ubuntu) 公式のMongoDB.orgコミュニティエディションパッケージを使用するかどうか
rocket_chat_mongodb_org_version 3.4 インストールする公式パッケージのバージョン
rocket_chat_mongodb_service_name mongod /etcのmongodb設定ファイルのsystemdサービスユニット名
rocket_chat_include_nginx true Nginxを展開するかどうかを決定するブール値
rocket_chat_ssl_generate_certs true NginxのSSL証明書を生成するかどうかを決定するブール値
rocket_chat_ssl_key_path /etc/nginx/rocket_chat.key Nginx SSLプライベートキーの宛先パス
rocket_chat_ssl_cert_path /etc/nginx/rocket_chat.crt Nginx SSL証明書の宛先パス
rocket_chat_ssl_deploy_data false カスタムSSLデータ(証明書/キーファイル)を展開するかどうかを決定するブール値
rocket_chat_ssl_key_file ~ SSL証明書生成を使用しない場合、Ansibleコントロールノード上のNginx SSLプライベートキーへのパス
rocket_chat_ssl_cert_file ~ SSL証明書生成を使用しない場合、Ansibleコントロールノード上のNginx SSL証明書へのパス
rocket_chat_nginx_enable_pfs true Nginx展開時にPFSを有効にするかどうかを決定するブール値
rocket_chat_nginx_generate_pfs_key true PFSキーを生成するかどうかを決定するブール値
rocket_chat_nginx_pfs_key_numbits 2048 PFSキーを生成する際にOpenSSLに渡すビット数
rocket_chat_nginx_pfs_key_path /etc/nginx/rocket_chat.pem Nginx PFSキーの宛先パス
rocket_chat_nginx_pfs_file ~ PFSキー生成を使用しない場合、Ansibleコントロールノード上のNginx PFSキーへのパス
rocket_chat_nginx_listen_ssl_port 443 NginxがリッスンするSSLポート
rocket_chat_nginx_listen_port 80 Nginxがリッスンするポート

いくつかの変数は、オペレーティングシステムやディストリビューションによって異なります。 これらはvars/ディレクトリに設定されており、通常、ディストリビューションにちなんだ名前のファイルに格納されています。

RHEL/CentOSの変数

vars/RedHat.ymlに設定されています。

名称 デフォルト値 説明
rocket_chat_dep_packages - git インストールするRocket.Chatの依存関係のリスト
- GraphicsMagick
- nodejs
- npm
- make
rocket_chat_mongodb_packages - mongodb インストールするMongoDBサーバーパッケージのリスト
- mongodb-server
rocket_chat_mongodb_repl_lines 'replSet=001-rs' MongoDBレプリカセットのための値
rocket_chat_mongodb_fork true MongoDBサーバープロセスをフォークするかどうかを設定するブール値
rocket_chat_mongodb_pidfile_path /var/run/mongodb/mongodb.pid MongoDBサーバープロセスのpidファイルのパス
rocket_chat_mongodb_logpath /var/log/mongodb/mongod.log MongoDBサーバーのログファイルのパス
rocket_chat_mongodb_unixsocketprefix /var/run/mongodb MongoDBのUNIXソケットプレフィックスのパス
rocket_chat_mongodb_dbpath /var/lib/mongodb MongoDBがデータベースを保存するためのパス
rocket_chat_nginx_process_user nginx Nginxサーバープロセスを開始するために使用されるユーザー

RHEL/CentOS 7の変数

vars/RedHat_7.ymlに設定されています。

名称 デフォルト値 説明
rocket_chat_service_update_command systemctl daemon-reload ; systemctl restart rocketchat サービスマニフェストが変更された際にサービス管理システムに通知するためのコマンド
rocket_chat_service_template
src rocketchat.service.j2 Rocket.Chatサービスマニフェストのためのソーステンプレート
dest /usr/lib/systemd/system/rocketchat.service Rocket.Chatサービスマニフェストのための宛先
rocket_chat_tarball_validate_remote_cert false Rocket.Chat tarballのリモートSSL証明書を検証するかどうかを決定するブール値

Debianの変数

vars/Debian.ymlに設定されています。

名称 デフォルト値 説明
rocket_chat_dep_packages - git インストールするRocket.Chatの依存関係のリスト
- graphicsmagick
- nodejs
- npm
- make
rocket_chat_mongodb_packages - mongodb-server インストールするMongoDBサーバーパッケージのリスト
- mongodb-shell
rocket_chat_mongodb_repl_lines replication: MongoDBレプリカセットのための値
replSetName: "001-rs"
rocket_chat_nginx_process_user www-data Nginxサーバープロセスを開始するために使用されるユーザー

Debian 8の変数

vars/Debian_8.ymlに設定されています。

名称 デフォルト値 説明
rocket_chat_service_update_command systemctl daemon-reload ; systemctl restart rocketchat サービスマニフェストが変更された際にサービス管理システムに通知するためのコマンド
rocket_chat_service_template
src rocketchat.service.j2 Rocket.Chatサービスマニフェストのためのソーステンプレート
dest /etc/systemd/system/rocketchat.service Rocket.Chatサービスマニフェストのための宛先
rocket_chat_mongodb_apt_repo deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main MongoDBのAPTリポジトリ

Ubuntuの変数

vars/Ubuntu.ymlに設定されています。

名称 デフォルト値 説明
rocket_chat_dep_packages - git インストールするRocket.Chatの依存関係のリスト
- graphicsmagick
- nodejs
- npm
- make
rocket_chat_mongodb_packages - mongodb-server インストールするMongoDBサーバーパッケージのリスト
- mongodb-shell
rocket_chat_mongodb_repl_lines replication: MongoDBレプリカセットのための値
replSetName: "001-rs"
rocket_chat_nginx_process_user www-data Nginxサーバープロセスを開始するために使用されるユーザー

Ubuntu 16の変数

vars/Ubuntu_15.ymlに設定されています。

名称 デフォルト値 説明
rocket_chat_service_update_command systemctl daemon-reload ; systemctl restart rocketchat サービスマニフェストが変更された際にサービス管理システムに通知するためのコマンド
rocket_chat_service_template
src rocketchat.service.j2 Rocket.Chatサービスマニフェストのためのソーステンプレート
dest /etc/systemd/system/rocketchat.service Rocket.Chatサービスマニフェストのための宛先
rocket_chat_mongodb_apt_repo deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main MongoDBのAPTリポジトリ

Ubuntu 14の変数

vars/Ubuntu_14.ymlに設定されています。

名称 デフォルト値 説明
rocket_chat_service_update_command initctl reload-configuration ; service rocketchat restart サービスマニフェストが変更された際にサービス管理システムに通知するためのコマンド
rocket_chat_service_template
src rocketchat_upstart.j2 Rocket.Chatサービスマニフェストのためのソーステンプレート
dest /etc/init/rocketchat.conf Rocket.Chatサービスマニフェストのための宛先
rocket_chat_mongodb_apt_repo deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse MongoDBのAPTリポジトリ
rocket_chat_tarball_validate_remote_cert false Rocket.Chat tarballのリモートSSL証明書を検証するかどうかを決定するブール値

この役割をAnsible Galaxyからインストールする

この役割はAnsible Galaxyからダウンロードできます。 この役割をインストールし、Ansibleコードベースで追跡するには、requirements.ymlに以下のように記述します。

- src: RocketChat.Server
  version: v1.9.0
  path: roles/external/

注意:Ansible 1.9.4をまだ使用している場合は、versionv1.9.0として指定する必要があります。

Ansible 2.0バージョンのこの役割をインストール

Ansible 2.0のリリースにより、この役割には公式サポートが入り、パフォーマンスの向上や追加機能(自動アップグレードなど)が提供されます。 Ansible 2.0バージョンのこの役割を使用するには、requirements.ymlを使用してansible-galaxyコマンドラインツールを使用してインストールできます。

以下は、ansible-galaxyを通じてAnsible 2.0コードを取得するためのrequirements.ymlファイルの例です:

  - src: RocketChat.Server
    path: roles/external
注意:masterはv2.0にリベースされ、現在はこの役割の最新のコードです。最新を取得したい場合は、バージョンを全く含めずにansible-galaxyを使って最新のタグを取得するか、version: masterを指定して常に最新の状態を取得します。

例のプレイブック

全てのchat_serversシステムでこの役割を実行するシンプルなプレイブック:

  - hosts: chat_servers
    roles:
     - RocketChat.Server

MongoDBのデプロイを除外し、外部インスタンスを使用してchat_serversにRocket.Chatをデプロイするプレイブック。Rocket.Chatの自動アップグレードも許可しています(rocket_chat_automatic_upgradesにはAnsible 2.0が必要です!詳しくはAnsible Galaxyからのインストールセクションを確認してください):

  - hosts: chat_servers

    vars:
      rocket_chat_automatic_upgrades: true
      rocket_chat_include_mongodb: false
      rocket_chat_mongodb_server: 10.19.3.24

    roles:
      - RocketChat.Server

FAQ

  • この役割を使用してデプロイしようとしたときに、Fetch the Rocket.Chat binary tarballタスクで失敗します もしデプロイが、以下のようなメッセージで失敗する場合、これは役割が最新のRocket.ChatリリースtarballのSHA256ハッシュ合計を反映するために更新されていないことが原因です。
TASK [RocketChat.Server : Fetch the Rocket.Chat binary tarball] ****************
fatal: [chat1]: FAILED! => {"changed": false, "failed": true, "msg": "The checksum for /var/lib/rocket.chat/rocket.chat-latest.tgz did not match e6caca890c86f79595da14398dd3ab0c0d3222932d6a8a1b38c6e5082531acd2; it was 21ef5ee220671e5f514f240d1423514c5780d81d6ffba8720d19660079099925."}

現在、この変数の管理は手動プロセスです。その間に、この変数の値を自分で設定することができます。host_varsgroup_vars、プレイブック内のvars、またはデプロイ時に-eを使用するといった方法で設定可能です。

利用可能なタグ

特定のプレイセットを実行するには、--tagsフラグを使用します。利用可能なタグは以下の通りです:

  • vars
  • build
  • mongodb
  • repo
  • nginx
  • upgrade
  • service

Rocket.Chatサービスの管理

この役割はrocketchatという名前のサービスをデプロイします。 ネイティブのサービス管理システムを使用して、サービスの開始/停止/再読み込み/再起動を行うことができます。

Vagrantによるテスト

この役割をテストするには、tests/ディレクトリ内にあるVagrantfileprovision.ymlプレイブックを見てください。 これは、おそらくお分かりかと思いますが、Vagrantを使ってテストデプロイメントを行うためのものです。

もし変更をテストしたり、役割がどのように機能するかを見たり、ローカルにちょっとしたRocket.Chatサーバーをプロビジョニングするつもりであれば、tests/に移動し、vagrant upを実行することができます(VagrantとVirtualBoxがインストールされていることが前提です)。

Vagrantfileを見ると、現在サポートされているプラットフォームごとにデプロイメントがあり、不要なものはコメントアウトすれば大丈夫です(Ansibleの設定も忘れずに!)。 デプロイが完了すると、http://localhost:4000にブラウザでアクセスすることでRocket.Chatを試せます(ここでのポート4000は展開するプラットフォームに基づいて変わり、プラットフォームごとのforwarded_port値を参照してください)。

TODO

  • Let's EncryptをSSLに使用

ライセンス

MIT

問題/貢献

お気軽にどうぞ: 問題を報告 貢献する

インストール
ansible-galaxy install RocketChat.Server
ライセンス
mit
ダウンロード
12.5k
所有者
The communications platform that puts data protection first.