repo: stop using repo_build + pip_install

This patch removes all references and stops using repo_build as
all the integrated roles have their wheels and virtualenvs
built inside the role.

This patch removes all references and usage of pip_install as we
no longer need to do this.

Change-Id: Ie48b738c9281578e48b1811481d2a8da3832dc1b
This commit is contained in:
Mohammed Naser 2019-03-28 13:32:54 -04:00 committed by Jesse Pretorius
parent 1f1cca42c5
commit c0db5c423b
22 changed files with 72 additions and 479 deletions

View File

@ -13,11 +13,6 @@
src: https://git.openstack.org/openstack/ansible-config_template
version: master
trackbranch: master
- name: pip_install
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-pip_install
version: master
trackbranch: master
- name: galera_client
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-galera_client
@ -208,11 +203,6 @@
src: https://git.openstack.org/openstack/openstack-ansible-rabbitmq_server
version: master
trackbranch: master
- name: repo_build
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-repo_build
version: master
trackbranch: master
- name: repo_server
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-repo_server

View File

@ -118,8 +118,6 @@ Infrastructure service roles
- :role_docs:`rabbitmq_server`
- :role_docs:`repo_build`
- :role_docs:`repo_server`
- :role_docs:`rsyslog_server`
@ -184,8 +182,6 @@ Other roles
- :role_docs:`lxc_hosts`
- :role_docs:`pip_install`
- :role_docs:`plugins`
- :role_docs:`openstack_hosts`

View File

@ -48,13 +48,23 @@ actively mirror the entire upstream PyPi repository but this may require
a significant amount of storage. Alternatively a caching pip proxy
can be used to retain local copies of only those packages which are required.
Example OpenStack-Ansible configuration for specifying a local pip mirror or
proxy:
In order to configure the build to use an alternative index, create the file
`/etc/pip.conf` with the following content and ensure that it is placed on
all hosts in the environment.
.. code-block:: shell-session
[global]
index-url = http://pip.example.org/simple
Then, in `/etc/openstack_deploy/user_variables.yml`, inform the deployment
that it needs to copy that file from the host into the container cache image.
.. code-block:: yaml
# Custom upstream pip index used when building repo server contents
repo_build_pip_default_index: http://pip.example.org/simple
# Copy these files from the host into the containers
lxc_container_cache_files_from_host:
- /etc/pip.conf
Distribution specific packages
------------------------------

View File

@ -1,21 +0,0 @@
---
# Copyright 2017, 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.
pip_install_package_state: "{{ package_state }}"
# Allow the deployer to force pip to download locally to the deployment host
# and copy it to the remote container for installation. Useful for environments
# where the containers lack internet access.
pip_offline_install: false

View File

@ -14,62 +14,4 @@
# limitations under the License.
# Ensure that the package state matches the global setting
repo_server_package_state: "{{ package_state }}"
repo_build_package_state: "{{ package_state }}"
# Optionally set this variable to the location on the deployment
# host where a set of git clones may be sourced to stage the repo
# server.
#repo_build_git_cache: /opt/git/openstack/
# The folder in the repo container where the git clones should
# be synchronised to.
repo_build_git_dir: /var/www/repo/openstackgit
# The folder in the repo container which is bind-mounted to
# the host.
repo_service_home_folder: /var/www
# The folder on the repo container's host which will hold
# the git clones via the container-host bind-mount
repo_build_git_bind_mount: "/openstack/{{ inventory_hostname }}{{ repo_build_git_dir | replace(repo_service_home_folder, '') }}"
# The appropriate user:group names for the repo_build_git_dir
# folder/file attributes.
repo_service_user_name: nginx
repo_service_group_name: www-data
# Ensure that the repo service and the repo build use the same user:group
repo_build_service_user_name: "{{ repo_service_user_name }}"
repo_build_service_group_name: "{{ repo_service_group_name }}"
# The following package must always build from source.
#
# libvirt-python:
# A pre-built wheel can be missing libvirt capabilities from the installed
# version of libvirt-bin, leading to nova-compute failing to start.
#
# NOTE(hwoarang) cryptography may bundle openssl in the wheel and that
# causes symbol conflicts if a different openssl is provided by the
# distribution. As such, it's probably safer to re-build cryptography
# ourselves just to be sure that the correct distro libraries are used
# see https://github.com/pyca/cryptography/issues/3804
# This keeps popping up every now and then so it might worth keeping this
# around even if the upstream issue is resolved
# The upstream issue should be resolved now, and we are testing
# cryptography with the usage of wheels by removing it from no_binary.
repo_build_pip_no_binary:
- libvirt-python
# Set the build tag and the repo version
repo_build_release_tag: "{{ openstack_release }}"
repo_build_os_distro_version: "{{ os_distro_version }}"
# This is required because the nova package list has a conditional package
# based on this var.
nova_barbican_enabled: "{{ hostvars['localhost']['nova_barbican_enabled'] }}"
pkg_locations:
- "{{ playbook_dir }}/../"
- /etc/ansible/roles
- /etc/openstack_deploy
repo_server_package_state: "{{ package_state }}"

