From 78aee8bb66b85667a53cda064b46d170dd9ca491 Mon Sep 17 00:00:00 2001 From: Mathieu Leguay <mathieu.leguay@teamdlab.com> Date: Fri, 22 May 2020 11:46:13 +0200 Subject: [PATCH] [DLAB-4126] Fix authentication detection for mongo --- .../roles/mongo_init/tasks/check_auth.yml | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/deployment/roles/mongo_init/tasks/check_auth.yml b/deployment/roles/mongo_init/tasks/check_auth.yml index 1591c358..56eb97b8 100644 --- a/deployment/roles/mongo_init/tasks/check_auth.yml +++ b/deployment/roles/mongo_init/tasks/check_auth.yml @@ -1,34 +1,39 @@ --- - -- name: Check if authent is enabled - 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 }}" - when: mongodb.docker is not defined or not mongodb.docker.enable - -- 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 -- name: Set mongo_no_auth fact to true - set_fact: - mongo_no_auth: true - when: "mongo_authent_enabled.rc != 0" +- block: + - name: Check if authent is enabled + 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 }}" + + - name: Set mongo_no_auth fact to true + set_fact: + mongo_no_auth: true + when: "mongo_authent_enabled.rc != 0" + when: mongodb.docker is not defined or not mongodb.docker.enable + +- block: + - 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 + + - name: Set mongo_no_auth fact to true + set_fact: + mongo_no_auth: true + when: "mongo_authent_enabled.rc != 0" + when: mongodb.docker is defined and mongodb.docker.enable # When authentication is required, we set mongodb admin credentials - name: Set mongodb authentication credentials set_fact: mongo_credentials: " -u {{ mongodb.admin.user }} -p {{ mongodb.admin.password }} --authenticationDatabase {{ mongodb.admin.db }} " - when: "mongo_authent_enabled.rc == 0" + when: not mongo_no_auth no_log: "{{ hide_passwords_during_deploy }}" - -- GitLab