diff --git a/deployment/roles/mongo_init/tasks/check_auth.yml b/deployment/roles/mongo_init/tasks/check_auth.yml index f5486f9815e7a102896468ac7f3b4eaf12119c91..1591c3584cbbf2f46428f27c3dc0c9301f8923d1 100644 --- a/deployment/roles/mongo_init/tasks/check_auth.yml +++ b/deployment/roles/mongo_init/tasks/check_auth.yml @@ -1,28 +1,29 @@ --- - name: Check if authent is enabled - command: "mongo --host {{ mongod_uri }}/admin -u {{ mongodb.admin.user }} -p {{ mongodb.admin.password }} --quiet --eval 'db.help()'" + command: "mongo --host mongodb://{{ mongod_uri }}/admin?replicaSet={{ mongod_replicaset_name }} -u {{ mongodb.admin.user }} -p {{ mongodb.admin.password }} --quiet --eval 'db.help()'" register: mongo_authent_enabled failed_when: false no_log: "{{ hide_passwords_during_deploy }}" - tags: - - update_mongodb_configuration + when: mongodb.docker is not defined or not mongodb.docker.enable -# Set mongo_no_auth facts +- name: Load script in database (docker) + shell: "docker exec --tty {{ mongodb.docker.image_name }} /bin/bash -c \"mongo --host mongodb://{{ mongod_uri }}/admin?replicaSet={{ mongod_replicaset_name }} -u {{ mongodb.admin.user }} -p {{ mongodb.admin.password }} --quiet --eval 'db.help()'\"" + no_log: "{{ hide_passwords_during_deploy }}" + failed_when: false + register: mongo_authent_enabled + when: mongodb.docker is defined and mongodb.docker.enable +# Set mongo_no_auth facts - name: Set default mongo facts set_fact: mongo_credentials: "" mongo_no_auth: false - tags: - - update_mongodb_configuration - name: Set mongo_no_auth fact to true set_fact: mongo_no_auth: true when: "mongo_authent_enabled.rc != 0" - tags: - - update_mongodb_configuration # When authentication is required, we set mongodb admin credentials - name: Set mongodb authentication credentials diff --git a/deployment/roles/mongo_init/tasks/execute_script.yml b/deployment/roles/mongo_init/tasks/execute_script.yml index c2ecfceb9cafa3ba05e40cb4c59075fc7de46217..e21930a489748ecc570de8abe3fea463e22e4b8f 100644 --- a/deployment/roles/mongo_init/tasks/execute_script.yml +++ b/deployment/roles/mongo_init/tasks/execute_script.yml @@ -16,29 +16,20 @@ - 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: "versionned_script.js.j2" - dest: "{{ mongod_output_dir_entry_point }}/versionned_{{ mongo_file.finalname }}" + 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 - - - name: Insert original script into versionned script. - blockinfile: - path: "{{ mongod_output_dir_entry_point }}/versionned_{{ mongo_file.finalname }}" - insertafter: "// Insert data" - marker: "// {mark} of the script" - block: | - {{lookup('file', '{{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}') }} - when: mock_insert_data is not defined - - - name: Update finalname script - set_fact: - mongo_file: "{{ mongo_file | combine( { 'finalname': 'versionned_{{ mongo_file.finalname }}' } ) }}" + 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 }}" diff --git a/deployment/roles/mongo_init/templates/versionned_script.js.j2 b/deployment/roles/mongo_init/templates/versioned_script.js.j2 similarity index 76% rename from deployment/roles/mongo_init/templates/versionned_script.js.j2 rename to deployment/roles/mongo_init/templates/versioned_script.js.j2 index 6d41a907d17283d05c8a3980239a527a8ea3ddfd..495d0db9b398fa8e7c720e928518303c3c2e650c 100644 --- a/deployment/roles/mongo_init/templates/versionned_script.js.j2 +++ b/deployment/roles/mongo_init/templates/versioned_script.js.j2 @@ -3,8 +3,10 @@ versioningDb = db.getSiblingDB('versioning') var commitChangelog = versioningDb.changelog.find({filename: '{{ mongo_file.finalname }}'}).toArray(); if (commitChangelog.length == 0) { - - // Insert data + {% if mock_insert_data is not defined %} + // Insert data + {{ script_content.stdout }} + {% endif %} // Insert changelog versioningDb.changelog.insertOne({filename: '{{ mongo_file.finalname }}', date: new Date(), version: '{{ mongo_file.version }}', checksum: '{{ stat_result.stat.checksum}}'}); diff --git a/tools/docker/mongo/mongo_vars_dev.yml b/tools/docker/mongo/mongo_vars_dev.yml index 733281883ab5ffb4f18ffabff7df584dbb66c399..4382d7eeb4cdda87726c6de17e3e689c599c0e5f 100644 --- a/tools/docker/mongo/mongo_vars_dev.yml +++ b/tools/docker/mongo/mongo_vars_dev.yml @@ -49,7 +49,7 @@ mongodb: password: "mongod_dbpwd_cas" roles: '[{ role: "readWrite", db: "cas" }]' versioning: - enable: true + enable: false db: versioning user: "mongod_dbuser_versioning" password: "mongod_dbpwd_versioning"