diff --git a/releasenotes/notes/bug-1887180-89450a4185c7449d.yaml b/releasenotes/notes/bug-1887180-89450a4185c7449d.yaml
new file mode 100644
index 0000000000..ec312c7996
--- /dev/null
+++ b/releasenotes/notes/bug-1887180-89450a4185c7449d.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+  - |
+    Fixes ``--configdir`` parameter to apply to default ``passwords.yml``
+    location.
+    `LP#1887180 <https://launchpad.net/bugs/1887180>`__
diff --git a/tools/kolla-ansible b/tools/kolla-ansible
index 8221c15cb0..2fea170b5a 100755
--- a/tools/kolla-ansible
+++ b/tools/kolla-ansible
@@ -198,7 +198,6 @@ PLAYBOOK="${BASEDIR}/ansible/site.yml"
 VERBOSITY=
 EXTRA_OPTS=${EXTRA_OPTS}
 CONFIG_DIR="/etc/kolla"
-PASSWORDS_FILE="${CONFIG_DIR}/passwords.yml"
 DANGER_CONFIRM=
 INCLUDE_IMAGES=
 INCLUDE_DEV=
@@ -454,6 +453,7 @@ esac
 
 GLOBALS_DIR="${CONFIG_DIR}/globals.d"
 EXTRA_GLOBALS=$(find ${GLOBALS_DIR} -maxdepth 1 -type f -name '*.yml' -printf ' -e @%p' 2>/dev/null)
+PASSWORDS_FILE="${PASSWORDS_FILE:-${CONFIG_DIR}/passwords.yml}"
 CONFIG_OPTS="-e @${CONFIG_DIR}/globals.yml ${EXTRA_GLOBALS} -e @${PASSWORDS_FILE} -e CONFIG_DIR=${CONFIG_DIR}"
 CMD="ansible-playbook -i $INVENTORY $CONFIG_OPTS $EXTRA_OPTS $PLAYBOOK $VERBOSITY"
 process_cmd