diff --git a/deployment/roles/mongo_init/tasks/execute_script.yml b/deployment/roles/mongo_init/tasks/execute_script.yml deleted file mode 100644 index e21930a489748ecc570de8abe3fea463e22e4b8f..0000000000000000000000000000000000000000 --- a/deployment/roles/mongo_init/tasks/execute_script.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- - -- fail: msg="Variable '{{ mongo_file }}' is not defined" - when: mongo_file is undefined - -- name: - debug: - msg: ">>>> Execution of the file {{ mongo_file.finalname }}<<<<" - -- name: Check if the script exists - stat: - path: "{{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" - register: stat_result - -- block: - - fail: msg="The file '{{ mongo_file.finalname }}' is not exist" - when: not stat_result.stat.exists - - - name: Get script content. - shell: "cat {{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" - register: script_content - - - name: Compute versionned script files - template: - src: "versioned_script.js.j2" - dest: "{{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" - owner: "{{ vitamui_defaults.users.vitamuidb }}" - group: "{{ vitamui_defaults.users.group }}" - mode: 0755 - - when: mongodb.versioning is defined and mongodb.versioning.enable - -- name: Load script in database - shell: "mongo \"mongodb://{{ mongod_uri }}/admin\" {{ mongo_credentials }} {{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" - no_log: "{{ hide_passwords_during_deploy }}" - when: mongodb.docker is not defined or not mongodb.docker.enable - -- name: Load script in database (docker) - command: "docker exec --tty {{ mongodb.docker.image_name }} /bin/bash -c \"mongo \\\"mongodb://{{ mongod_uri }}/admin\\\" {{ mongo_credentials }} {{ mongodb.docker.internal_dir}}/app/mongod/{{ mongo_file.finalname }}\"" - no_log: "{{ hide_passwords_during_deploy }}" - when: mongodb.docker is defined and mongodb.docker.enable diff --git a/deployment/roles/mongo_init/tasks/main.yml b/deployment/roles/mongo_init/tasks/main.yml index fb02030c8a50bc6c60fb4d58832cea813e9efdad..ab8ea65add6716423687aaf9dcdec8ed0f1daa1c 100644 --- a/deployment/roles/mongo_init/tasks/main.yml +++ b/deployment/roles/mongo_init/tasks/main.yml @@ -78,8 +78,33 @@ mode: 0755 loop: "{{ mongod_eligible_files | unique }}" -- name: "Execute file" - include_tasks: "execute_script.yml" +- name: "Prepare file" + include_tasks: "prepare_script.yml" + when: mongodb.versioning is defined and mongodb.versioning.enable loop: "{{ mongod_eligible_files | unique }}" loop_control: loop_var: mongo_file + +- name: Compute main script file + template: + src: "main_script.js.j2" + dest: "{{ mongod_output_dir_entry_point }}/main_script.js" + owner: "{{ vitamui_defaults.users.vitamuidb }}" + group: "{{ vitamui_defaults.users.group }}" + mode: 0755 + +- name: Load script in database + shell: "mongo \"mongodb://{{ mongod_uri }}/admin\" {{ mongo_credentials }} {{ mongod_output_dir_entry_point }}/main_script.js" + no_log: "{{ hide_passwords_during_deploy }}" + when: mongodb.docker is not defined or not mongodb.docker.enable + +- name: Load script in database (docker) + command: "docker exec --tty {{ mongodb.docker.image_name }} /bin/bash -c \"mongo \\\"mongodb://{{ mongod_uri }}/admin\\\" {{ mongo_credentials }} {{ mongodb.docker.internal_dir}}/app/mongod/main_script.js \"" + no_log: "{{ hide_passwords_during_deploy }}" + when: mongodb.docker is defined and mongodb.docker.enable + +# - name: "Execute file" +# include_tasks: "execute_script.yml" +# loop: "{{ mongod_eligible_files | unique }}" +# loop_control: +# loop_var: mongo_file \ No newline at end of file diff --git a/deployment/roles/mongo_init/tasks/prepare_script.yml b/deployment/roles/mongo_init/tasks/prepare_script.yml new file mode 100644 index 0000000000000000000000000000000000000000..c37870479068bc85306d262dc9a0c37bcf9dafd8 --- /dev/null +++ b/deployment/roles/mongo_init/tasks/prepare_script.yml @@ -0,0 +1,29 @@ +--- + +- fail: msg="Variable '{{ mongo_file }}' is not defined" + when: mongo_file is undefined + +- name: + debug: + msg: ">>>> Execution of the file {{ mongo_file.finalname }}<<<<" + +- name: Check if the script exists + stat: + path: "{{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" + register: stat_result + +- fail: msg="The file '{{ mongo_file.finalname }}' is not exist" + when: not stat_result.stat.exists + +- name: Get script content. + shell: "cat {{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" + register: script_content + +- name: Compute versionned script files + template: + src: "versioned_script.js.j2" + dest: "{{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" + owner: "{{ vitamui_defaults.users.vitamuidb }}" + group: "{{ vitamui_defaults.users.group }}" + mode: 0755 + diff --git a/deployment/roles/mongo_init/templates/main_script.js.j2 b/deployment/roles/mongo_init/templates/main_script.js.j2 new file mode 100644 index 0000000000000000000000000000000000000000..11983d1622a532ba2dd5e19fc20fb960e3610c59 --- /dev/null +++ b/deployment/roles/mongo_init/templates/main_script.js.j2 @@ -0,0 +1,7 @@ +{% for script in mongod_eligible_files %} + {% if mongodb.docker is defined and mongodb.docker.enable %} + load('{{ mongodb.docker.internal_dir}}/app/mongod/{{ script.finalname }}'); + {% else %} + load('{{mongod_output_dir_entry_point}}/{{ script.finalname }}'); + {% endif %} +{% endfor %} \ No newline at end of file