From 24bd4a781fe1ccce532ba032dd28631a954111d7 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Thu, 16 Aug 2018 09:16:51 +0100 Subject: [PATCH] Update ansible to 2.5.8 It also seems that Ansible became more strict about the permissions of the current working directory[1] so we need to either move our ansible.cfg to a better location, or get rid of it. In the zuul test environment, the location is world-writable. Given that this is an ansible.cfg used for tests only, that its content is (mostly) duplicated in the wrapper's RC file and that implementation of avoiding the wrapper was done when we had vars plugins (which we no longer have), I think it's safe to remove it and use the wrapper instead. Using the wrapper ensures that everything is set in one place, so it's easier to find. In the AIO bootstrap we then just make sure we override things that we do not want to interfere with the AIO bootstrap - then unset them later so that the defaults get applied from then on. To also reduce the duplication of the bootstrap-aio.sh script in the gate-check-commit script, we source bootstrap-aio from gate-check-commit. [1]: https://github.com/ansible/ansible/commit/ff980afefdbe4ceb828bdb1bb2eef03cf616bf63 Change-Id: I6a673c3c4f228d11a9d93766021409a5b1672f63 --- scripts/bootstrap-aio.sh | 26 ++++++++++++++++++-------- scripts/bootstrap-ansible.sh | 2 +- scripts/gate-check-commit.sh | 17 +---------------- tests/ansible.cfg | 15 --------------- 4 files changed, 20 insertions(+), 40 deletions(-) delete mode 100644 tests/ansible.cfg diff --git a/scripts/bootstrap-aio.sh b/scripts/bootstrap-aio.sh index cdcf55df90..ab47c3f6d6 100755 --- a/scripts/bootstrap-aio.sh +++ b/scripts/bootstrap-aio.sh @@ -21,25 +21,35 @@ set -e -u -x # Extra options to pass to the AIO bootstrap process export BOOTSTRAP_OPTS=${BOOTSTRAP_OPTS:-''} +# Store the clone repo root location +export OSA_CLONE_DIR="${OSA_CLONE_DIR:-$(readlink -f $(dirname $0)/..)}" + ## Main ---------------------------------------------------------------------- -# Run AIO bootstrap playbook -unset ANSIBLE_VARS_PLUGINS -unset HOST_VARS_PATH -unset GROUP_VARS_PATH +# Ensure that some of the wrapper options are overridden +# to prevent interference with the AIO bootstrap. +export ANSIBLE_INVENTORY="${OSA_CLONE_DIR}/tests/test-inventory.ini" +export ANSIBLE_VARS_PLUGINS="/dev/null" +export HOST_VARS_PATH="/dev/null" +export GROUP_VARS_PATH="/dev/null" +# Run AIO bootstrap playbook pushd tests if [ -z "${BOOTSTRAP_OPTS}" ]; then - /opt/ansible-runtime/bin/ansible-playbook bootstrap-aio.yml \ - -i test-inventory.ini + ansible-playbook bootstrap-aio.yml else export BOOTSTRAP_OPTS_ITEMS='' for BOOTSTRAP_OPT in ${BOOTSTRAP_OPTS}; do BOOTSTRAP_OPTS_ITEMS=${BOOTSTRAP_OPTS_ITEMS}"-e "${BOOTSTRAP_OPT}" " done - /opt/ansible-runtime/bin/ansible-playbook bootstrap-aio.yml \ - -i test-inventory.ini \ + ansible-playbook bootstrap-aio.yml \ ${BOOTSTRAP_OPTS_ITEMS} fi popd +# Now unset the env var overrides so that the defaults work again +unset ANSIBLE_INVENTORY +unset ANSIBLE_VARS_PLUGINS +unset HOST_VARS_PATH +unset GROUP_VARS_PATH + diff --git a/scripts/bootstrap-ansible.sh b/scripts/bootstrap-ansible.sh index 3e8ba1c947..f8e3063c66 100755 --- a/scripts/bootstrap-ansible.sh +++ b/scripts/bootstrap-ansible.sh @@ -23,7 +23,7 @@ set -e -u -x export HTTP_PROXY=${HTTP_PROXY:-""} export HTTPS_PROXY=${HTTPS_PROXY:-""} # The Ansible version used for testing -export ANSIBLE_PACKAGE=${ANSIBLE_PACKAGE:-"ansible==2.5.5"} +export ANSIBLE_PACKAGE=${ANSIBLE_PACKAGE:-"ansible==2.5.8"} export ANSIBLE_ROLE_FILE=${ANSIBLE_ROLE_FILE:-"ansible-role-requirements.yml"} export SSH_DIR=${SSH_DIR:-"/root/.ssh"} export DEBIAN_FRONTEND=${DEBIAN_FRONTEND:-"noninteractive"} diff --git a/scripts/gate-check-commit.sh b/scripts/gate-check-commit.sh index dd2474a5cc..3b516d143e 100755 --- a/scripts/gate-check-commit.sh +++ b/scripts/gate-check-commit.sh @@ -137,22 +137,7 @@ iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # Bootstrap an AIO -unset ANSIBLE_VARS_PLUGINS -unset HOST_VARS_PATH -unset GROUP_VARS_PATH - -pushd "${OSA_CLONE_DIR}/tests" - if [ -z "${BOOTSTRAP_OPTS}" ]; then - /opt/ansible-runtime/bin/ansible-playbook bootstrap-aio.yml \ - -i test-inventory.ini \ - ${ANSIBLE_PARAMETERS} - else - /opt/ansible-runtime/bin/ansible-playbook bootstrap-aio.yml \ - -i test-inventory.ini \ - -e "${BOOTSTRAP_OPTS}" \ - ${ANSIBLE_PARAMETERS} - fi -popd +source "${OSA_CLONE_DIR}/scripts/bootstrap-aio.sh" if [[ "${ACTION}" == "varstest" ]]; then pushd "${OSA_CLONE_DIR}/tests" diff --git a/tests/ansible.cfg b/tests/ansible.cfg deleted file mode 100644 index 90e3509718..0000000000 --- a/tests/ansible.cfg +++ /dev/null @@ -1,15 +0,0 @@ -[defaults] -# Set the role path -roles_path = /etc/ansible/roles:roles - -# Additional plugins -action_plugins = /etc/ansible/roles/plugins/action -callback_plugins = /etc/ansible/roles/plugins/callback -filter_plugins = /etc/ansible/roles/plugins/filter -lookup_plugins = /etc/ansible/roles/plugins/lookup -library = /etc/ansible/roles/plugins/library - -# Set color options -nocolor = 0 - -host_key_checking = False