1505353333
The initial version of gating playbook contained ability to run them either on Python2 or Python3 ansible. But it causes a lot of issues e.g. a need to install[1] both versions of libs to support both possible ways to run, discrepancy between local and Zuul run[2] Zuul testing is done with ansible running on Python3 [3]. Meanwhile ppa repo for ansible contains ansible pachage that depends only from python2. There is no package for Python3 and we used only Python2-ansyble. The fact that Zuul runs it with different configuration means that we'll keep facing the issues with dependencies in future, since Gating doesn't test it. This patch changes makes local scripts run as Zuul. PS The script partially takes care of reverting intallation from its previous runs. To cleanup completely it's possible to run [4] in case these pacakges are not used by anyone else [1] https://opendev.org/airship/airshipctl/src/branch/master/roles/libvirt-install/tasks/main.yaml#L38 [2] https://review.opendev.org/#/c/717841/ https://review.opendev.org/#/c/718590/ [3] https://zuul.opendev.org/t/openstack/build/4096513604a84cd2b2f2578fc3f98660/log/zuul-info/host-info.primary.yaml#498 [4] if dpkg -l | grep "ansible.*ppa~bionic"; then sudo apt -y remove ansible sudo apt -y autoremove sudo add-apt-repository -r -y ppa:ansible/ansible sudo apt-get -y update fi + possibly sudo apt remove virtinst python-libvirt python-docker python-requests python-lxml python-libvirt Change-Id: Ia1ac3aa4128f6c4797dea1709ccb8516ae342a66
41 lines
1.6 KiB
Bash
Executable File
41 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you 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.
|
|
|
|
set -xe
|
|
|
|
export ISO_DIR=${ISO_DIR:-"/srv/iso"}
|
|
export SERVE_PORT=${SERVE_PORT:-"8099"}
|
|
export AIRSHIPCTL_WS=${AIRSHIPCTL_WS:-$PWD}
|
|
export TMP_DIR=${TMP_DIR:-"$(dirname $(mktemp -u))"}
|
|
|
|
ANSIBLE_CFG=${ANSIBLE_CFG:-"${HOME}/.ansible.cfg"}
|
|
ANSIBLE_HOSTS=${ANSIBLE_HOSTS:-"${TMP_DIR}/ansible_hosts"}
|
|
PLAYBOOK_CONFIG=${PLAYBOOK_CONFIG:-"${TMP_DIR}/config.yaml"}
|
|
|
|
mkdir -p "$TMP_DIR"
|
|
envsubst <"${AIRSHIPCTL_WS}/tools/gate/config_template.yaml" > "$PLAYBOOK_CONFIG"
|
|
|
|
# use new version of ansible, Ubuntu has old one
|
|
sudo apt install software-properties-common python3-pip
|
|
sudo apt-get -y --no-install-recommends install docker.io make
|
|
sudo pip3 install ansible
|
|
|
|
echo "primary ansible_host=localhost ansible_connection=local ansible_python_interpreter=/usr/bin/python3" > "$ANSIBLE_HOSTS"
|
|
printf "[defaults]\nroles_path = %s/roles\n" "$AIRSHIPCTL_WS" > "$ANSIBLE_CFG"
|