Implement shippable venvs
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>
This commit is contained in:
parent
505d457833
commit
ec9a271e47
@ -32,6 +32,8 @@ nova_venv_enabled: true
|
||||
# system path used when the installing.
|
||||
nova_bin: "{{ nova_venv_bin }}"
|
||||
|
||||
nova_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/nova.tgz
|
||||
|
||||
nova_fatal_deprecations: False
|
||||
|
||||
## System info
|
||||
@ -289,6 +291,7 @@ nova_compute_kvm_apt_packages:
|
||||
# nova packages that must be installed before anything else
|
||||
nova_requires_pip_packages:
|
||||
- virtualenv
|
||||
- virtualenv-tools
|
||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||
|
||||
nova_compute_pip_packages:
|
||||
|
@ -51,7 +51,9 @@
|
||||
delay: 2
|
||||
with_items:
|
||||
- "{{ nova_compute_pip_packages }}"
|
||||
when: nova_venv_enabled | bool
|
||||
when:
|
||||
- nova_venv_enabled | bool
|
||||
- nova_get_venv | failed
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
@ -68,7 +68,9 @@
|
||||
delay: 2
|
||||
with_items:
|
||||
- "{{ nova_novnc_pip_packages }}"
|
||||
when: nova_venv_enabled | bool
|
||||
when:
|
||||
- nova_venv_enabled | bool
|
||||
- nova_get_venv | failed
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
@ -52,6 +52,58 @@
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
||||
- name: Attempt venv download
|
||||
get_url:
|
||||
url: "{{ nova_venv_download_url }}"
|
||||
dest: "/var/cache/{{ nova_venv_download_url | basename }}"
|
||||
ignore_errors: true
|
||||
register: get_venv
|
||||
when: nova_venv_enabled | bool
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
||||
- name: Set nova get_venv fact
|
||||
set_fact:
|
||||
nova_get_venv: "{{ get_venv }}"
|
||||
when: nova_venv_enabled | bool
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
||||
- name: Create nova venv dir
|
||||
file:
|
||||
path: "{{ nova_venv_bin | dirname }}"
|
||||
state: directory
|
||||
when:
|
||||
- nova_venv_enabled | bool
|
||||
- nova_get_venv | success
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
||||
- name: Unarchive pre-built venv
|
||||
unarchive:
|
||||
src: "/var/cache/{{ nova_venv_download_url | basename }}"
|
||||
dest: "{{ nova_venv_bin | dirname }}"
|
||||
copy: "no"
|
||||
when:
|
||||
- nova_venv_enabled | bool
|
||||
- nova_get_venv | success
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
||||
- name: Update virtualenv path
|
||||
command: >
|
||||
virtualenv-tools --update-path=auto {{ nova_venv_bin | dirname }}
|
||||
when:
|
||||
- nova_venv_enabled | bool
|
||||
- nova_get_venv | success
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
||||
- name: Install pip packages (venv)
|
||||
pip:
|
||||
name: "{{ item }}"
|
||||
@ -65,7 +117,9 @@
|
||||
delay: 2
|
||||
with_items:
|
||||
- "{{ nova_pip_packages }}"
|
||||
when: nova_venv_enabled | bool
|
||||
when:
|
||||
- nova_venv_enabled | bool
|
||||
- nova_get_venv | failed
|
||||
tags:
|
||||
- nova-install
|
||||
- nova-pip-packages
|
||||
|
Loading…
x
Reference in New Issue
Block a user