Adjust inside/outside openstack-ci bootstrap-host tasks
To optimise the execution and to simplify it, we re-arrange the tasks in such a way that there are only two blocks - one for execution inside openstack-infra, and one for outside. Also, Zuul places a /etc/pip.conf file on the host but we do not need it given that we have our own implementation of pip config which uses the correct mirrors based on the mirror script. As such, we no longer want this file in the containers, so we remove the setting which makes lxc_hosts copy it into the container cache when it is prepared. Change-Id: I4986ff4d21e9fa8b77115ab80c66de99afe45f6c
This commit is contained in:
parent
fc1bd13759
commit
3c50f79c98
@ -62,65 +62,80 @@
|
||||
path: /etc/nodepool
|
||||
register: nodepool_dir
|
||||
|
||||
# OVH nodepool nodes have an issue which causes nested virt
|
||||
# instances to crash with a hardware error, then a dump.
|
||||
# We therefore detect whether we're running on OVH and
|
||||
# force it to use qemu instead.
|
||||
- name: Discover the OpenStack-Infra mirrors
|
||||
shell: |
|
||||
source /etc/ci/mirror_info.sh
|
||||
NODEPOOL_OVERRIDES="/etc/openstack_deploy/user_openstackci.yml"
|
||||
echo "uca_apt_repo_url: '${NODEPOOL_UCA_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
echo "openstack_hosts_centos_mirror_url: '${NODEPOOL_CENTOS_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
echo "opensuse_mirror: '${NODEPOOL_OPENSUSE_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
echo "opensuse_mirror_obs: 'http://download.opensuse.org'" >> ${NODEPOOL_OVERRIDES}
|
||||
if [[ ${NODEPOOL_PYPI_MIRROR} == *.ovh.* ]]; then
|
||||
echo "nova_virt_type: 'qemu'" >> ${NODEPOOL_OVERRIDES}
|
||||
fi
|
||||
echo "repo_build_pip_default_index: '${NODEPOOL_PYPI_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
args:
|
||||
executable: /bin/bash
|
||||
- name: Set facts when inside of OpenStack-Infra
|
||||
when:
|
||||
- nodepool_dir.stat.exists | bool
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Discover the OpenStack-Infra pypi/wheel mirror
|
||||
shell: |
|
||||
source /etc/ci/mirror_info.sh
|
||||
echo "${NODEPOOL_PYPI_MIRROR}"
|
||||
echo "${NODEPOOL_WHEEL_MIRROR}"
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: _pypi_wheel_mirror
|
||||
when:
|
||||
- nodepool_dir.stat.exists | bool
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Discover the OpenStack-Infra LXC reverse proxy
|
||||
shell: |
|
||||
source /etc/ci/mirror_info.sh
|
||||
echo ${NODEPOOL_LXC_IMAGE_PROXY}
|
||||
register: _lxc_mirror
|
||||
args:
|
||||
executable: /bin/bash
|
||||
when:
|
||||
- nodepool_dir.stat.exists | bool
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Set the package cache timeout to 60 mins in OpenStack-CI
|
||||
set_fact:
|
||||
cache_timeout: 3600
|
||||
when:
|
||||
- cache_timeout is not defined
|
||||
- nodepool_dir.stat.exists
|
||||
block:
|
||||
# OVH nodepool nodes have an issue which causes nested virt
|
||||
# instances to crash with a hardware error, then a dump.
|
||||
# We therefore detect whether we're running on OVH and
|
||||
# force it to use qemu instead.
|
||||
- name: Discover the OpenStack-Infra mirrors
|
||||
shell: |
|
||||
source /etc/ci/mirror_info.sh
|
||||
NODEPOOL_OVERRIDES="/etc/openstack_deploy/user_openstackci.yml"
|
||||
echo "uca_apt_repo_url: '${NODEPOOL_UCA_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
echo "openstack_hosts_centos_mirror_url: '${NODEPOOL_CENTOS_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
echo "opensuse_mirror: '${NODEPOOL_OPENSUSE_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
echo "opensuse_mirror_obs: 'http://download.opensuse.org'" >> ${NODEPOOL_OVERRIDES}
|
||||
if [[ ${NODEPOOL_PYPI_MIRROR} == *.ovh.* ]]; then
|
||||
echo "nova_virt_type: 'qemu'" >> ${NODEPOOL_OVERRIDES}
|
||||
fi
|
||||
echo "repo_build_pip_default_index: '${NODEPOOL_PYPI_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
|
||||
args:
|
||||
executable: /bin/bash
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Determine if the host has a global pip config file
|
||||
stat:
|
||||
path: /etc/pip.conf
|
||||
register: pip_conf_file
|
||||
- name: Discover the OpenStack-Infra pypi/wheel mirror
|
||||
shell: |
|
||||
source /etc/ci/mirror_info.sh
|
||||
echo "${NODEPOOL_PYPI_MIRROR}"
|
||||
echo "${NODEPOOL_WHEEL_MIRROR}"
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: _pypi_wheel_mirror
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Discover the OpenStack-Infra LXC reverse proxy
|
||||
shell: |
|
||||
source /etc/ci/mirror_info.sh
|
||||
echo ${NODEPOOL_LXC_IMAGE_PROXY}
|
||||
register: _lxc_mirror
|
||||
args:
|
||||
executable: /bin/bash
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Set the package cache timeout to 60 mins in OpenStack-CI
|
||||
set_fact:
|
||||
cache_timeout: 3600
|
||||
when:
|
||||
- cache_timeout is not defined
|
||||
|
||||
# This is a very dirty hack due to images.linuxcontainers.org
|
||||
# constantly failing to resolve in openstack-infra.
|
||||
- name: Implement hard-coded hosts entries for consistently failing name
|
||||
lineinfile:
|
||||
path: "/etc/hosts"
|
||||
line: "{{ item }}"
|
||||
state: present
|
||||
with_items:
|
||||
- "91.189.91.21 images.linuxcontainers.org us.images.linuxcontainers.org"
|
||||
- "91.189.88.37 images.linuxcontainers.org uk.images.linuxcontainers.org"
|
||||
|
||||
- name: Set facts when outside of OpenStack-Infra
|
||||
when:
|
||||
- not nodepool_dir.stat.exists
|
||||
block:
|
||||
- name: Determine the fastest available OpenStack-Infra wheel mirror
|
||||
command: "{{ bootstrap_host_aio_script_path }}/fastest-infra-wheel-mirror.py"
|
||||
register: fastest_wheel_mirror
|
||||
|
||||
- name: Set repo_build_pip_extra_indexes fact
|
||||
set_fact:
|
||||
repo_build_pip_extra_indexes: "{{ fastest_wheel_mirror.stdout_lines }}"
|
||||
|
||||
# NOTE(mhayden): The OpenStack CI images for CentOS 7 recently set SELinux to
|
||||
# Enforcing mode by default. While I am normally a supporter of this change,
|
||||
@ -132,29 +147,6 @@
|
||||
when:
|
||||
- ansible_selinux.status == "enabled"
|
||||
|
||||
# This is a very dirty hack due to images.linuxcontainers.org
|
||||
# constantly failing to resolve in openstack-infra.
|
||||
- name: Implement hard-coded hosts entries for consistently failing name
|
||||
lineinfile:
|
||||
path: "/etc/hosts"
|
||||
line: "{{ item }}"
|
||||
state: present
|
||||
with_items:
|
||||
- "91.189.91.21 images.linuxcontainers.org us.images.linuxcontainers.org"
|
||||
- "91.189.88.37 images.linuxcontainers.org uk.images.linuxcontainers.org"
|
||||
when:
|
||||
- nodepool_dir.stat.exists
|
||||
|
||||
- name: Determine the fastest available OpenStack-Infra wheel mirror
|
||||
command: "{{ bootstrap_host_aio_script_path }}/fastest-infra-wheel-mirror.py"
|
||||
register: fastest_wheel_mirror
|
||||
when: not pip_conf_file.stat.exists
|
||||
|
||||
- name: Set repo_build_pip_extra_indexes fact
|
||||
set_fact:
|
||||
repo_build_pip_extra_indexes: "{{ fastest_wheel_mirror.stdout_lines }}"
|
||||
when: not pip_conf_file.stat.exists
|
||||
|
||||
- name: Set the user_variables
|
||||
config_template:
|
||||
src: "{{ bootstrap_user_variables_template }}"
|
||||
@ -184,40 +176,6 @@
|
||||
when:
|
||||
- "bootstrap_host_scenario == 'aio_metal'"
|
||||
|
||||
- name: Add user_conf_files to contain the list of files to copy into containers
|
||||
file:
|
||||
path: /etc/openstack_deploy/user_conf_files.yml
|
||||
state: touch
|
||||
when: pip_conf_file.stat.exists
|
||||
tags:
|
||||
- container-conf-files
|
||||
|
||||
- name: Ensure that the first line in user_conf_files is correct
|
||||
lineinfile:
|
||||
dest: /etc/openstack_deploy/user_conf_files.yml
|
||||
line: "---"
|
||||
insertbefore: BOF
|
||||
when: pip_conf_file.stat.exists
|
||||
tags:
|
||||
- container-conf-files
|
||||
|
||||
- name: Ensure that the second line in user_conf_files is correct
|
||||
lineinfile:
|
||||
dest: /etc/openstack_deploy/user_conf_files.yml
|
||||
line: "lxc_container_cache_files:"
|
||||
insertafter: "^---"
|
||||
when: pip_conf_file.stat.exists
|
||||
tags:
|
||||
- container-conf-files
|
||||
|
||||
- name: Add the dict to copy the global pip config file into user_conf_files
|
||||
lineinfile:
|
||||
dest: /etc/openstack_deploy/user_conf_files.yml
|
||||
line: " - { src: '/etc/pip.conf', dest: '/etc/pip.conf' }"
|
||||
when: pip_conf_file.stat.exists
|
||||
tags:
|
||||
- container-conf-files
|
||||
|
||||
- name: Create vars override folders if we need to test them
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user