openstack-ansible/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml
Jesse Pretorius adebdb884a Allow the use of a pre-staged git cache
This patch provides the ability for the repo server to take advantage
of a pre-staged git cache on the deployment host, such as that provided
on OpenStack-CI's nodes.

This reduces the execution time of the build process by ensuring that
the git clone process only has to complete an update, instead of a
fresh clone.

The patch includes a change to the AIO bootstrap which checks for the
existance of a git cache in the location it is typically found in
OpenStack-CI. If that path exists it sets the repo_build_git_cache
variable. In a case where the AIO is not being built in OpenStack-CI
then the deployer may either use the same path, or provide the path
as an extra option when bootstrapping.

Change-Id: I0c9d574a7f694cd3772a68fcdc71673616ea8e3b
2016-08-22 15:16:38 +01:00

153 lines
4.6 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: Create the required deployment directories
file:
path: "{{ item }}"
state: directory
with_items:
- "/etc/openstack_deploy/"
- "/etc/openstack_deploy/conf.d"
tags:
- create-directories
- name: Deploy user conf.d configuration
config_template:
src: "../etc/openstack_deploy/conf.d/{{ item.name }}"
dest: "/etc/openstack_deploy/conf.d/{{ item.name | regex_replace('.aio$', '') }}"
config_overrides: "{{ item.override }}"
config_type: "yaml"
with_items:
- name: swift.yml.aio
override: "{{ swift_conf_overrides | default({}) }}"
- name: aodh.yml.aio
override: "{{ aodh_conf_overrides | default({}) }}"
- name: ceilometer.yml.aio
override: "{{ ceilometer_conf_overrides | default({}) }}"
- name: gnocchi.yml.aio
override: "{{ gnocchi_conf_overrides | default({}) }}"
tags:
- deploy-confd
- name: Deploy openstack_user_config
config_template:
src: "../etc/openstack_deploy/openstack_user_config.yml.aio"
dest: "/etc/openstack_deploy/openstack_user_config.yml"
config_overrides: "{{ openstack_user_config_overrides | default({}) }}"
config_type: "yaml"
tags:
- deploy-openstack-user-config
- name: Deploy user_secrets file
config_template:
src: "../etc/openstack_deploy/user_secrets.yml"
dest: "/etc/openstack_deploy/user_secrets.yml"
config_overrides: "{{ user_secrets_overrides | default({}) }}"
config_type: "yaml"
tags:
- deploy-user-secrets
- name: Generate any missing values in user_secrets
shell: ../scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml
tags:
- generate_secrets
- name: Detect whether the host is an OpenStack-CI host
stat:
path: /etc/nodepool
register: nodepool_dir
- name: Set the UCA repository URL in OpenStack-CI
set_fact:
uca_apt_repo_url: "{{ bootstrap_host_ubuntu_repo | netorigin }}/ubuntu-cloud-archive"
when:
- nodepool_dir.stat.exists
- bootstrap_host_ubuntu_repo is defined
- name: Set the package cache timeout to 60 mins in OpenStack-CI
set_fact:
cache_timeout: 3600
when:
- cache_timeout is not defined
- nodepool_dir.stat.exists
- name: Determine if the host has a global pip config file
stat:
path: /etc/pip.conf
register: pip_conf_file
- name: Determine the fastest available OpenStack-Infra wheel mirror
shell: ../scripts/fastest-infra-wheel-mirror.py
register: fastest_wheel_mirror
when: not pip_conf_file.stat.exists
- name: Set repo_build_pip_extra_indexes fact
set_fact:
repo_build_pip_extra_indexes: "[\"{{ fastest_wheel_mirror.stdout }}\"]"
when: not pip_conf_file.stat.exists
- name: Check whether the host has a git cache
stat:
path: /opt/git/openstack
register: _local_git_cache
- name: Set repo_build_git_cache fact
set_fact:
repo_build_git_cache: /opt/git/openstack
when: _local_git_cache.stat.exists
- name: Set the user_variables
config_template:
src: user_variables.aio.yml.j2
dest: /etc/openstack_deploy/user_variables.yml
config_overrides: "{{ user_variables_overrides | default({}) }}"
config_type: yaml
- name: Add user_conf_files to contain the list of files to copy into containers
file:
path: /etc/openstack_deploy/user_conf_files.yml
state: touch
when: pip_conf_file.stat.exists
tags:
- container-conf-files
- name: Ensure that the first line in user_conf_files is correct
lineinfile:
dest: /etc/openstack_deploy/user_conf_files.yml
line: "---"
insertbefore: BOF
when: pip_conf_file.stat.exists
tags:
- container-conf-files
- name: Ensure that the second line in user_conf_files is correct
lineinfile:
dest: /etc/openstack_deploy/user_conf_files.yml
line: "lxc_container_cache_files:"
insertafter: "^---"
when: pip_conf_file.stat.exists
tags:
- container-conf-files
- name: Add the dict to copy the global pip config file into user_conf_files
lineinfile:
dest: /etc/openstack_deploy/user_conf_files.yml
line: " - { src: '/etc/pip.conf', dest: '/etc/pip.conf' }"
when: pip_conf_file.stat.exists
tags:
- container-conf-files