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服务器(由于您要遵循的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值)。
麻省理工学院
随意:提出问题贡献