03a57d6668
Before the repo server is up, only bare metal hosts need pip installed, openstack-hosts-setup take care of that part by default, with the openstack_host role calling pip_install. Once the repo server is up, the pypi cache will be available to be used. This implements the changes to detect whether it is available - this is important for the plays doing pip installs before the repo server is available. Once it is available the same plays will use it. To be available, we need to wait for haproxy playbook to load balance towards the repo container, or the baremetal node if need be. Once the repo server and the load balancer are up, we can configure everything to use the repo server, and this will be done with the repo-use.yml playbook, which is calling the pip_install role. We also remove the use of the pip_lock_to_internal_repo from group variables, as we want to change the pip.conf dynamically depending on the availability of the default index. Finally, we set the AIO in OpenStack-Infra to make use of the appropriate infra mirror for the nginx reverse proxy. Because the gates are blocked without this patch, this patch should land in priority. The current upstream state prevents that, so we temporarily disable the ceph testing, which fails due to [1]. On top of it, we need to bump shas to a known working state, else tempest would fail. To avoid circular dependencies, we include the content of patch [2], which is the sha bump pending this work. [1]: https://bugs.launchpad.net/cinder/+bug/1737015 [2]: https://review.openstack.org/#/c/522850/ Change-Id: If19442918baa9ddacf7c19940c9b5007694bee61 Depends-On: I56f22f46ff849a7049ac7ae873af7a4bc526fa63 Depends-On: Ic4fd64f4dc82121a65088f3d7f4ae53f373df608 Depends-On: I7bd31f2d89d3fe9d48e32c79ddef7a8ef1392eb7 Depends-On: Icd93c0c801bfee1b4fdc8154d078067722c0640a Depends-On: I1e9782eb0fd72690a9644c7a01e8c83a4486872b Co-Authored-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
61 lines
2.3 KiB
YAML
61 lines
2.3 KiB
YAML
---
|
|
# Copyright 2014, Rackspace US, Inc.
|
|
#
|
|
# 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.
|
|
|
|
# NOTE(mhayden): CentOS always has python (because of yum), but it's possible
|
|
# that Ubuntu nodes may not have python by default. Ansible doesn't work very
|
|
# well if Python isn't installed.
|
|
#
|
|
# Also, we can't use a 'when' to check for the ansible_pkg_mgr here because
|
|
# we haven't gathered facts yet.
|
|
- name: Install Ansible prerequisites
|
|
hosts: "{{ openstack_host_group|default('hosts') }}"
|
|
gather_facts: false
|
|
user: root
|
|
pre_tasks:
|
|
- name: Ensure python is installed
|
|
register: result
|
|
raw: |
|
|
if which apt-get >/dev/null && ! which python >/dev/null ; then
|
|
apt-get -y install python
|
|
exit 2
|
|
else
|
|
exit 0
|
|
fi
|
|
changed_when: "result.rc == 2"
|
|
failed_when: "result.rc not in [0, 2]"
|
|
|
|
- name: Basic host setup
|
|
hosts: "{{ openstack_host_group|default('hosts') }}"
|
|
gather_facts: "{{ osa_gather_facts | default(True) }}"
|
|
max_fail_percentage: 20
|
|
user: root
|
|
pre_tasks:
|
|
- name: Check for a supported Operating System
|
|
assert:
|
|
that:
|
|
- (ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'xenial') or
|
|
(ansible_os_family == 'RedHat' and ansible_distribution_major_version == '7') or
|
|
(ansible_os_family == 'Suse' and ansible_distribution_major_version == '42')
|
|
msg: "The only supported platforms for this release are Ubuntu 16.04 LTS (Xenial), CentOS 7 (WIP) and openSUSE Leap 42.X (WIP)"
|
|
- include: common-tasks/set-upper-constraints.yml
|
|
- include: common-tasks/set-pip-upstream-url.yml
|
|
roles:
|
|
- role: "openstack_hosts"
|
|
vars_files:
|
|
- defaults/repo_packages/openstack_services.yml
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- openstack-hosts
|