DEPENT ROCKET.CHAT แพลตฟอร์มการแชทเว็บโอเพ่นซอร์สสุดยอดพร้อม Ansible!
master ได้รับการ rebased ใน v2.0 และตอนนี้เป็นรหัสล่าสุดของบทบาท (แทนที่จะเป็นรุ่นที่เข้ากันได้ 1.9) หากคุณต้องการรหัสล่าสุดเพียงแค่ไม่รวมเวอร์ชันใด ๆ เลยและ ansible-galaxy จะดึงแท็กล่าสุดหรือคุณสามารถรวม version: masterv1.9 ผู้ใช้สามารถใช้แท็ก v1.9 และ v1.9.0 ต่อไปและสาขา ansible_1.9 ยังคงอยู่แม้ว่าจะมีการทำ backports เล็กน้อย การปรับใช้สแต็กแบบเต็ม: ปรับใช้ Rocket.Chat อย่างสมบูรณ์รวมถึง MongoDB & Nginx Reverse SSL Proxy หรือปรับใช้ Rocket.Chat และรวมเข้ากับ MongoDB และ/หรือ NGINX ที่มีอยู่ของคุณวิธีการ/วิธีการปรับใช้
การสร้างใบรับรอง SSL อัตโนมัติเสริม: สร้างใบรับรอง SSL โดยอัตโนมัติสำหรับการเชื่อมต่อ HTTPS ผ่านพร็อกซี Nginx Reverse หรือปรับใช้ใบรับรอง SSL ของคุณเอง!
การอัพเกรดอัตโนมัติที่เป็นตัวเลือก [ต้องใช้ Ansible 2.0]: หากมีการปล่อย rocket.chat เวอร์ชันใหม่หรือหากคุณต้องการติดตามการพัฒนาเพื่อการทดสอบเพียงแค่ true เดต rocket_chat_version ไม่ว่าคุณจะปล่อยให้ rocket_chat_automatic_upgrades ปรับใช้ เซิร์ฟเวอร์ (เนื่องจากการเปลี่ยนแปลงระยะไกลไปยัง rocket_chat_version คุณกำลังติดตาม 'ล่าสุด' หรือ 'พัฒนา' หรือเพราะคุณตั้งค่า rocket_chat_version ใหม่เพื่อดึงข้อมูล) บทบาทนี้จะจัดการกับ การอัพเกรด และการใช้งานใหม่
หากคุณต้องการดูระบบการกระจาย/การดำเนินงานของคุณโปรดเพิ่มปัญหา!
โปรดตรวจสอบให้แน่ใจว่าคุณได้อ่านคำถามที่พบบ่อยและเอกสารทั้งหมดก่อนที่จะมีปัญหา
ตัวแปรทั้งหมดมีค่าเริ่มต้นที่มีสติใน 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 releases สำหรับตัวเลือกที่มีอยู่ |
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 ถูกดึง |
rocket_chat_tarball_fetch_timeout | 100 | เวลา (ในไม่กี่วินาที) ก่อนความพยายามที่จะดึงจรวด Chat Tarball ล้มเหลว |
rocket_chat_tarball_validate_remote_cert | จริง | ค่าบูลีนที่กำหนดหรือไม่เพื่อตรวจสอบใบรับรอง SSL สำหรับ rocket.chat tarball รีโมท |
rocket_chat_service_user | rocketchat | ชื่อของผู้ใช้ที่จะเรียกใช้กระบวนการ Rocket.Chat Server |
rocket_chat_service_group | rocketchat | ชื่อของกลุ่มหลักสำหรับผู้ใช้ rocket_chat_service_user |
rocket_chat_service_host | "{{ ansible_fqdn }}" | fqdn ของระบบ rocket.chat |
rocket_chat_service_port | 3,000 | 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 ที่ติดตั้ง |
rocket_chat_npm_dist | /usr/bin/npm | เส้นทางไปยังไบนารี npm ดั้งเดิมก่อนที่ N จะติดตั้งโหนดเวอร์ชันใด ๆ |
rocket_chat_include_mongodb | จริง | ค่าบูลีนที่กำหนดว่าจะปรับใช้ mongoDB หรือไม่ |
rocket_chat_mongodb_keyserver | keyserver.ubuntu.com | เซิร์ฟเวอร์คีย์ GPG ที่จะใช้เมื่อนำเข้าคีย์ repo mongoDB |
rocket_chat_mongodb_gpg_key | 7F0CEB10 | ลายนิ้วมือคีย์ GPG ที่จะนำเข้าสำหรับ repo 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 | IP/FQDN ของโฮสต์ MongoDB |
rocket_chat_mongodb_port | 27017 | พอร์ต TCP เพื่อติดต่อโฮสต์โฮสต์ MongoDB ผ่าน |
rocket_chat_mongodb_database | Rocketchat | ฐานข้อมูล mongoDB ที่จะใช้สำหรับ rocket.chat |
rocket_chat_mongodb_use_tls | เท็จ | ไม่ว่าจะใช้ TLS เพื่อเชื่อมต่อกับ MongoDB DB หรือไม่ |
rocket_chat_mongodb_packages | mongodb | ชื่อของแพ็คเกจ MongoDB ที่จะติดตั้ง (แตกต่างกันสำหรับ distros ที่แตกต่างกัน - ดู vars/ ) |
rocket_chat_mongodb_config_template | mongod.conf.j2 | เทมเพลต /etc/mongod.conf เพื่อปรับใช้ |
rocket_chat_mongodb_org_pkgs | เท็จ | True (Debian/Ubuntu) | ใช้แพ็คเกจฉบับชุมชน mongoDb.org อย่างเป็นทางการหรือไม่ |
rocket_chat_mongodb_org_version | 3.4 | สตริงเวอร์ชันของแพ็คเกจอย่างเป็นทางการในการติดตั้ง |
rocket_chat_mongodb_service_name | mongod | ชื่อของหน่วยบริการ SystemD และไฟล์กำหนดค่า MongoDB ใน /etc |
rocket_chat_include_nginx | จริง | ค่าบูลีนที่กำหนดว่าจะปรับใช้ 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 ที่กำหนดเองหรือไม่ (ใบรับรอง/ไฟล์คีย์) |
rocket_chat_ssl_key_file | ~ | หากไม่ได้ใช้การสร้างใบรับรอง SSL นี่คือเส้นทางไปยังคีย์ส่วนตัว Nginx SSL บนโหนดการควบคุม Ansible สำหรับการปรับใช้ |
rocket_chat_ssl_cert_file | ~ | หากไม่ได้ใช้การสร้างใบรับรอง SSL นี่คือเส้นทางไปยัง NGINX SSL Cert บนโหนดการควบคุม 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-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 | พา ธ ไปยัง pidfile สำหรับกระบวนการเซิร์ฟเวอร์ MongoDB |
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 | เทมเพลตแหล่งที่มาเพื่อปรับใช้สำหรับ Manifest บริการ Rocket.Chat |
dest | /usr/lib/systemd/system/rocketchat.service | ปลายทางในการปรับใช้บริการ rocket.chat |
rocket_chat_tarball_validate_remote_cert | เท็จ | ค่าบูลีนที่กำหนดหรือไม่เพื่อตรวจสอบใบรับรอง SSL สำหรับ rocket.chat tarball รีโมท |
ตั้งค่าใน 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 | เทมเพลตแหล่งที่มาเพื่อปรับใช้สำหรับ Manifest บริการ 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 | ที่เก็บ apt สำหรับ mongoDB |
ตั้งค่าใน 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 | เทมเพลตแหล่งที่มาเพื่อปรับใช้สำหรับ Manifest บริการ 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 | ที่เก็บ 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 บริการ 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 | ที่เก็บ apt สำหรับ mongoDB |
rocket_chat_tarball_validate_remote_cert | เท็จ | ค่าบูลีนที่กำหนดหรือไม่เพื่อตรวจสอบใบรับรอง SSL สำหรับ rocket.chat tarball รีโมท |
บทบาทนี้มีให้ดาวน์โหลดจาก 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 (ทั้งสองดังกล่าวข้างต้น) เพื่อระบุเวอร์ชันที่คุณต้องการใช้
นี่คือตัวอย่าง requirements.yml ไฟล์. yml ที่จะติดตั้งผ่าน ansible-galaxy จะดึงรหัส Ansible 2.0:
- src : RocketChat.Server
path : roles/external master ได้รับการ rebased ใน v2.0 และตอนนี้เป็นรหัสปัจจุบันที่สุดของบทบาท หากคุณต้องการล่าสุดไม่ได้รวมเวอร์ชันใด ๆ เลยและ ansible-galaxy จะดึงแท็กล่าสุดหรือคุณสามารถรวม version: master ให้เป็นปัจจุบันเสมอ playbook ง่าย ๆ ในการเรียกใช้บทบาทนี้ในระบบ chat_servers ทั้งหมด:
- hosts : chat_servers
roles :
- RocketChat.Server playbook เพื่อปรับใช้ rocket.chat to chat_servers แต่ไม่รวมการปรับใช้ MongoDB และใช้อินสแตนซ์ภายนอก ยังอนุญาตให้มีการอัพเกรด Rocket.Chat โดยอัตโนมัติ (ANSIBLE 2.0 ที่จำเป็นสำหรับ rocket_chat_automatic_upgrades ! ดูการติดตั้งจาก Galaxy Secion 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."}
ตอนนี้การบำรุงรักษาตัวแปรนี้เป็นกระบวนการด้วยตนเอง ในระหว่างนี้คุณสามารถตั้งค่าค่าตัวแปรนี้ด้วยตัวคุณเอง ผ่าน host_vars , group_vars , vars ใน playbook ของคุณหรือกับ -e เมื่อเรียกใช้ ansible-playbook ฯลฯ
ในการเรียกใช้ชุดการเล่นเฉพาะด้วย --tags แท็กธงแท็กที่มีอยู่คือ:
varsbuildmongodbreponginxupgradeservice บทบาทนี้จะปรับใช้บริการชื่อ rocketchat คุณสามารถใช้ระบบการจัดการบริการดั้งเดิมของคุณเพื่อเริ่ม/หยุด/โหลด/รีสตาร์ทบริการ
ในการทดสอบบทบาทนี้คุณจะพบกับ playbook Vagrantfile และ provision.yml ใน tests/ ไดเรกทอรี นี่คืออย่างที่คุณอาจเดาได้ว่าจะใช้การปรับใช้การทดสอบผ่าน Vagrant
หากคุณต้องการทดสอบการเปลี่ยนแปลงบางอย่างหรือเพียงแค่ดูว่าบทบาททำงาน/ จัดเตรียมได้อย่างไรกับการเล่นเล็กน้อยเซิร์ฟเวอร์ CHAT ในเครื่องคุณสามารถ cd ใน tests/ และเรียกใช้ vagrant up (หากคุณติดตั้ง Vagrant & VirtualBox)
หากคุณดูที่ Vagrantfile คุณจะเห็นว่ามีการปรับใช้สำหรับแต่ละแพลตฟอร์มที่รองรับในปัจจุบัน - เพียงแสดงความคิดเห็นใด ๆ ที่คุณไม่ต้องการปรับใช้ (อย่าลืมการกำหนดค่าที่น่าเชื่อถือของพวกเขาที่ด้านล่าง!) เมื่อการปรับใช้เสร็จสิ้นหากคุณต้องการลอง Rocket.chat Out คุณสามารถเยี่ยมชม http://localhost:4000 ในเบราว์เซอร์ของคุณ (พอร์ต 4000 แตกต่างกันไปที่นี่ตามแพลตฟอร์มที่คุณกำลังปรับ forwarded_port
มิกซ์
อย่าลังเลที่จะ: ยกประเด็นมีส่วนร่วม