Implementar Rocket.Chat, la mejor plataforma de chat web de código abierto, ¡con Ansible!
master ha sido rebajado en v2.0 y ahora es el código más actual del rol (en lugar de ser la versión compatible con 1.9). Si desea el último código, simplemente no incluya ninguna versión y ansible-galaxy extraerá la última etiqueta, o puede incluir version: master para estar siempre actual con el desarrollo.v1.9 pueden continuar usando las etiquetas v1.9 y v1.9.0 , y queda una rama ansible_1.9 , aunque se realizarán poco o ningún retroceso allí. Implementación de pila completa opcional: implementar completamente Rocket.Chat, incluidos MongoDB y An Nginx Reverse SSL Proxy. O, implementa Rocket.Chat e integre con sus métodos existentes de instancias/implementación de MongoDB y/o Nginx.
Generación de certificado SSL automático opcional: genere automáticamente los certificados SSL para la conectividad HTTPS a través de un proxy inverso NGINX. ¡O despliegue sus propios certs SSL!
Actualizaciones automáticas opcionales [requiere Ansible 2.0]: si se lanza una nueva versión de Rocket.Chat, o si desea seguir el desarrollo para fines de prueba, simplemente actualice el rocket_chat_version a cualquier versión que desee implementar (¡consulte la página de Rocket.Chat Lotes, Sea rocket_chat_automatic_upgrades a true y no haga que este rol sea RET RES REST A UN CAMBIO A CAMBIO A COLECTO AL CODEDE CODETET. Debido a un cambio remoto a rocket_chat_version que está siguiendo , 'último' o 'desarrollar', o porque establece un nuevo rocket_chat_version para obtener)
Si desea ver su sistema de distribución/operación compatible, ¡plantee un problema!
Asegúrese de leer las preguntas frecuentes y toda la documentación antes de plantear un problema.
Todas las variables tienen valores predeterminados sensatos establecidos en defaults/main.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_automatic_upgrades | FALSO | Un valor booleano que determina si actualizar o no cohete. |
rocket_chat_upgrade_backup | verdadero | Un valor booleano que determina si respalda o no el cohete actual. Versión chat al actualizar |
rocket_chat_upgrade_backup_path | "{{ rocket_chat_application_path }}" | El camino para almacenar la respaldo de Rocket.Chat cuando rocket_chat_upgrade_backup es true |
rocket_chat_application_path | /var/lib/rocket.chat | El destino en el sistema de archivos para implementar cohet.chat a |
rocket_chat_version | latest | La versión de Rocket.Chat para desplegar; Consulte la página de lanzamientos de Rocket.Chat para obtener las opciones disponibles |
rocket_chat_tarball_remote | Ver defaults/main.yml | La URL remota para obtener el cohete. Chat Tarball (usa rocket_chat_version ) |
rocket_chat_tarball_sha256sum | Ver defaults/main.yml | La suma hash de sha256 del cohete. |
rocket_chat_tarball_fetch_timeout | 100 | El tiempo (en segundos) antes del intento de buscar el cohete. Chat Tarball falla |
rocket_chat_tarball_validate_remote_cert | verdadero | Un valor booleano que determina si o no validar los certificaciones SSL para el cohete. |
rocket_chat_service_user | rocketchat | El nombre del usuario que ejecutará el proceso de servidor Rocket.Chat |
rocket_chat_service_group | rocketchat | El nombre del grupo primario para el usuario de rocket_chat_service_user |
rocket_chat_service_host | "{{ ansible_fqdn }}" | El fqdn del sistema cohete.chat |
rocket_chat_service_port | 3000 | El cohete de puerto TCP.Chat escucha |
rocket_chat_service_extra_instances | [] | Lista de números de puerto TCP para instancias adicionales de servicio Rocketchat para manejar más usuarios en una máquina |
rocket_chat_node_version | 4.5.0 | La versión de NodeJS para instalar que n entiende |
rocket_chat_node_prefix | /usr/local/n/versions/node/{{ rocket_chat_node_version }} | La ruta al directorio binario de node que n instala |
rocket_chat_npm_dist | /usr/bin/npm | La ruta al binario npm original, antes de que N instale cualquier versiones de nodo |
rocket_chat_include_mongodb | verdadero | Un valor booleano que determina si implementar o no MongoDB |
rocket_chat_mongodb_keyserver | keyserver.ubuntu.com | El servidor de clave GPG para usar al importar la tecla Repo MongoDB |
rocket_chat_mongodb_gpg_key | 7F0CEB10 | La huella digital de la tecla GPG para importar para el repositorio de MongoDB |
rocket_chat_mongodb_user | no se usa por defecto | Nombre de usuario que se utilizará al conectarse a MongoDB. Si establece esto, también debe definir rocket_chat_mongodb_password , de lo contrario no se usa ningún usuario/pase para conectarse a MongoDB |
rocket_chat_mongodb_password | no se usa por defecto | Contraseña que se utilizará al conectarse a MongoDB. Si establece esto, también debe definir rocket_chat_mongodb_user , de lo contrario, no se usa ningún usuario/pase para conectarse a MongoDB |
rocket_chat_mongodb_server | 127.0.0.1 | El IP/FQDN del host de MongoDB |
rocket_chat_mongodb_port | 27017 | El puerto TCP para contactar al host del host de MongoDB a través de |
rocket_chat_mongodb_database | rocketchat | La base de datos MongoDB que se utilizará para Rocket.Chat |
rocket_chat_mongodb_use_tls | FALSO | Si usar o no TLS para conectarse al MongoDB DB |
rocket_chat_mongodb_packages | mongodb | El nombre de los paquetes MongoDB para instalar (difiere para diferentes distribuciones - ver vars/ ) |
rocket_chat_mongodb_config_template | mongod.conf.j2 | La plantilla /etc/mongod.conf para implementar |
rocket_chat_mongodb_org_pkgs | falso | True (Debian/Ubuntu) | Use paquetes oficiales de MongoDB.org Community Edition o no |
rocket_chat_mongodb_org_version | 3.4 | Versión Cadena de paquetes oficiales para instalar |
rocket_chat_mongodb_service_name | mongod | El nombre de la unidad de servicio Systemd y el archivo de configuración de MongoDB en /etc. |
rocket_chat_include_nginx | verdadero | Un valor booleano que determina si implementar o no Nginx |
rocket_chat_ssl_generate_certs | verdadero | Un valor booleano que determina si generar o no los certs Nginx SSL |
rocket_chat_ssl_key_path | /etc/nginx/rocket_chat.key | La ruta de destino para la clave privada NGINX SSL |
rocket_chat_ssl_cert_path | /etc/nginx/rocket_chat.crt | La ruta de destino para el certificado NGINX SSL |
rocket_chat_ssl_deploy_data | FALSO | Un valor booleano que determina si implementa o no datos SSL personalizados (certificadores/archivos clave) |
rocket_chat_ssl_key_file | ~ | Si no se usa la generación de certificación SSL, esta es la ruta a la clave privada NGINX SSL en el nodo de control Ansible, para la implementación |
rocket_chat_ssl_cert_file | ~ | Si no se usa la generación de certificación SSL, esta es la ruta al certificado NGINX SSL en el nodo de control Ansible, para la implementación |
rocket_chat_nginx_enable_pfs | verdadero | Un valor booleano que determina si habilita o no PFS al implementar Nginx |
rocket_chat_nginx_generate_pfs_key | verdadero | Un valor booleano que determina si generar o no un archivo de clave PFS |
rocket_chat_nginx_pfs_key_numbits | 2048 | Números para pasar a OpenSSL al generar un archivo de claves PFS |
rocket_chat_nginx_pfs_key_path | /etc/nginx/rocket_chat.pem | La ruta de destino para el archivo de tecla NGINX PFS |
rocket_chat_nginx_pfs_file | ~ | Si no usa la generación de claves PFS, esta es la ruta a la tecla NGINX PFS en el nodo de control Ansible, para la implementación |
rocket_chat_nginx_listen_ssl_port | 443 | El puerto SSL en el que NGNIX escucha |
rocket_chat_nginx_listen_port | 80 | El puerto en el que Ngnix escucha |
Algunas variables difieren entre los sistemas operativos/distribuciones. Estos se establecen en el vars/ Directorio, típicamente en un archivo que lleva el nombre de la distribución.
Establecer en vars/RedHat.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_dep_packages | - Git | Una lista de dependencias de cohete. |
| - Graphicsmagick | ||
| - NodeJs | ||
| - NPM | ||
| - hacer | ||
rocket_chat_mongodb_packages | - MongoDB | Una lista de paquetes de servidor MongoDB para instalar |
| - MongoDB-server | ||
rocket_chat_mongodb_repl_lines | 'replSet=001-rs' | El valor para el conjunto de réplica de MongoDB |
rocket_chat_mongodb_fork | true | Un valor booleano que establece si bifurca o no el proceso del servidor MongoDB |
rocket_chat_mongodb_pidfile_path | /var/run/mongodb/mongodb.pid | La ruta al File PID para el proceso de servidor MongoDB |
rocket_chat_mongodb_logpath | /var/log/mongodb/mongod.log | La ruta del archivo de registro para el servidor MongoDB |
rocket_chat_mongodb_unixsocketprefix | /var/run/mongodb | La ruta para el prefijo de socket de MongoDB Unix |
rocket_chat_mongodb_dbpath | /var/lib/mongodb | La ruta para MongoDB para almacenar sus bases de datos |
rocket_chat_nginx_process_user | nginx | El usuario para eso se utilizará para generar el proceso del servidor NGINX |
Establecer en vars/RedHat_7.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_service_update_command | systemctl daemon-reload ; systemctl restart rocketchat | El comando para usar para informar el sistema de gestión de servicios cuando un manifiesto de servicio ha cambiado |
rocket_chat_service_template | ||
src | rocketchat.service.j2 | La plantilla de origen para implementar el cohete. Manifiesto del servicio chat |
dest | /usr/lib/systemd/system/rocketchat.service | El destino para implementar el servicio de servicio. |
rocket_chat_tarball_validate_remote_cert | FALSO | Un valor booleano que determina si o no validar los certificaciones SSL para el cohete. |
Establecido en vars/Debian.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_dep_packages | - Git | Una lista de dependencias de cohete. |
| - Graphicsmagick | ||
| - NodeJs | ||
| - NPM | ||
| - hacer | ||
rocket_chat_mongodb_packages | - MongoDB-server | Una lista de paquetes de servidor MongoDB para instalar |
| - MongoDB-Shell | ||
rocket_chat_mongodb_repl_lines | replication: | El valor para el conjunto de réplica de MongoDB |
replSetName: "001-rs" | ||
rocket_chat_nginx_process_user | www-data | El usuario para eso se utilizará para generar el proceso del servidor NGINX |
Establecer en vars/Debian_8.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_service_update_command | systemctl daemon-reload ; systemctl restart rocketchat | El comando para usar para informar el sistema de gestión de servicios cuando un manifiesto de servicio ha cambiado |
rocket_chat_service_template | ||
src | rocketchat.service.j2 | La plantilla de origen para implementar el cohete. Manifiesto del servicio chat |
dest | /etc/systemd/system/rocketchat.service | El destino para implementar el servicio de servicio. |
rocket_chat_mongodb_apt_repo | deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main | El repositorio de apt para MongoDB |
Establecer en vars/Ubuntu.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_dep_packages | - Git | Una lista de dependencias de cohete. |
| - Graphicsmagick | ||
| - NodeJs | ||
| - NPM | ||
| - hacer | ||
rocket_chat_mongodb_packages | - MongoDB-server | Una lista de paquetes de servidor MongoDB para instalar |
| - MongoDB-Shell | ||
rocket_chat_mongodb_repl_lines | replication: | El valor para el conjunto de réplica de MongoDB |
replSetName: "001-rs" | ||
rocket_chat_nginx_process_user | www-data | El usuario para eso se utilizará para generar el proceso del servidor NGINX |
Establecer en vars/Ubuntu_15.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_service_update_command | systemctl daemon-reload ; systemctl restart rocketchat | El comando para usar para informar el sistema de gestión de servicios cuando un manifiesto de servicio ha cambiado |
rocket_chat_service_template | ||
src | rocketchat.service.j2 | La plantilla de origen para implementar el cohete. Manifiesto del servicio chat |
dest | /etc/systemd/system/rocketchat.service | El destino para implementar el servicio de servicio. |
rocket_chat_mongodb_apt_repo | deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main | El repositorio de apt para MongoDB |
Establecer en vars/Ubuntu_14.yml
| Nombre | Valor predeterminado | Descripción |
|---|---|---|
rocket_chat_service_update_command | initctl reload-configuration ; service rocketchat restart | El comando para usar para informar el sistema de gestión de servicios cuando un manifiesto de servicio ha cambiado |
rocket_chat_service_template | ||
src | rocketchat_upstart.j2 | La plantilla de origen para implementar el cohete. Manifiesto del servicio chat |
dest | /etc/init/rocketchat.conf | El destino para implementar el servicio de servicio. |
rocket_chat_mongodb_apt_repo | deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse | El repositorio de apt para MongoDB |
rocket_chat_tarball_validate_remote_cert | FALSO | Un valor booleano que determina si o no validar los certificaciones SSL para el cohete. |
Este rol está disponible para descargar desde Ansible Galaxy. Para instalar este rol y rastrearlo en su base de código Ansible, use algo similar a lo siguiente en sus requirements.yml :
- src : RocketChat.Server
version : v1.9.0
path : roles/external/
Nota: debe especificar version como v1.9.0 si todavía está usando Ansible 1.9.4
Con el lanzamiento de Ansible 2.0, este rol es oficialmente compatible con algunas mejoras de rendimiento y características adicionales (actualizaciones automáticas, por ejemplo). Para usar la versión Ansible 2.0 de este rol, puede instalarla utilizando la herramienta de línea de comandos ansible-galaxy utilizando un requirements.yml (ambos mencionados anteriormente) para especificar la versión que desea usar.
Aquí hay un archivo de ejemplo requirements.yml para instalar a través de ansible-galaxy obtendrá el código ANSible 2.0:
- src : RocketChat.Server
path : roles/external master ha sido rebajado en V2.0 y ahora es el código más actual del rol. Si desea lo último, simplemente no incluya ninguna versión y ansible-galaxy extraerá la última etiqueta, o puede incluir version: master para estar siempre actual. Un libro de jugadas simple para ejecutar este papel en todos los sistemas chat_servers :
- hosts : chat_servers
roles :
- RocketChat.Server Un libro de jugadas para implementar Rocket.Chat a chat_servers , pero excluye la implementación de MongoDB y usa una instancia externa. También permita actualizaciones automáticas de Rocket.Chat (Ansible 2.0 requerido para rocket_chat_automatic_upgrades ! Vea la instalación desde la sección de Galaxy Ansible)::
- 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 [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."}
En este momento, el mantenimiento de esta variable es un proceso manual. Mientras tanto, simplemente puede establecer el valor de esta variable usted mismo; a través de host_vars , group_vars , vars en su libro de jugadas o con -e al ejecutar ansible-playbook , etc.
Para ejecutar un conjunto específico de reproducciones, con la bandera --tags , las etiquetas disponibles son:
varsbuildmongodbreponginxupgradeservice Este rol implementará un servicio llamado rocketchat . Puede usar su sistema de gestión de servicios nativos para iniciar/detener/recargar/reiniciar el servicio.
Para probar este papel, encontrará un libro de jugadas Vagrantfile y provision.yml en las tests/ directorio. Esto es, como habrá adivinado, para ejecutar implementaciones de pruebas a través de Vagrant.
Si desea probar algunos cambios, o simplemente vea cómo funciona el rol/ provisión un pequeño Rocket.Chat Server localmente, puede cd en tests/ y ejecutar vagrant up (siempre que tenga instalado VaRant & Virtualbox).
Si echa un vistazo a Vagrantfile , verá que hay una implementación para cada plataforma compatible actualmente, simplemente comente cualquiera que no desee implementar (¡no olvide su configuración Ansible en la parte inferior!). Una vez que se termina la implementación, si desea probar Rocket.Chat Out, puede visitar http://localhost:4000 en su navegador (el puerto 4000 varía aquí, en función de qué plataforma está implementando, consulte el valor forwarded_port de su plataforma).
MIT
Siéntase libre de: plantear un problema contribuye