diff --git a/tox.ini b/tox.ini
index 9296f48de3e314edf4c07fb1b7e6139071605e5a..8e0f225eff3c09bb03c2b8cbd039f475c1371844 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,24 +1,24 @@
 [tox]
 minversion = 3.18
-skipsdist = True
 envlist = py38,linters
 ignore_basepython_conflict = True
 
 [testenv]
 basepython = python3
 usedevelop = True
-allowlist_externals = find
+allowlist_externals = bash
+                      find 
                       rm
 deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
        -r{toxinidir}/requirements.txt
        -r{toxinidir}/test-requirements.txt
-passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
-          OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE OS_TEST_TIMEOUT
-          PYTHON OS_TEST_PATH LISTOPT IDOPTION
+passenv = http_proxy,HTTP_PROXY,https_proxy,HTTPS_PROXY,no_proxy,NO_PROXY, \
+          OS_STDOUT_CAPTURE,OS_STDERR_CAPTURE,OS_LOG_CAPTURE,OS_TEST_TIMEOUT, \
+          PYTHON,OS_TEST_PATH,LISTOPT,IDOPTION
 commands =
   find . -type f -name "*.py[c|o]" -delete -o -type l -name "*.py[c|o]" -delete
   find . -type d -name "__pycache__" -delete
-  {toxinidir}/tests/link-module-utils.sh {toxinidir} {envsitepackagesdir}
+  bash {toxinidir}/tests/link-module-utils.sh {toxinidir} {envsitepackagesdir}
   stestr run --slowest {posargs}
 
 [testenv:debug]
@@ -32,7 +32,7 @@ setenv = VIRTUAL_ENV={envdir}
          NOSE_COVER_HTML_DIR={toxinidir}/cover
          PYTHON=coverage run --source kolla_ansible,ansible/action_plugins,ansible/library,ansible/roles/keystone/files/ --parallel-mode
 commands =
-  {toxinidir}/tests/link-module-utils.sh {toxinidir} {envsitepackagesdir}
+  bash {toxinidir}/tests/link-module-utils.sh {toxinidir} {envsitepackagesdir}
   stestr run {posargs}
   coverage combine
   coverage html -d cover
@@ -71,6 +71,7 @@ commands =
 
 [testenv:pdf-docs]
 allowlist_externals = make
+                      rm
 skip_install = {[testenv:docs]skip_install}
 deps = {[testenv:docs]deps}
 commands =