9f2e802678
The change builds venvs in a single repo container and then ships them to to all targets. The built venvs will be within the repo servers and will allow for faster deployments, upgrades, and more consistent deployments for the life cycle of the deployment. This will create a versioned tarball that will allow for greater visablility into the build process as well as giving deployers/developers the ability to compair a release in place. Change-Id: Ieef0b89ebc009d1453c99e19e53a36eb2d70edae Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
170 lines
4.1 KiB
YAML
170 lines
4.1 KiB
YAML
---
|
|
# 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: Update apt sources
|
|
apt:
|
|
update_cache: yes
|
|
cache_valid_time: 600
|
|
register: apt_update
|
|
until: apt_update|success
|
|
retries: 5
|
|
delay: 2
|
|
tags:
|
|
- keystone-apt-packages
|
|
|
|
- name: Install apt packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: latest
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: keystone_apt_packages
|
|
tags:
|
|
- keystone-install
|
|
- keystone-apt-packages
|
|
|
|
- name: Install IdP apt packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: latest
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: keystone_idp_apt_packages
|
|
when: keystone_idp is defined
|
|
tags:
|
|
- keystone-install
|
|
- keystone-apt-packages
|
|
|
|
- name: Install SP apt packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: latest
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: keystone_sp_apt_packages
|
|
when: keystone_sp is defined
|
|
tags:
|
|
- keystone-install
|
|
- keystone-apt-packages
|
|
|
|
- name: Install requires pip packages
|
|
pip:
|
|
name: "{{ item }}"
|
|
state: present
|
|
extra_args: "{{ pip_install_options|default('') }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items:
|
|
- "{{ keystone_requires_pip_packages }}"
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|
|
|
|
- name: Attempt venv download
|
|
get_url:
|
|
url: "{{ keystone_venv_download_url }}"
|
|
dest: "/var/cache/{{ keystone_venv_download_url | basename }}"
|
|
ignore_errors: true
|
|
register: get_venv
|
|
when: keystone_venv_enabled | bool
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|
|
|
|
- name: Set keystone get_venv fact
|
|
set_fact:
|
|
keystone_get_venv: "{{ get_venv }}"
|
|
when: keystone_venv_enabled | bool
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|
|
|
|
- name: Create keystone venv dir
|
|
file:
|
|
path: "{{ keystone_venv_bin | dirname }}"
|
|
state: directory
|
|
when:
|
|
- keystone_venv_enabled | bool
|
|
- keystone_get_venv | success
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|
|
|
|
- name: Unarchive pre-built venv
|
|
unarchive:
|
|
src: "/var/cache/{{ keystone_venv_download_url | basename }}"
|
|
dest: "{{ keystone_venv_bin | dirname }}"
|
|
copy: "no"
|
|
when:
|
|
- keystone_venv_enabled | bool
|
|
- keystone_get_venv | success
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|
|
|
|
- name: Update virtualenv path
|
|
command: >
|
|
virtualenv-tools --update-path=auto {{ keystone_venv_bin | dirname }}
|
|
when:
|
|
- keystone_venv_enabled | bool
|
|
- keystone_get_venv | success
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|
|
|
|
- name: Install pip packages (venv)
|
|
pip:
|
|
name: "{{ item }}"
|
|
state: present
|
|
virtualenv: "{{ keystone_venv_bin | dirname }}"
|
|
virtualenv_site_packages: "no"
|
|
extra_args: "{{ pip_install_options|default('') }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items:
|
|
- "{{ keystone_pip_packages }}"
|
|
when:
|
|
- keystone_venv_enabled | bool
|
|
- keystone_get_venv | failed
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|
|
|
|
- name: Install pip packages (no venv)
|
|
pip:
|
|
name: "{{ item }}"
|
|
state: present
|
|
extra_args: "{{ pip_install_options|default('') }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items:
|
|
- "{{ keystone_pip_packages }}"
|
|
when: not keystone_venv_enabled | bool
|
|
tags:
|
|
- keystone-install
|
|
- keystone-pip-packages
|