Ansibleを使用して、究極のオープンソースWebチャットプラットフォームであるRocket.chatを展開します!
master v2.0にリベースされており、現在の役割の最新のコードです(1.9互換ansible-galaxyのあるバージョンではなく)。最新のコードが必要な場合は、 version: masterをまったく含めないでください。v1.9ユーザーは、タグv1.9およびv1.9.0を引き続き使用でき、 ansible_1.9ブランチは残りますが、バックポートが作成されない場合はほとんどありません。 オプションのフルスタック展開: Mongodbおよびnginx Reverse SSLプロキシを含むRocket.chatを完全に展開します。または、Rocket.Chatを展開し、既存のMongoDBおよび/またはnginxインスタンス/展開方法と統合します。
オプションの自動SSL CERT生成: NGINX逆プロキシを介してHTTPS接続のSSL CERTを自動的に生成します。または、独自のSSL証明書を展開してください!
オプションの自動アップグレード[Ansible 2.0が必要]: Rocket.Chatの新しいバージョンがリリースされた場合、またはテストのために開発をフォローしたい場合は、 rocket_chat_versionリリース展開のリリースに更新するだけです(Rocket.chatのリリースページをtrueし、 rocket_chat_automatic_upgrades to the code to code de seet a a code in to seet Rocket.Chatサーバー(たとえば、「最新」または「開発」 rocket_chat_versionフォローしているため、またはこの役割がRocket.Chatサービスのアップグレードと再rocket_chat_versionを処理し、この機能を備えています。ギャラクシーセクション
流通/オペレーティングシステムがサポートされていることを確認したい場合は、問題を提起してください!
問題を提起する前に、FAQとすべてのドキュメントを読んだことを確認してください。
すべての変数にはdefaults/main.ymlで設定された正気のデフォルトがあります
| 名前 | デフォルト値 | 説明 |
|---|---|---|
rocket_chat_automatic_upgrades | 間違い | ソースコードの変更時にRocket.chatをアップグレードするかどうかを決定するブール値 |
rocket_chat_upgrade_backup | 真実 | アップグレード時に現在のRocket.Chatバージョンをバックアップするかどうかを決定するブール値 |
rocket_chat_upgrade_backup_path | "{{ rocket_chat_application_path }}" | Rocket.chatのバックアップを保存するパスrocket_chat_upgrade_backupがtrue |
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 | 真実 | 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 | TCPポートRocket.Chatが耳を傾けます |
rocket_chat_service_extra_instances | [] | 1つのマシンでより多くのユーザーを処理するための追加のRocketchatサービスインスタンスのTCPポート番号のリスト |
rocket_chat_node_version | 4.5.0 | Nodejsのバージョンがそのnが理解していることをインストールします |
rocket_chat_node_prefix | /usr/local/n/versions/node/{{ rocket_chat_node_version }} | nがインストールするnodeバイナリディレクトリへのパス |
rocket_chat_npm_dist | /usr/bin/npm | nがノードバージョンをインストールする前に、元のnpmバイナリへのパス |
rocket_chat_include_mongodb | 真実 | 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 | TCPポートは、MongoDBホストに連絡する |
rocket_chat_mongodb_database | Rocketchat | rocket.chatに使用されるmongodbデータベース |
rocket_chat_mongodb_use_tls | 間違い | TLSを使用してMongoDB DBに接続するかどうか |
rocket_chat_mongodb_packages | mongodb | インストールするMongoDBパッケージの名前(異なるディストリビューションの場合は異なります - vars/を参照) |
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のSystemDサービスユニットとMongoDB構成ファイルの名前 |
rocket_chat_include_nginx | 真実 | nginxを展開するかどうかを決定するブール値 |
rocket_chat_ssl_generate_certs | 真実 | 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 | 間違い | カスタムSSLデータを展開するかどうかを決定するブール値(証明書/キーファイル) |
rocket_chat_ssl_key_file | ~ | SSL CERTの生成を使用していない場合、これは展開用のAnsibleコントロールノード上のNginx SSL秘密キーへのパスです |
rocket_chat_ssl_cert_file | ~ | SSL CERT生成を使用していない場合、これは展開用のAnsible ControlノードのNginx SSL証明書へのパスです |
rocket_chat_nginx_enable_pfs | 真実 | nginxの展開時にPFSを有効にするかどうかを決定するブール値 |
rocket_chat_nginx_generate_pfs_key | 真実 | 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 | ngnixが耳を傾けるSSLポート |
rocket_chat_nginx_listen_port | 80 | ngnixが耳を傾けるポート |
一部の変数は、オペレーティングシステム/分布間で異なります。これらは、通常、 vars/ディレクトリ、通常は配布にちなんで名付けられたファイルに設定されています。
vars/RedHat.ymlにセット
| 名前 | デフォルト値 | 説明 |
|---|---|---|
rocket_chat_dep_packages | - git | インストールするrocket.chat依存関係のリスト |
| -GraphicsMagick | ||
| -NodeJS | ||
| -NPM | ||
| - 作る | ||
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サーバープロセスのPIDFILEへのパス |
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サーバープロセスをスポーンするために使用されます |
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 | 間違い | Rocket.chat TarballリモートのSSL証明書を検証するかどうかを決定するブール値 |
vars/Debian.ymlにセット
| 名前 | デフォルト値 | 説明 |
|---|---|---|
rocket_chat_dep_packages | - git | インストールするrocket.chat依存関係のリスト |
| -GraphicsMagick | ||
| -NodeJS | ||
| -NPM | ||
| - 作る | ||
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サーバープロセスをスポーンするために使用されます |
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リポジトリ |
vars/Ubuntu.ymlにセット
| 名前 | デフォルト値 | 説明 |
|---|---|---|
rocket_chat_dep_packages | - git | インストールするrocket.chat依存関係のリスト |
| -GraphicsMagick | ||
| -NodeJS | ||
| -NPM | ||
| - 作る | ||
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サーバープロセスをスポーンするために使用されます |
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リポジトリ |
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 | 間違い | Rocket.chat TarballリモートのSSL証明書を検証するかどうかを決定するブール値 |
この役割は、Ansible Galaxyからダウンロードできます。この役割をインストールし、それをAnsible Code-Baseで追跡するには、 requirements.ymlで次のようなものを使用します。
- src : RocketChat.Server
version : v1.9.0
path : roles/external/
注:Ansible 1.9.4を使用している場合は、 versionをv1.9.0として指定する必要があります
Ansible 2.0のリリースにより、この役割は、いくつかのパフォーマンスの強化と追加機能(たとえば自動アップグレード)で公式にサポートされています。この役割のAnsible 2.0バージョンを使用するには、 requirements.yml (両方とも上記)を使用してansible-galaxyコマンドラインツールを使用してインストールして、使用するバージョンを指定できます。
以下は、 ansible-galaxyを介してインストールするrequirements.ymlファイルの例です。Ansible2.0コードが取得されます。
- src : RocketChat.Server
path : roles/external master v2.0で除外されており、現在の役割の最新のコードです。最新のものが必要な場合は、バージョンをまったく含めないだけで、 ansible-galaxy最新のversion: masterを引き込みます。 すべてのchat_serversシステムでこの役割を実行する簡単なプレイブック:
- hosts : chat_servers
roles :
- RocketChat.Server rocket.chatをchat_serversに展開するが、mongodbの展開を除外し、外部インスタンスを使用するプレイブック。また、Rocket.chatの自動アップグレードを許可します( rocket_chat_automatic_upgradesに必要なAnsible 2.0!Ansible Galaxy Secionのインストールを参照):
- 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 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_vars 、 group_vars 、プレイブックのvars 、またはansible-playbookなどを実行するときに-eを介して。
--tagsフラグを使用して、特定のプレイセットを実行するには、利用可能なタグは次のとおりです。
varsbuildmongodbreponginxupgradeservice この役割は、 rocketchatという名前のサービスを展開します。ネイティブサービス管理システムを使用して、サービスを開始/停止/リロード/再起動できます。
この役割をテストするために、 tests/ディレクトリにVagrantfileとprovision.yml Playbookがあります。これは、ご想像のとおり、Vagrantを介したテスト展開を実行するためです。
いくつかの変更をテストしたい場合、またはロールがどのように機能するかを確認したい場合は、ローカルでrocet.chatサーバーをプレイする方法を確認してください。CDをcd tests/およびvagrant up実行することができます(Vagrant&VirtualBoxがインストールされている場合)。
Vagrantfileを見てみると、現在サポートされているプラットフォームごとに展開があることがわかります。展開したくないものをコメントしてください(下部にあるものも忘れないでください!)。展開が終了したら、Rocket.Chatを試してみたい場合は、ブラウザにhttp://localhost:4000にアクセスできます(ポート4000 、 forwarded_portするプラットフォームに基づいてここで異なります。
mit
お気軽に:問題を提起してください