View File

@ -1,83 +0,0 @@
---
# Copyright 2016, 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.
# This set of tasks checks whether the repo is up yet. If it is it
# will use it as the source for constraints and as the default index.
# If it is not yet up, then it will use the upstream upper constraints
# for the SHA currently pinned and will set the default index to pypi.
- name: Backup the default pip_install_upper_constraints
run_once: yes
set_fact:
__pip_install_upper_constraints: "{{ pip_install_upper_constraints }}"
when:
- __pip_install_upper_constraints is not defined
- name: Backup the default pip_default_index
run_once: yes
set_fact:
__pip_default_index: "{{ pip_default_index }}"
when:
- __pip_default_index is not defined
- name: Test internal repo URL for the current upper constraints file
run_once: yes
uri:
url: "{{ __pip_install_upper_constraints }}"
method: "HEAD"
timeout: 3
register: upper_constraints_check
failed_when: false
tags:
- common-constraints
- name: Remove global requirement pins file from host
file:
path: "/opt/global-requirement-pins.txt"
state: absent
when: (upper_constraints_check.status | default(503)) == 200
tags:
- common-constraints
- name: Copy global requirement pins file to host
copy:
src: "../global-requirement-pins.txt"
dest: "/opt/global-requirement-pins.txt"
when: (upper_constraints_check.status | default(503)) != 200
tags:
- common-constraints
- name: Set pip install upper constraints
run_once: yes
set_fact:
pip_install_upper_constraints: >-
{{ ((upper_constraints_check.status | default(503)) != 200) | ternary(__upstream_constraints, __pip_install_upper_constraints) }}
vars:
# Use https when Python with native SNI support is available
__pip_install_upper_constraints_proto: "{{ (ansible_python_version is version_compare('2.7.9', '>=')) | ternary('https','http') }}"
__upstream_constraints: >-
/opt/global-requirement-pins.txt
--constraint {{ __pip_install_upper_constraints_proto }}://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?id={{ requirements_git_install_branch | regex_replace(' #.*$','') }}
tags:
- common-constraints
- name: Fall back to repo_build_pip_default_index
run_once: yes
set_fact:
pip_default_index: >-
{{ ((upper_constraints_check.status | default(503)) != 200) | ternary(repo_build_pip_default_index | default('https://pypi.python.org/simple'), __pip_default_index) }}
tags:
- common-constraints

View File

@ -73,8 +73,6 @@
pre_tasks:
- include_tasks: common-tasks/package-cache-proxy.yml
when: install_method == "source"
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
roles:
- role: "openstack_hosts"
is_container: true

View File

@ -24,8 +24,6 @@
tags:
- lxc-hosts
pre_tasks:
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
- name: Check the state of the default LXC service log directory
stat:
path: "/var/log/lxc"

View File

@ -110,9 +110,6 @@
- include_tasks: common-tasks/package-cache-proxy.yml
when: install_method == "source"
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
roles:
- role: "openstack_hosts"
is_container: true

View File

@ -65,8 +65,3 @@ trove_install_method: distro
watcher_install_method: distro
zaqar_install_method: distro
zun_install_method: distro
# default variables for PIP since we are not using the repo server
pip_default_index: "https://pypi.python.org/simple"
tempest_venv_download: false

View File

