Deploy Rocket.chat, Ultimate Web Platform с открытым исходным кодом, с Ansible!
master был перезанен на v2.0 и теперь является наиболее современным кодом роли (вместо того, чтобы он был 1,9-совместимой версией.) Если вы хотите последний код, просто вообще не включайте какую-либо версию, и ansible-galaxy привлечет последнюю тег, или вы можете включить version: master , чтобы всегда быть актуальным с разработкой.v1.9 могут продолжать использовать теги v1.9 и v1.9.0 , а филиал ansible_1.9 остается, хотя там мало, если таковые будут сделаны. Необязательное полное развертывание стека: полностью развертывание Rocket.chat, включая Mongodb и Nginx Reverse SSL Proxy. Или развернуть Rocket.chat и интегрируйте с существующими экземплярами MongoDB и/или NGINX.
Необязательное автоматическое генерация сертификатов SSL: автоматически генерировать SSL CERT для подключения HTTPS через обратный прокси Nginx. Или разверните свои собственные SSL Certs!
Дополнительные автоматические обновления [требуют Ansible 2.0]: если выпущена новая версия Rocket.chat, или если вы хотите следить за разработкой для целей тестирования, просто обновите The rocket_chat_version , какой выпуск, который вы хотите развернуть (см. Rocket.chat Leleases, Set rocket_chat_automatic_upgrades для true , и подпустите эту роль в RESTOMATE, чтобы изменить свою роль! Сервер (например, из -за удаленного изменения в rocket_chat_version , «Последний» или «Разработка», либо из -за того, что вы устанавливаете новую rocket_chat_version для получения ), эта роль справится с обновлением и повторным развертыванием Rocket.chat, сохраняя ваши данные в такт.
Если вы хотите, чтобы ваша дистрибьюторская/операционная система поддерживалась, пожалуйста, поднимите проблему!
Пожалуйста, убедитесь, что вы прочитали 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 true когда rocket_chat_upgrade_backup |
rocket_chat_application_path | /var/lib/rocket.chat | Пункт назначения в файловой системе для развертывания Rocket.chat |
rocket_chat_version | latest | Версия Rocket.chat для развертывания; Смотрите страницу Rocket.chat Relayes для доступных вариантов |
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 Certs для Rocket.chat Tarball Remote |
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 |
rocket_chat_service_port | 3000 | TCP Port Rocket.chat прослушивает |
rocket_chat_service_extra_instances | [] | Список номеров портов TCP для дополнительных экземпляров услуг Rocketchat, чтобы обрабатывать больше пользователей на одной машине |
rocket_chat_node_version | 4.5.0 | Версия Nodejs для установки n понимает |
rocket_chat_node_prefix | /usr/local/n/versions/node/{{ rocket_chat_node_version }} | Путь к бинарному каталогу node , который устанавливает N |
rocket_chat_npm_dist | /usr/bin/npm | Путь к исходному двоичному npm , прежде чем n устанавливает любые версии узла |
rocket_chat_include_mongodb | истинный | Логическое значение, которое определяет, развертывать или нет MongoDB |
rocket_chat_mongodb_keyserver | keyserver.ubuntu.com | Сервер ключей GPG для использования при импорте клавиша репо MongoDB |
rocket_chat_mongodb_gpg_key | 7F0CEB10 | Отпечаток ключа GPG для импорта для репо MongoDB |
rocket_chat_mongodb_user | не используется по умолчанию | Имя пользователя будет использоваться при подключении к MongoDB. Если вы установите это, вы также должны определить rocket_chat_mongodb_password , в противном случае пользователь/Pass не используется для подключения к mongodb |
rocket_chat_mongodb_password | не используется по умолчанию | Пароль для использования при подключении к MongoDB. Если вы установите это, вы также должны определить rocket_chat_mongodb_user , в противном случае пользователь/Pass не используется для подключения к mongodb |
rocket_chat_mongodb_server | 127.0.0.1 | IP/FQDN хоста MongoDB |
rocket_chat_mongodb_port | 27017 | Порт TCP, чтобы связаться с хостом хоста MongoDB через |
rocket_chat_mongodb_database | Rocketchat | База данных MongoDB, которая будет использоваться для Rocket.chat |
rocket_chat_mongodb_use_tls | ЛОЖЬ | Использовать ли TLS для подключения к DB 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 | ложный | Правда (Debian/Ubuntu) | Используйте официальные пакеты Mongodb.org Community Edition или нет |
rocket_chat_mongodb_org_version | 3.4 | Строка версии официальных пакетов для установки |
rocket_chat_mongodb_service_name | mongod | Имя системы службы SystemD и файла конфигурации MongoDB в /etc |
rocket_chat_include_nginx | истинный | Логическое значение, которое определяет, развертывать или нет. |
rocket_chat_ssl_generate_certs | истинный | Логическое значение, которое определяет, генерируют ли Nginx SSL Certs |
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/KEY) |
rocket_chat_ssl_key_file | ~ | Если не использование генерации сертификатов SSL, это путь к частному ключу Nginx SSL в узле управления Ansible, для развертывания |
rocket_chat_ssl_cert_file | ~ | Если не использование генерации сертификатов SSL, это путь к сертификации NGINX SSL на узле управления Ansible, для развертывания |
rocket_chat_nginx_enable_pfs | истинный | Логическое значение, которое определяет, включать ли PFS при развертывании Nginx |
rocket_chat_nginx_generate_pfs_key | истинный | Логическое значение, которое определяет, следует ли генерировать файл ключа PFS или нет |
rocket_chat_nginx_pfs_key_numbits | 2048 | Numbits для передачи в OpenSSL при генерации файла ключа PFS |
rocket_chat_nginx_pfs_key_path | /etc/nginx/rocket_chat.pem | Путь назначения для файла ключа Nginx PFS |
rocket_chat_nginx_pfs_file | ~ | Если не использование генерации ключей PFS, это путь к ключу Nginx PFS в управляющем узле Ansible, для развертывания |
rocket_chat_nginx_listen_ssl_port | 443 | Порт SSL, на котором NGNIX слушает |
rocket_chat_nginx_listen_port | 80 | Порт, на котором NGNIX слушает |
Некоторые переменные различаются между операционными системами/распределениями. Они установлены в vars/ Directory, обычно в файле, названном в честь распределения.
Установить в vars/RedHat.yml
| Имя | Значение по умолчанию | Описание |
|---|---|---|
rocket_chat_dep_packages | - git | Список зависимостей Rocket.chat для установки |
| - Graphicsmagick | ||
| - Nodejs | ||
| - NPM | ||
| - делать | ||
rocket_chat_mongodb_packages | - Mongodb | Список пакетов сервера MongoDB для установки |
| - MongoDB-сервер | ||
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 | Путь к PIDFILE для процесса сервера MongoDB |
rocket_chat_mongodb_logpath | /var/log/mongodb/mongod.log | Путь файла журнала для сервера MongoDB |
rocket_chat_mongodb_unixsocketprefix | /var/run/mongodb | Путь для префикса сокета Unix MongoDB |
rocket_chat_mongodb_dbpath | /var/lib/mongodb | Путь для MongoDB для хранения своих баз данных |
rocket_chat_nginx_process_user | nginx | Пользователь для этого будет использоваться для появления процесса Nginx Server |
Установить в vars/RedHat_7.yml
| Имя | Значение по умолчанию | Описание |
|---|---|---|
rocket_chat_service_update_command | systemctl daemon-reload ; systemctl restart rocketchat | Команда для использования для информирования системы управления услугами, когда изменилась манифест службы |
rocket_chat_service_template | ||
src | rocketchat.service.j2 | Шаблон источника для развертывания для Manifest Service Service.chat |
dest | /usr/lib/systemd/system/rocketchat.service | Пункт назначения для развертывания услуги Rocket.chat Manifest, чтобы |
rocket_chat_tarball_validate_remote_cert | ЛОЖЬ | Логическое значение, которое определяет, или не проверять SSL Certs для Rocket.chat Tarball Remote |
Установить в vars/Debian.yml
| Имя | Значение по умолчанию | Описание |
|---|---|---|
rocket_chat_dep_packages | - git | Список зависимостей Rocket.chat для установки |
| - Graphicsmagick | ||
| - Nodejs | ||
| - NPM | ||
| - делать | ||
rocket_chat_mongodb_packages | - MongoDB-сервер | Список пакетов сервера MongoDB для установки |
| - Mongodb-Shell | ||
rocket_chat_mongodb_repl_lines | replication: | Значение для набора реплики MongoDB |
replSetName: "001-rs" | ||
rocket_chat_nginx_process_user | www-data | Пользователь для этого будет использоваться для появления процесса Nginx Server |
Установить в vars/Debian_8.yml
| Имя | Значение по умолчанию | Описание |
|---|---|---|
rocket_chat_service_update_command | systemctl daemon-reload ; systemctl restart rocketchat | Команда для использования для информирования системы управления услугами, когда изменилась манифест службы |
rocket_chat_service_template | ||
src | rocketchat.service.j2 | Шаблон источника для развертывания для Manifest Service Service.chat |
dest | /etc/systemd/system/rocketchat.service | Пункт назначения для развертывания услуги Rocket.chat Manifest, чтобы |
rocket_chat_mongodb_apt_repo | deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main | APT -репозиторий для MongoDB |
Установить в vars/Ubuntu.yml
| Имя | Значение по умолчанию | Описание |
|---|---|---|
rocket_chat_dep_packages | - git | Список зависимостей Rocket.chat для установки |
| - Graphicsmagick | ||
| - Nodejs | ||
| - NPM | ||
| - делать | ||
rocket_chat_mongodb_packages | - MongoDB-сервер | Список пакетов сервера MongoDB для установки |
| - Mongodb-Shell | ||
rocket_chat_mongodb_repl_lines | replication: | Значение для набора реплики MongoDB |
replSetName: "001-rs" | ||
rocket_chat_nginx_process_user | www-data | Пользователь для этого будет использоваться для появления процесса Nginx Server |
Установить в vars/Ubuntu_15.yml
| Имя | Значение по умолчанию | Описание |
|---|---|---|
rocket_chat_service_update_command | systemctl daemon-reload ; systemctl restart rocketchat | Команда для использования для информирования системы управления услугами, когда изменилась манифест службы |
rocket_chat_service_template | ||
src | rocketchat.service.j2 | Шаблон источника для развертывания для Manifest Service Service.chat |
dest | /etc/systemd/system/rocketchat.service | Пункт назначения для развертывания услуги Rocket.chat Manifest, чтобы |
rocket_chat_mongodb_apt_repo | deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main | APT -репозиторий для MongoDB |
Установить в vars/Ubuntu_14.yml
| Имя | Значение по умолчанию | Описание |
|---|---|---|
rocket_chat_service_update_command | initctl reload-configuration ; service rocketchat restart | Команда для использования для информирования системы управления услугами, когда изменилась манифест службы |
rocket_chat_service_template | ||
src | rocketchat_upstart.j2 | Шаблон источника для развертывания для Manifest Service Service.chat |
dest | /etc/init/rocketchat.conf | Пункт назначения для развертывания услуги Rocket.chat Manifest, чтобы |
rocket_chat_mongodb_apt_repo | deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse | APT -репозиторий для MongoDB |
rocket_chat_tarball_validate_remote_cert | ЛОЖЬ | Логическое значение, которое определяет, или не проверять SSL Certs для Rocket.chat Tarball Remote |
Эта роль доступна для загрузки из Ansible Galaxy. Чтобы установить эту роль, и отслеживать ее в вашей базе Ansible, используйте что-то похожее на следующее в ваших requirements.yml :
- src : RocketChat.Server
version : v1.9.0
path : roles/external/
Примечание. Вы должны указать version как v1.9.0 , если вы все еще используете Ansible 1.9.4
С выпуском Ansible 2.0 эта роль официально поддерживается некоторыми улучшениями производительности и дополнительными функциями (например, автоматические обновления). Чтобы использовать версию Ansible 2.0 этой роли, вы можете установить ее, используя инструмент командной строки ansible-galaxy , используя requirements.yml .
ansible-galaxy пример File requirements.yml
- src : RocketChat.Server
path : roles/external master был переименован в v2.0 и в настоящее время является наиболее современным кодом роли. Если вы хотите, чтобы последнее просто не включало никакой версии, и ansible-galaxy привлечет последний тег, или вы можете включить version: master , чтобы всегда быть актуальным. Простая пьеса, чтобы запустить эту роль во всех системах chat_servers :
- hosts : chat_servers
roles :
- RocketChat.Server Playbook для развертывания Rocket.chat to chat_servers , но исключите развертывание MongoDB и используйте внешний экземпляр. Также разрешайте автоматические модернизации Rocket.chat (ANSIBLE 2.0, необходимый для rocket_chat_automatic_upgrades ! См. Установку из 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 если развертывание не удастся с сообщением, аналогичным следующему, это связано с тем, что роль не была обновлена, чтобы отразить хеш -сумму SHA256 последней Rocket.chat Release Tarball Tarball. 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 в вашей пьесе или с -e при запуске ansible-playbook и т. Д.
Чтобы запустить определенный набор пьес, с флагом --tags , доступные теги:
varsbuildmongodbreponginxupgradeservice Эта роль будет развернуть услугу под названием rocketchat . Вы можете использовать свою собственную систему управления услугами для запуска/остановки/перезагрузки/перезагрузки услуги.
Чтобы проверить эту роль, вы найдете пьесу Vagrantfile и provision.yml в tests/ каталоге. Это, как вы, возможно, догадались, для выполнения развертывания тестов через Vagrant.
Если вы хотите проверить некоторые изменения или просто увидеть, как работает роль/ предоставить немного Play Speat Rocket.chat Server локально, вы можете cd в tests/ и запустить vagrant up (при условии, что у вас установлен Vagrant & Virtualbox).
Если вы посмотрите на The Vagrantfile , вы увидите, что для каждой поддерживаемой платформы есть развертывание - просто прокомментируйте любую то, что вы не хотите развернуть (не забудьте их Ansible Config внизу!). После завершения развертывания, если вы хотите попробовать Rocket.chat Out, вы можете посетить http://localhost:4000 в вашем браузере (здесь варьируется порт 4000 , в зависимости от того, какую платформу вы развертываете, см. Значение forwarded_port для вашей платформы).
Грань
Не стесняйтесь: поднять проблему внести свой вклад