openstack-ansible/playbooks/repo-build.yml
Kevin Carter d9c69b8720 Remove broken conditions when including playbooks
The conditions in our setup playbooks have been broken for a long time
however they've not caused any issues because they're not deprecated
because the use of "When" with playbook includes is simply ignored.
This change removes the conditions which cleans up our setup playbooks.
The conditions to exit or execute a given playbook has been moved into
the playbook. If the condition is not met then the meta tag is used
to exit the playbook and continue.

Change-Id: I4e1c2eb1ebb0dfb01e5c98e0fd13272943e9a97c
Signed-off-by: Kevin Carter <kevin@cloudnull.com>
2019-02-23 06:01:24 +00:00

103 lines
3.1 KiB
YAML

---
# 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