@ -26,18 +26,3 @@ repo_release_path: "{{ openstack_repo_url }}/os-releases/{{ openstack_release }}
## OpenStack source options
openstack_repo_url: "http://{{ internal_lb_vip_address }}:{{ repo_server_port }}"
openstack_repo_git_url: "git://{{ internal_lb_vip_address }}"
venv_base_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ os_distro_version }}"
tempest_venv_download_url: "{{ venv_base_download_url }}/tempest-{{ openstack_release }}-{{ ansible_architecture | lower }}.tgz"
# The URL to the repo server's pypi reverse proxy simple index
pip_default_index: "{{ openstack_repo_url }}/simple"
# The upper constraints to apply to all pip installations
pip_install_upper_constraints: "{{ repo_release_path }}/requirements_absolute_requirements.txt"
# locations for fetching the default files from the git source
gnocchi_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/gnocchi"
# locations for fetching the default files from the git source
ceilometer_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/ceilometer"
# locations for fetching the default files from the git source
tacker_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/tacker"
# locations for fetching the default files from the git source
keystone_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/keystone"

View File

@ -188,10 +188,6 @@
venv_install_destination_path: "{{ venv_path }}"
venv_pip_packages:
- pika
venv_build_host_wheel_path: "{{ repo_pypiserver_package_path | default('/var/www/repo/pools') }}"
venv_pip_install_args: >-
--index-url {{ repo_build_pip_default_index | default('https://pypi.python.org/simple') }}
--trusted-host {{ (repo_build_pip_default_index | default('https://pypi.python.org/simple')) | urlsplit('hostname') }}
- name: Copying test script
copy:
src: "../scripts/rabbitmq-test.py"

View File

@ -52,8 +52,6 @@
- include_tasks: common-tasks/package-cache-proxy.yml
when: install_method == "source"
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
roles:
- role: "openstack_hosts"
vars_files:

View File

@ -1,102 +0,0 @@
---
# Copyright 2015, 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.
- name: Group repo servers by architecture
hosts: repo_all
# Serial 1 avoids race conditions, and makes sures the repo_servers
# are added in the same order as the repo_all inventory
serial: 1
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
tasks:
- name: Group repo servers by architecture and os version
group_by:
key: repo_servers_{{ ansible_distribution_version }}_{{ ansible_architecture }}
tags:
- always
- repo-build
# Use the 'add_host' module to create the repo_masters group which consists of a
# single host in each distribution/architecture combination. This ensures that
# the repo build happens per architecture and per distribution, covering the needs
# of each of these combinations when deploying.
- name: Prepare group of master repo servers
hosts: localhost
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
tasks:
- name: Prepare group of master repo servers
add_host:
name: "{{ groups[item][0] }}"
groups: repo_masters
with_items: "{{ groups | select('match', '^repo_servers_') | list }}"
changed_when: false
tags:
- always
- repo-build
- name: Build new repo packages for a given release
hosts: repo_masters
gather_facts: "{{ osa_gather_facts | default(True) }}"
any_errors_fatal: true
user: root
serial: 1
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: common-tasks/set-pip-vars.yml
- name: Load local packages
debug:
msg: "Loading Packages"
with_py_pkgs: "{{ pkg_locations }}"
register: local_packages
tags:
- always
- name: Check if the git cache exists on deployment host
local_action:
module: stat
path: "{{ repo_build_git_cache }}"
register: _local_git_cache
when: repo_build_git_cache is defined
- name: Synchronise the contents of the git cache to the repo server
synchronize:
src: "{{ repo_build_git_cache }}"
dest: "{{ repo_build_git_dir }}"
when:
- _local_git_cache.stat is defined
- _local_git_cache.stat.exists
roles:
- role: "repo_build"
vars_files:
- defaults/repo_packages/openstack_services.yml
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- repo-build

View File

@ -13,5 +13,51 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- import_playbook: repo-server.yml
- import_playbook: repo-build.yml
- name: Setup repo servers
hosts: repo_all
gather_facts: "{{ osa_gather_facts | default(True) }}"
user: root
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
vars:
list_of_bind_mounts:
- mount_path: "/openstack/{{ inventory_hostname }}"
bind_dir_path: "/var/www"
when: not is_metal
- include_tasks: common-tasks/unbound-clients.yml
when:
- hostvars['localhost']['resolvconf_enabled'] | bool
roles:
- role: "repo_server"
post_tasks:
- include_tasks: "common-tasks/rsyslog-client.yml"
vars:
rsyslog_client_log_rotate_file: "{{ rsyslog_var.log_rotate_file }}"
rsyslog_client_log_dir: "{{ rsyslog_var.log_dir }}"
rsyslog_client_log_files: "{{ rsyslog_var.log_files | default([]) }}"
rsyslog_client_config_name: "{{ rsyslog_var.config_name }}"
with_items:
- log_rotate_file: lsyncd_log_rotate
log_dir: "/var/log/lsyncd"
config_name: "99-lsyncd-rsyslog-client.conf"
- log_rotate_file: repo_nginx_log_rotate
log_dir: "/var/log/nginx"
log_files:
- /var/log/rsyncd.log
config_name: "99-repo-nginx-rsyslog-client.conf"
loop_control:
loop_var: rsyslog_var
vars_files:
- defaults/repo_packages/openstack_services.yml
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- repo-server

