Ansible과 함께 최고의 오픈 소스 웹 채팅 플랫폼 인 Rocket.chat을 배포하십시오!
master v2.0 ansible-galaxy version: masterv1.9 사용자는 태그 v1.9 및 v1.9.0 을 계속 사용할 수 있으며 ansible_1.9 지점은 여전히 남아 있지만 백 포트는 거의 없습니다. 옵션 풀 스택 배포 : MongoDB 및 Nginx Reverse SSL 프록시를 포함한 Rocket.Chat을 완전히 배포합니다. 또는 Rocket.chat을 배포하고 기존 MongoDB 및/또는 Nginx 인스턴스/배포 방법과 통합하십시오.
선택적 자동 SSL CERT 생성 : NGINX 리버스 프록시를 통해 HTTPS 연결을위한 SSL CERT를 자동으로 생성합니다. 또는 자신의 SSL CERT를 배치하십시오!
선택적 자동 업그레이드 [Ansible 2.0 필요] : 새 버전의 Rocket.chat이 릴리스되거나 테스트 목적으로 개발을 따르고 싶다면 rocket_chat_version 배포하려는 릴리스로 업데이트하십시오 (Rocket.chat 릴리스 페이지 참조, Rocket_Chat 릴리스 페이지 true , rocket_chat_automatic_upgrades 설정하고 REST를 설정하는 경우, REST를 작성하십시오. (예 : '최신'또는 '개발'을 따르는 rocket_chat_version 에 대한 원격 변경으로 인해,이 역할은 rocket_chat_version 서비스의 업그레이드 및 재개를 처리 할 것입니다.
배포/운영 체제가 지원되는 것을보고 싶다면 문제를 제기하십시오!
문제를 제기하기 전에 FAQ와 모든 문서를 읽으십시오.
모든 변수에는 defaults/main.yml 로 설정된 기본값이 설정되어 있습니다
| 이름 | 기본값 | 설명 |
|---|---|---|
rocket_chat_automatic_upgrades | 거짓 | 로켓을 업그레이드할지 여부를 결정하는 부울 값. |
rocket_chat_upgrade_backup | 진실 | 현재 로켓을 백업 할 것인지 아닌지를 결정하는 부울 값 업그레이드시 버전. |
rocket_chat_upgrade_backup_path | "{{ rocket_chat_application_path }}" | rocket_chat_upgrade_backup 의 백업을 저장하는 경로 true |
rocket_chat_application_path | /var/lib/rocket.chat | 파일 시스템의 대상으로 Rocket.chat을 배포합니다 |
rocket_chat_version | latest | Rocket.chat 배포 버전; 사용 가능한 옵션은 Rocket.Chat 릴리스 페이지를 참조하십시오 |
rocket_chat_tarball_remote | defaults/main.yml 참조하십시오 | 로켓을 가져 오는 원격 URL rocket_chat_version |
rocket_chat_tarball_sha256sum | defaults/main.yml 참조하십시오 | SHA256 로켓의 해시 합계. |
rocket_chat_tarball_fetch_timeout | 100 | 로켓을 가져 오려는 시도 전 시간 (초). Chat Tarball 실패 |
rocket_chat_tarball_validate_remote_cert | 진실 | 로켓의 SSL CERT를 검증하거나 검증하지 않는 부울 가치. 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_service_port | 3000 | TCP 포트 로켓 |
rocket_chat_service_extra_instances | [] | 추가 Rocketchat 서비스 인스턴스에 대한 TCP 포트 번호 목록 하나의 컴퓨터에서 더 많은 사용자를 처리합니다. |
rocket_chat_node_version | 4.5.0 | Nodejs의 버전을 설치하는 n 버전은 이해합니다 |
rocket_chat_node_prefix | /usr/local/n/versions/node/{{ rocket_chat_node_version }} | n이 설치하는 node 바이너리 디렉토리의 경로 |
rocket_chat_npm_dist | /usr/bin/npm | N 노드 버전을 설치하기 전에 원래 npm 바이너리로가는 경로 |
rocket_chat_include_mongodb | 진실 | MongoDB 배포 여부를 결정하는 부울 가치 |
rocket_chat_mongodb_keyserver | Keyserver.ubuntu.com | MongoDB Repo 키를 가져올 때 사용할 GPG 키 서버 |
rocket_chat_mongodb_gpg_key | 7F0CEB10 | MongoDB Repo를 위해 가져올 GPG 키 지문 인쇄 |
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 포트는 MongoDB 호스트를 통해 |
rocket_chat_mongodb_database | 로케치 | Rocket.chat에 사용되는 MongoDB 데이터베이스 |
rocket_chat_mongodb_use_tls | 거짓 | mongodb db에 연결하기 위해 TLS를 사용할지 여부 |
rocket_chat_mongodb_packages | mongodb | MongoDB 패키지의 이름을 설치할 수 있습니다 (배포판에 따라 다릅니다 - vars/ 참조) |
rocket_chat_mongodb_config_template | mongod.conf.j2 | 배포 할 /etc/mongod.conf 템플릿입니다 |
rocket_chat_mongodb_org_pkgs | 거짓 | True (Debian/Ubuntu) | 공식 mongodb.org Community Edition 패키지를 사용하십시오 |
rocket_chat_mongodb_org_version | 3.4 | 설치할 공식 패키지의 버전 문자열 |
rocket_chat_mongodb_service_name | mongod | /etc의 Systemd 서비스 장치 및 mongoDB 구성 파일의 이름 |
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 데이터를 배포할지 여부를 결정하는 부울 값 (Cert/Key Files) |
rocket_chat_ssl_key_file | ~ | SSL CERT 생성을 사용하지 않으면 배포를 위해 Ansible Control 노드의 Nginx SSL 개인 키로가는 경로입니다. |
rocket_chat_ssl_cert_file | ~ | SSL Cert 생성을 사용하지 않는 경우 배포를위한 Ansible Control 노드의 Nginx SSL Cert의 경로입니다. |
rocket_chat_nginx_enable_pfs | 진실 | nginx를 배포 할 때 PFS를 활성화할지 여부를 결정하는 부울 값 |
rocket_chat_nginx_generate_pfs_key | 진실 | PFS 키 파일 생성 여부를 결정하는 부울 값 |
rocket_chat_nginx_pfs_key_numbits | 2048 | PFS 키 파일을 생성 할 때 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/ Directory, 일반적으로 배포의 이름을 따서 명명 된 파일로 설정됩니다.
vars/RedHat.yml 로 설정하십시오
| 이름 | 기본값 | 설명 |
|---|---|---|
rocket_chat_dep_packages | - git | 로켓 목록 |
| -PHAPPICSMAGICK | ||
| - 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 유닉스 소켓 접두사의 경로 |
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 | Rocket.Chat Service Manifest에 배포 할 소스 템플릿 |
dest | /usr/lib/systemd/system/rocketchat.service | Rocket.chat 서비스를 배치하는 목적지 |
rocket_chat_tarball_validate_remote_cert | 거짓 | 로켓의 SSL CERT를 검증하거나 검증하지 않는 부울 가치. Chat Tarball Remote |
vars/Debian.yml 로 설정하십시오
| 이름 | 기본값 | 설명 |
|---|---|---|
rocket_chat_dep_packages | - git | 로켓 목록 |
| -PHAPPICSMAGICK | ||
| - 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 | Rocket.Chat Service Manifest에 배포 할 소스 템플릿 |
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 | MongoDB의 적절한 저장소 |
vars/Ubuntu.yml 로 설정하십시오
| 이름 | 기본값 | 설명 |
|---|---|---|
rocket_chat_dep_packages | - git | 로켓 목록 |
| -PHAPPICSMAGICK | ||
| - 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 | Rocket.Chat Service Manifest에 배포 할 소스 템플릿 |
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 | MongoDB의 적절한 저장소 |
vars/Ubuntu_14.yml 로 설정하십시오
| 이름 | 기본값 | 설명 |
|---|---|---|
rocket_chat_service_update_command | initctl reload-configuration ; service rocketchat restart | 서비스 매니페스트가 변경되었을 때 서비스 관리 시스템에 알리는 데 사용하는 명령 |
rocket_chat_service_template | ||
src | rocketchat_upstart.j2 | Rocket.Chat Service Manifest에 배포 할 소스 템플릿 |
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 | MongoDB의 적절한 저장소 |
rocket_chat_tarball_validate_remote_cert | 거짓 | 로켓의 SSL CERT를 검증하거나 검증하지 않는 부울 가치. Chat Tarball Remote |
이 역할은 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 버전을 사용하려면 requirements.yml 사용하여 ansible-galaxy 명령 줄 도구를 사용하여 설치하여 사용하려는 버전을 지정할 수 있습니다.
ansible-galaxy 를 통해 설치할 예제 requirements.yml 파일은 Ansible 2.0 코드를 가져옵니다.
- src : RocketChat.Server
path : roles/external master v2.0에서 재생되었으며 현재 가장 최신 코드입니다. 최신 버전을 전혀 포함시키지 말고 ansible-galaxy 최신 태그를 가져 오거나 version: master 항상 최신 버전을 포함 할 수 있습니다. 모든 chat_servers 시스템 에서이 역할을 수행하는 간단한 플레이 북 :
- hosts : chat_servers
roles :
- RocketChat.Server Rocket.chat에 chat_servers 에 배포하는 플레이 북. MongoDB의 배포를 제외하고 외부 인스턴스를 사용하십시오. 또한 Rocket.chat의 자동 업그레이드를 허용합니다 ( rocket_chat_automatic_upgrades 에 필요한 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 작업 배포가 다음과 비슷한 메시지로 배포가 실패하면 역할이 최신 로켓의 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/ Directory에서 Vagrantfile 및 provision.yml Playbook을 찾을 수 있습니다. 이것은 당신이 추측 한 바와 같이, Vagrant를 통해 테스트 배포를 실행하는 것입니다.
몇 가지 변경 사항을 테스트하거나 역할/ 프로비저를 작은 재생 로켓을 제공하는 방법을 확인하려면 tests/ 로 서버를 현지에서 cd 로 vagrant up 로 실행할 수 있습니다 (Vagrant & VirtualBox가 설치된 경우).
Vagrantfile 을 살펴보면 현재 지원되는 각 플랫폼에 대한 배포가 있음을 알 수 있습니다. 배포하고 싶지 않은 모든 플랫폼을 간단히 설명하시기 바랍니다 (하단의 ansible 구성을 잊지 마십시오!). 배포가 완료되면 Rocket.Chat을 사용해 보려면 브라우저에서 http://localhost:4000 방문 할 수 있습니다 (포트 4000 forwarded_port .
MIT
자유롭게 : 문제를 제기하십시오