diff --git a/ansible/test/bin/.env b/ansible/test/bin/.env
new file mode 100644
index 0000000..d81bce5
--- /dev/null
+++ b/ansible/test/bin/.env
@@ -0,0 +1,14 @@
+#
+# Define environment variables here that are visible for each Molecule run.
+# Format is shell format.
+#
+# Alternative, env variables can be also defined specificly for certain role
+# by creating .env.yml file (yml format) into role's directory from where also
+# Molecule is run. Variables in this role specific .env.yml file will override
+# variables in this file.
+#
+
+# Passwords needed (when using molecule-dev container) to access localhost by ssh
+#LOCALHOST_ANSIBLE_PASSWORD=
+#LOCALHOST_ANSIBLE_SUDO_PASS=
+
diff --git a/ansible/test/bin/molecule.sh b/ansible/test/bin/molecule.sh
new file mode 100755
index 0000000..d983ca0
--- /dev/null
+++ b/ansible/test/bin/molecule.sh
@@ -0,0 +1,54 @@
+#! /usr/bin/env bash
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+#   COPYRIGHT NOTICE ENDS HERE
+
+SCRIPT_DIR=$(dirname "${0}")
+LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
+# main root dir in this git repo (relative to this script location)
+ROOT_DIR=$(cd ${LOCAL_PATH}/../../../ && pwd)/
+PROJECT_ROOT_IN_CONTAINER=${PWD##${ROOT_DIR}}
+# Make dir structure same in container to make localhost ssh actions to match same dirs
+CONTAINER_ROOT=${ROOT_DIR}
+
+if [ "${PWD}" == "${PROJECT_ROOT_IN_CONTAINER}" ]; then
+    echo "Please run it under subdir of ${ROOT_DIR} directory"
+    exit 1
+fi
+
+env_params=(--env LOCALHOST_ANSIBLE_HOST=$(hostname -I | cut -f 1 -d ' '))
+env_params+=(--env LOCALHOST_ANSIBLE_USER=$(id -nu))
+
+if [ -e "${LOCAL_PATH}/.env" ]; then
+    env_file="--env-file ${LOCAL_PATH}/.env"
+fi
+
+MOLECULE_IMAGE=${MOLECULE_IMAGE:-molecule-dev}
+MOLECULE_IMAGE_VERSION=${MOLECULE_IMAGE_VERSION:-2.20.0}
+echo "Running molecule image: ${MOLECULE_IMAGE}:${MOLECULE_IMAGE_VERSION}"
+MOLECULE_CMD=${MOLECULE_CMD:-molecule}
+docker run --rm -it \
+    -v /var/run/docker.sock:/var/run/docker.sock \
+    -v ${ROOT_DIR}:${CONTAINER_ROOT}:rw \
+    -w ${CONTAINER_ROOT}/${PROJECT_ROOT_IN_CONTAINER} \
+    "${env_params[@]}" \
+    ${env_file} \
+    --name ${MOLECULE_IMAGE} \
+    ${MOLECULE_IMAGE}:${MOLECULE_IMAGE_VERSION} \
+    ${MOLECULE_CMD} "$@"
+
diff --git a/ansible/test/bin/set_molecule_paths.sh b/ansible/test/bin/set_molecule_paths.sh
new file mode 100755
index 0000000..e237eb1
--- /dev/null
+++ b/ansible/test/bin/set_molecule_paths.sh
@@ -0,0 +1,23 @@
+#! /usr/bin/env bash
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+#   COPYRIGHT NOTICE ENDS HERE
+SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)
+LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
+
+export PATH=${LOCAL_PATH}:${PATH}