View File

@ -1,75 +0,0 @@
---
# 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.
- name: Setup repo servers
hosts: repo_all
gather_facts: "{{ osa_gather_facts | default(True) }}"
user: root
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: common-tasks/set-pip-vars.yml
- name: Check if the git cache exists on deployment host
local_action:
module: stat
path: "{{ repo_build_git_cache }}"
register: _local_git_cache
when: repo_build_git_cache is defined
- include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
vars:
list_of_bind_mounts:
- mount_path: "/openstack/{{ inventory_hostname }}"
bind_dir_path: "/var/www"
when: not is_metal
- include_tasks: common-tasks/unbound-clients.yml
when:
- hostvars['localhost']['resolvconf_enabled'] | bool
roles:
- role: "repo_server"
post_tasks:
- include_tasks: "common-tasks/rsyslog-client.yml"
vars:
rsyslog_client_log_rotate_file: "{{ rsyslog_var.log_rotate_file }}"
rsyslog_client_log_dir: "{{ rsyslog_var.log_dir }}"
rsyslog_client_log_files: "{{ rsyslog_var.log_files | default([]) }}"
rsyslog_client_config_name: "{{ rsyslog_var.config_name }}"
with_items:
- log_rotate_file: pypiserver_log_rotate
log_dir: "/var/log/pypiserver"
config_name: "99-pypiserver-rsyslog-client.conf"
- log_rotate_file: lsyncd_log_rotate
log_dir: "/var/log/lsyncd"
config_name: "99-lsyncd-rsyslog-client.conf"
- log_rotate_file: repo_nginx_log_rotate
log_dir: "/var/log/nginx"
log_files:
- /var/log/rsyncd.log
config_name: "99-repo-nginx-rsyslog-client.conf"
loop_control:
loop_var: rsyslog_var
vars_files:
- defaults/repo_packages/openstack_services.yml
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- repo-server

View File

@ -1,37 +0,0 @@
---
# Copyright 2017, 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.
- name: Configure all nodes to use the repo container for python/apt packages
hosts: "{{ openstack_host_group | default('hosts') }}:all_containers"
vars:
pip_install: no
pip_configure: yes
vars_files:
- "defaults/repo_packages/openstack_services.yml"
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- always
- repo-config
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: common-tasks/package-cache-proxy.yml
- include_tasks: common-tasks/set-pip-vars.yml
roles:
- pip_install

View File

@ -16,10 +16,6 @@
- import_playbook: unbound-install.yml
- import_playbook: repo-install.yml
- import_playbook: haproxy-install.yml
# TODO(evrardjp): Remove the following when repo_build is done
# before lxc_container_create, and haproxy is moved with it as
# second step.
- import_playbook: repo-use.yml
- import_playbook: utility-install.yml
- import_playbook: memcached-install.yml
- import_playbook: galera-install.yml

View File

