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