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
|
src: https://git.openstack.org/openstack/ansible-config_template
|
||||||
version: master
|
version: master
|
||||||
trackbranch: 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
|
- name: galera_client
|
||||||
scm: git
|
scm: git
|
||||||
src: https://git.openstack.org/openstack/openstack-ansible-galera_client
|
src: https://git.openstack.org/openstack/openstack-ansible-galera_client
|
||||||
@ -208,11 +203,6 @@
|
|||||||
src: https://git.openstack.org/openstack/openstack-ansible-rabbitmq_server
|
src: https://git.openstack.org/openstack/openstack-ansible-rabbitmq_server
|
||||||
version: master
|
version: master
|
||||||
trackbranch: 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
|
- name: repo_server
|
||||||
scm: git
|
scm: git
|
||||||
src: https://git.openstack.org/openstack/openstack-ansible-repo_server
|
src: https://git.openstack.org/openstack/openstack-ansible-repo_server
|
||||||
|
@ -118,8 +118,6 @@ Infrastructure service roles
|
|||||||
|
|
||||||
- :role_docs:`rabbitmq_server`
|
- :role_docs:`rabbitmq_server`
|
||||||
|
|
||||||
- :role_docs:`repo_build`
|
|
||||||
|
|
||||||
- :role_docs:`repo_server`
|
- :role_docs:`repo_server`
|
||||||
|
|
||||||
- :role_docs:`rsyslog_server`
|
- :role_docs:`rsyslog_server`
|
||||||
@ -184,8 +182,6 @@ Other roles
|
|||||||
|
|
||||||
- :role_docs:`lxc_hosts`
|
- :role_docs:`lxc_hosts`
|
||||||
|
|
||||||
- :role_docs:`pip_install`
|
|
||||||
|
|
||||||
- :role_docs:`plugins`
|
- :role_docs:`plugins`
|
||||||
|
|
||||||
- :role_docs:`openstack_hosts`
|
- :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
|
a significant amount of storage. Alternatively a caching pip proxy
|
||||||
can be used to retain local copies of only those packages which are required.
|
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
|
In order to configure the build to use an alternative index, create the file
|
||||||
proxy:
|
`/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
|
.. code-block:: yaml
|
||||||
|
|
||||||
# Custom upstream pip index used when building repo server contents
|
# Copy these files from the host into the containers
|
||||||
repo_build_pip_default_index: http://pip.example.org/simple
|
lxc_container_cache_files_from_host:
|
||||||
|
- /etc/pip.conf
|
||||||
|
|
||||||
Distribution specific packages
|
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
|
# Ensure that the package state matches the global setting
|
||||||
repo_server_package_state: "{{ package_state }}"
|
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:
|
pre_tasks:
|
||||||
- include_tasks: common-tasks/package-cache-proxy.yml
|
- include_tasks: common-tasks/package-cache-proxy.yml
|
||||||
when: install_method == "source"
|
when: install_method == "source"
|
||||||
- include_tasks: common-tasks/set-pip-vars.yml
|
|
||||||
when: install_method == "source"
|
|
||||||
roles:
|
roles:
|
||||||
- role: "openstack_hosts"
|
- role: "openstack_hosts"
|
||||||
is_container: true
|
is_container: true
|
||||||
|
@ -24,8 +24,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- lxc-hosts
|
- lxc-hosts
|
||||||
pre_tasks:
|
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
|
- name: Check the state of the default LXC service log directory
|
||||||
stat:
|
stat:
|
||||||
path: "/var/log/lxc"
|
path: "/var/log/lxc"
|
||||||
|
@ -110,9 +110,6 @@
|
|||||||
|
|
||||||
- include_tasks: common-tasks/package-cache-proxy.yml
|
- include_tasks: common-tasks/package-cache-proxy.yml
|
||||||
when: install_method == "source"
|
when: install_method == "source"
|
||||||
|
|
||||||
- include_tasks: common-tasks/set-pip-vars.yml
|
|
||||||
when: install_method == "source"
|
|
||||||
roles:
|
roles:
|
||||||
- role: "openstack_hosts"
|
- role: "openstack_hosts"
|
||||||
is_container: true
|
is_container: true
|
||||||
|
@ -65,8 +65,3 @@ trove_install_method: distro
|
|||||||
watcher_install_method: distro
|
watcher_install_method: distro
|
||||||
zaqar_install_method: distro
|
zaqar_install_method: distro
|
||||||
zun_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 source options
|
||||||
openstack_repo_url: "http://{{ internal_lb_vip_address }}:{{ repo_server_port }}"
|
openstack_repo_url: "http://{{ internal_lb_vip_address }}:{{ repo_server_port }}"
|
||||||
openstack_repo_git_url: "git://{{ internal_lb_vip_address }}"
|
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_install_destination_path: "{{ venv_path }}"
|
||||||
venv_pip_packages:
|
venv_pip_packages:
|
||||||
- pika
|
- 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
|
- name: Copying test script
|
||||||
copy:
|
copy:
|
||||||
src: "../scripts/rabbitmq-test.py"
|
src: "../scripts/rabbitmq-test.py"
|
||||||
|
@ -52,8 +52,6 @@
|
|||||||
|
|
||||||
- include_tasks: common-tasks/package-cache-proxy.yml
|
- include_tasks: common-tasks/package-cache-proxy.yml
|
||||||
when: install_method == "source"
|
when: install_method == "source"
|
||||||
- include_tasks: common-tasks/set-pip-vars.yml
|
|
||||||
when: install_method == "source"
|
|
||||||
roles:
|
roles:
|
||||||
- role: "openstack_hosts"
|
- role: "openstack_hosts"
|
||||||
vars_files:
|
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
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
- import_playbook: repo-server.yml
|
- name: Setup repo servers
|
||||||
- import_playbook: repo-build.yml
|
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: unbound-install.yml
|
||||||
- import_playbook: repo-install.yml
|
- import_playbook: repo-install.yml
|
||||||
- import_playbook: haproxy-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: utility-install.yml
|
||||||
- import_playbook: memcached-install.yml
|
- import_playbook: memcached-install.yml
|
||||||
- import_playbook: galera-install.yml
|
- import_playbook: galera-install.yml
|
||||||
|
@ -19,7 +19,10 @@
|
|||||||
gather_facts: "{{ osa_gather_facts | default(True) }}"
|
gather_facts: "{{ osa_gather_facts | default(True) }}"
|
||||||
environment: "{{ deployment_environment_variables | default({}) }}"
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
||||||
vars_files:
|
vars_files:
|
||||||
|
- "defaults/repo_packages/openstack_services.yml"
|
||||||
- "defaults/{{ install_method }}_install.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:
|
tags:
|
||||||
- utility
|
- utility
|
||||||
pre_tasks:
|
pre_tasks:
|
||||||
@ -81,7 +84,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Get list of repo packages
|
- name: Get list of repo packages
|
||||||
uri:
|
uri:
|
||||||
url: "{{ repo_release_path }}/requirements_absolute_requirements.txt"
|
url: "{{ utility_upper_constraints_url }}"
|
||||||
return_content: yes
|
return_content: yes
|
||||||
register: _abs_reqs
|
register: _abs_reqs
|
||||||
run_once: true
|
run_once: true
|
||||||
@ -93,7 +96,7 @@
|
|||||||
_openstack_client_list: >-
|
_openstack_client_list: >-
|
||||||
{%- set package_list = [] %}
|
{%- set package_list = [] %}
|
||||||
{%- for l in _abs_reqs.content.split('\n') %}
|
{%- 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('==.*$', '')) %}
|
{%- set _ = package_list.append(l | regex_replace('==.*$', '')) %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
@ -107,14 +110,14 @@
|
|||||||
name: "python_venv_build"
|
name: "python_venv_build"
|
||||||
vars:
|
vars:
|
||||||
venv_install_destination_path: "{{ utility_venv_bin | dirname }}"
|
venv_install_destination_path: "{{ utility_venv_bin | dirname }}"
|
||||||
venv_pip_install_args: >-
|
venv_pip_install_args: "{{ pip_install_options | default('') }}"
|
||||||
{{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }}
|
venv_build_constraints:
|
||||||
{{ pip_install_options | default('') }}
|
- "--constraint {{ utility_upper_constraints_url }}"
|
||||||
venv_pip_packages: "{{ _openstack_client_list | union(utility_pip_packages) }}"
|
venv_pip_packages: "{{ _openstack_client_list | union(utility_pip_packages) }}"
|
||||||
|
|
||||||
- name: Create symlinks for openstack clients
|
- name: Create symlinks for openstack clients
|
||||||
shell: |
|
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
|
if [[ -e "{{ utility_venv_bin }}/{{ _bin_name }}" ]]; then
|
||||||
ln -sfn {{ utility_venv_bin }}/{{ _bin_name }} /usr/local/bin/{{ _bin_name }}
|
ln -sfn {{ utility_venv_bin }}/{{ _bin_name }} /usr/local/bin/{{ _bin_name }}
|
||||||
fi
|
fi
|
||||||
|
@ -25,10 +25,6 @@
|
|||||||
environment: "{{ deployment_environment_variables | default({}) }}"
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
||||||
vars:
|
vars:
|
||||||
ansible_python_interpreter: "/usr/bin/python"
|
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:
|
sftp_subsystem:
|
||||||
'apt': 'sftp /usr/lib/openssh/sftp-server'
|
'apt': 'sftp /usr/lib/openssh/sftp-server'
|
||||||
'yum': 'sftp /usr/libexec/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_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 "lxc_centos_package_key: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/pubkey.gpg'" >> ${NODEPOOL_OVERRIDES}
|
||||||
echo "nova_virt_type: 'qemu'" >> ${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
|
# NOTE(mnaser): We need to make sure we pull the latest RDO mirror
|
||||||
# which is hashed to avoid cache going stale during CI.
|
# which is hashed to avoid cache going stale during CI.
|
||||||
@ -95,17 +94,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- 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
|
- name: Discover the OpenStack-Infra LXC reverse proxy
|
||||||
shell: |
|
shell: |
|
||||||
source /etc/ci/mirror_info.sh
|
source /etc/ci/mirror_info.sh
|
||||||
@ -133,18 +121,6 @@
|
|||||||
- "91.189.91.21 images.linuxcontainers.org us.images.linuxcontainers.org"
|
- "91.189.91.21 images.linuxcontainers.org us.images.linuxcontainers.org"
|
||||||
- "91.189.88.37 images.linuxcontainers.org uk.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
|
# 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,
|
# Enforcing mode by default. While I am normally a supporter of this change,
|
||||||
# the SELinux policy work for CentOS 7 is not done yet.
|
# 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_netmask: 255.255.255.0
|
||||||
lxc_net_dhcp_range: 10.255.255.2,10.255.255.253
|
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 %}
|
{% if _lxc_mirror is defined and _lxc_mirror.stdout_lines is defined %}
|
||||||
## images.linuxcontainers.org reverse proxy
|
## images.linuxcontainers.org reverse proxy
|
||||||
lxc_image_cache_server_mirrors:
|
lxc_image_cache_server_mirrors:
|
||||||
@ -199,11 +193,6 @@ nova_service_negate:
|
|||||||
- "nova-agent.service"
|
- "nova-agent.service"
|
||||||
- "nova-resetnetwork.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
|
# Set all the distros to the same value: a "quiet" print
|
||||||
# of kernel log messages.
|
# of kernel log messages.
|
||||||
openstack_user_kernel_options:
|
openstack_user_kernel_options:
|
||||||
|
Loading…
Reference in New Issue
Block a user