@ -19,7 +19,10 @@
gather_facts: "{{ osa_gather_facts | default(True) }}"
environment: "{{ deployment_environment_variables | default({}) }}"
vars_files:
- "defaults/repo_packages/openstack_services.yml"
- "defaults/{{ install_method }}_install.yml"
vars:
utility_upper_constraints_url: "{{ requirements_git_url | default('https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=' ~ requirements_git_install_branch | default('master')) }}"
tags:
- utility
pre_tasks:
@ -81,7 +84,7 @@
block:
- name: Get list of repo packages
uri:
url: "{{ repo_release_path }}/requirements_absolute_requirements.txt"
url: "{{ utility_upper_constraints_url }}"
return_content: yes
register: _abs_reqs
run_once: true
@ -93,7 +96,7 @@
_openstack_client_list: >-
{%- set package_list = [] %}
{%- for l in _abs_reqs.content.split('\n') %}
{%- if (l is match('^python_.*client==.*$')) or (l is match('^(aodh|gnocchi)client==.*$')) %}
{%- if (l is match('^python-.*client==.*$')) or (l is match('^(aodh|gnocchi)client==.*$')) %}
{%- set _ = package_list.append(l | regex_replace('==.*$', '')) %}
{%- endif %}
{%- endfor %}
@ -107,14 +110,14 @@
name: "python_venv_build"
vars:
venv_install_destination_path: "{{ utility_venv_bin | dirname }}"
venv_pip_install_args: >-
{{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }}
{{ pip_install_options | default('') }}
venv_pip_install_args: "{{ pip_install_options | default('') }}"
venv_build_constraints:
- "--constraint {{ utility_upper_constraints_url }}"
venv_pip_packages: "{{ _openstack_client_list | union(utility_pip_packages) }}"
- name: Create symlinks for openstack clients
shell: |
{% set _bin_name = item | regex_replace('^(?:python_)?(\w*)(?:client)$', '\\1') %}
{% set _bin_name = item | regex_replace('^(?:python-)?(\w*)(?:client)$', '\\1') %}
if [[ -e "{{ utility_venv_bin }}/{{ _bin_name }}" ]]; then
ln -sfn {{ utility_venv_bin }}/{{ _bin_name }} /usr/local/bin/{{ _bin_name }}
fi

View File

@ -25,10 +25,6 @@
environment: "{{ deployment_environment_variables | default({}) }}"
vars:
ansible_python_interpreter: "/usr/bin/python"
pip_install_upper_constraints_proto: "{{ ansible_python_version | version_compare('2.7.9', '>=') | ternary('https','http') }}"
pip_install_upper_constraints: >-
{{ (playbook_dir ~ '/../global-requirement-pins.txt') | realpath }}
--constraint {{ pip_install_upper_constraints_proto }}://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?id={{ requirements_git_install_branch | regex_replace(' #.*$','') }}
sftp_subsystem:
'apt': 'sftp /usr/lib/openssh/sftp-server'
'yum': 'sftp /usr/libexec/openssh/sftp-server'

View File

@ -78,7 +78,6 @@
echo "lxc_centos_package_baseurl: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/epel-7-x86_64/'" >> ${NODEPOOL_OVERRIDES}
echo "lxc_centos_package_key: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/pubkey.gpg'" >> ${NODEPOOL_OVERRIDES}
echo "nova_virt_type: 'qemu'" >> ${NODEPOOL_OVERRIDES}
echo "repo_build_pip_default_index: '${NODEPOOL_PYPI_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
# NOTE(mnaser): We need to make sure we pull the latest RDO mirror
# which is hashed to avoid cache going stale during CI.
@ -95,17 +94,6 @@
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
tags:
- skip_ansible_lint
- name: Discover the OpenStack-Infra LXC reverse proxy
shell: |
source /etc/ci/mirror_info.sh
@ -133,18 +121,6 @@
- "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,
# the SELinux policy work for CentOS 7 is not done yet.

View File

@ -158,12 +158,6 @@ lxc_net_address: 10.255.255.1
lxc_net_netmask: 255.255.255.0
lxc_net_dhcp_range: 10.255.255.2,10.255.255.253
{% if repo_build_pip_extra_indexes is defined and repo_build_pip_extra_indexes | length > 0 %}
## Wheel mirrors for the repo_build to use
repo_build_pip_extra_indexes:
{{ repo_build_pip_extra_indexes | to_nice_yaml }}
{% endif %}
{% if _lxc_mirror is defined and _lxc_mirror.stdout_lines is defined %}
## images.linuxcontainers.org reverse proxy
lxc_image_cache_server_mirrors:
@ -199,11 +193,6 @@ nova_service_negate:
- "nova-agent.service"
- "nova-resetnetwork.service"
{% if _pypi_wheel_mirror is defined and _pypi_wheel_mirror.stdout_lines is defined %}
repo_build_pip_extra_indexes:
- "{{ _pypi_wheel_mirror.stdout_lines[1] }}"
{% endif %}
# Set all the distros to the same value: a "quiet" print
# of kernel log messages.
openstack_user_kernel_options: