Deploy Rocket.Chat,最終的開源Web聊天平台,具有Ansible!
master已在v2.0上重新列出,現在是該角色中最新的代碼(而不是它是1.9兼容的版本。)如果您想要最新的代碼,只是根本不包含任何版本,而ansible-galaxy則將添加最新標籤,或者您可以包括version: master to Gyern to Gluct with Devernation ta Graneving cranver。v1.9用戶可以繼續使用標籤v1.9和v1.9.0 ,並且保留了ansible_1.9分支,儘管幾乎沒有任何備份。 可選的完整堆棧部署:完全部署Rocket.Chat,包括MongoDB和AN NGINX反向SSL代理。或者,部署Rocket.Chat並與您現有的MongoDB和/或Nginx實例/部署方法集成。
可選的自動SSL CERT生成:通過NGINX反向代理自動為HTTPS連接生成SSL證書。或者,部署自己的SSL證書!
Optional automatic upgrades [requires Ansible 2.0]: If a new version of Rocket.Chat is released, or if you want to follow development for testing purposes, simply update the rocket_chat_version to whichever release you wish to deploy (see the Rocket.Chat releases page, set rocket_chat_automatic_upgrades to true and let this role do the rest! If there's a change to the code deployed to your rocket_chat_version服務器(由於您要遵循的Rocket_chat_version遠程更改,例如“最新”或“開發”,或者是因為您將新的rocket_chat_version設置為獲取),因此該角色將處理Rocket.Chat服務的升級和重新部署。
如果您想查看支持您的分銷/操作系統,請提出一個問題!
在提出問題之前,請確保您已經閱讀了常見問題解答和所有文檔。
所有變量均在defaults/main.yml中設置為理智的默認值
| 姓名 | 預設值 | 描述 |
|---|---|---|
rocket_chat_automatic_upgrades | 錯誤的 | 一個布爾值,該價值決定是否升級Rocket.Chat在源代碼上更改 |
rocket_chat_upgrade_backup | 真的 | 升級時是否備份當前火箭的布爾值。 |
rocket_chat_upgrade_backup_path | "{{ rocket_chat_application_path }}" | 存儲Rocket.Chat的rocket_chat_upgrade_backup的途徑true |
rocket_chat_application_path | /var/lib/rocket.chat | 文件系統上的目的地部署roucket.chat |
rocket_chat_version | latest | Rocket.Chat的版本要部署;有關可用選項,請參見Rocket.Chat版本頁面 |
rocket_chat_tarball_remote | 請參閱defaults/main.yml | 遠程URL以獲取Rocket.Chat Tarball(使用rocket_chat_version ) |
rocket_chat_tarball_sha256sum | 請參閱defaults/main.yml | SHA256火箭的總和。 |
rocket_chat_tarball_fetch_timeout | 100 | 嘗試拿起火箭之前的時間(幾秒鐘)。 |
rocket_chat_tarball_validate_remote_cert | 真的 | 一個布爾值,它決定不驗證火箭的SSL證書。 |
rocket_chat_service_user | rocketchat | 將運行Rocket.Chat服務器進程的用戶名稱 |
rocket_chat_service_group | rocketchat | rocket_chat_service_user用戶的主要組名稱 |
rocket_chat_service_host | "{{ ansible_fqdn }}" | 火箭系統的fqdn |
rocket_chat_service_port | 3000 | TCP端口火箭。 |
rocket_chat_service_extra_instances | [] | TCP端口號列表,用於其他Rocketchat服務實例,以處理一台計算機上的更多用戶 |
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 | 在安裝任何節點版本之前,原始npm二進制的路徑 |
rocket_chat_include_mongodb | 真的 | 一個確定是否部署mongoDB的布爾值 |
rocket_chat_mongodb_keyserver | keyserver.ubuntu.com | 導入MongoDB repo密鑰時要使用的GPG密鑰服務器 |
rocket_chat_mongodb_gpg_key | 7F0CEB10 | gpg鍵指紋導入MongoDB存儲庫 |
rocket_chat_mongodb_user | 默認不使用 | 連接到MongoDB時要使用的用戶名。如果設置此此設置,則還應定義rocket_chat_mongodb_password ,否則不使用用戶/通行證來連接到mongodb |
rocket_chat_mongodb_password | 默認不使用 | 連接到MongoDB時要使用的密碼。如果設置此此設置,則還應定義rocket_chat_mongodb_user ,否則不使用用戶/通行證連接到mongodb |
rocket_chat_mongodb_server | 127.0.0.1 | MongoDB主機的IP/FQDN |
rocket_chat_mongodb_port | 27017 | TCP端口通過 |
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 | Systemd Service單元和MongoDB配置文件的名稱 /etc的名稱 |
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數據(cert/鍵文件)的布爾值 |
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鍵文件時,numbits將傳遞給OpenSSL |
rocket_chat_nginx_pfs_key_path | /etc/nginx/rocket_chat.pem | NGINX PFS密鑰文件的目標路徑 |
rocket_chat_nginx_pfs_file | ~ | 如果不使用PFS密鑰生成,這是Ansible Control節點上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 | 為火箭部署的源模板.CHAT服務清單 |
dest | /usr/lib/systemd/system/rocketchat.service | 部署火箭的目的地。 |
rocket_chat_tarball_validate_remote_cert | 錯誤的 | 一個布爾值,它決定不驗證火箭的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 | 為火箭部署的源模板.CHAT服務清單 |
dest | /etc/systemd/system/rocketchat.service | 部署火箭的目的地。 |
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 | 為火箭部署的源模板.CHAT服務清單 |
dest | /etc/systemd/system/rocketchat.service | 部署火箭的目的地。 |
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 | 為火箭部署的源模板.CHAT服務清單 |
dest | /etc/init/rocketchat.conf | 部署火箭的目的地。 |
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 | 錯誤的 | 一個布爾值,它決定不驗證火箭的SSL證書。 |
該角色可從Ansible Galaxy下載。要安裝此角色,並在Ansible代碼庫中跟踪它,請在您的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版本,您可以使用ansible-galaxy命令行使用requirements.yml (上面提到的兩者)來指定要使用的版本。
這是一個示例requirements.yml通過ansible-galaxy安裝的yml文件將獲取Ansible 2.0代碼:
- src : RocketChat.Server
path : roles/external master已在V2.0上重新列出,現在是該角色中最新的代碼。如果您想要最新的內容,只是根本不包含任何版本,而ansible-galaxy將添加最新標籤,或者您可以包括version: master to Gyern to Gyern。 一本簡單的劇本,可以在所有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 Task如果部署失敗,消息類似於以下消息,這是因為該角色尚未更新以反映最新的火箭的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 ,playbook中的vars或運行ansible-playbook時的-e等。
為了運行帶有--tags標誌的特定戲劇集,可用標籤為:
varsbuildmongodbreponginxupgradeservice 這個角色將部署一個名為rocketchat的服務。您可以使用本機服務管理系統來啟動/停止/重新加載/重新啟動服務。
要測試這個角色,您將在tests/目錄中找到Vagrantfile和provision.yml playbook。正如您可能已經猜到的那樣,這是通過Vagrant進行測試部署的。
如果您想測試一些更改,或者簡單地查看角色的工作/配置方式。在本地使用小play rocket.chat服務器,則可以在tests/ vagrant up中進行cd (前提是已安裝了Vagrant&VirtualBox)。
如果您查看Vagrantfile ,您會看到每個當前支持的平台都有一個部署 - 只需評論您不想部署的任何內容(也不要忘記其底部的a ansible Config!)。部署完成後,如果您想嘗試Rocket.Chat,則可以訪問http://localhost:4000在瀏覽器中(端口4000在此處變化,根據您部署的平台,請參閱平台的forwarded_port值)。
麻省理工學院
隨意:提出問題貢獻