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:
parent
1f1cca42c5
commit
c0db5c423b
@ -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
|
||||
|
@ -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`
|
||||
|
@ -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
|
||||
------------------------------
|
||||
|
@ -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
|
@ -15,61 +15,3 @@
|
||||
|
||||
# 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
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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:
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user