From 603928ba63747c26828d1d5bd1b9d39834d4a63e Mon Sep 17 00:00:00 2001 From: owine Date: Tue, 12 Mar 2024 13:53:26 -0500 Subject: [PATCH] RocketChat: Initialize with js --- roles/rocketchat/tasks/main.yml | 45 +++++++++++------------- roles/rocketchat/templates/init-mongo.js | 9 +++++ 2 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 roles/rocketchat/templates/init-mongo.js diff --git a/roles/rocketchat/tasks/main.yml b/roles/rocketchat/tasks/main.yml index f60c9c656b..4b2de6ae7e 100644 --- a/roles/rocketchat/tasks/main.yml +++ b/roles/rocketchat/tasks/main.yml @@ -7,14 +7,6 @@ # GNU General Public License v3.0 # ######################################################################### --- -- name: MongoDB Role - ansible.builtin.include_role: - name: mongodb - vars: - mongodb_instances: ["rocketchat_db"] - mongodb_docker_image_tag: "6" - mongodb_docker_commands: ["mongod --oplogSize 128 --replSet rs0"] - - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars: @@ -22,9 +14,6 @@ dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" -- name: Remove existing Docker container - ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - - name: Create directories ansible.builtin.file: path: "{{ item }}" @@ -34,20 +23,26 @@ mode: "0775" with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}" -# this container's job is just to run the command to initialize the replica set. -# it will run the command and will later be removed automatically -- name: Initialize MongoDB Replica Set - community.docker.docker_container: - name: "rocketchat-mongo-init-replica" - image: "mongo:6" - command: 'bash -c "for i in `seq 1 30`; do mongosh rocketchat_db/rocketchat --eval \"rs.initiate({ _id: ''rs0'', members: [ { _id: 0, host: ''localhost:27017'' } ]})\" && s=$$? && break || s=$$?; echo \"Tried $$i times. Waiting 5 secs...\"; sleep 5; done; (exit $$s)"' - networks: - - name: saltbox - comparisons: - '*': ignore - auto_remove: yes - state: started - pull: true +- name: "RocketChat | Import init-mongo.js" + ansible.builtin.template: + src: init-mongo.js + dest: '{{ rocketchat_paths_location }}/init-mongo.js' + owner: "{{ user.name }}" + group: "{{ user.name }}" + mode: "0775" + force: yes + +- name: MongoDB Role + ansible.builtin.include_role: + name: mongodb + vars: + mongodb_instances: ["rocketchat_db"] + mongodb_docker_image_tag: "6" + mongodb_docker_commands: ["mongod --oplogSize 128 --replSet rs0"] + mongodb_docker_volumes_custom: ["{{ rocketchat_paths_location }}/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro"] + +- name: Remove existing Docker container + ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" diff --git a/roles/rocketchat/templates/init-mongo.js b/roles/rocketchat/templates/init-mongo.js new file mode 100644 index 0000000000..2e3682ed64 --- /dev/null +++ b/roles/rocketchat/templates/init-mongo.js @@ -0,0 +1,9 @@ +rs.initiate( + { + _id: "rs0", + version: 1, + members: [ + { _id: 0, host : "localhost:27017" } + ] + } +) \ No newline at end of file