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:
Kevin Carter 2015-10-16 22:22:14 -05:00
parent 853748e63f
commit 08a046d696
2 changed files with 58 additions and 1 deletions

View File

@ -29,6 +29,8 @@ ceilometer_venv_enabled: true
# system path used when the installing.
ceilometer_bin: "{{ ceilometer_venv_bin }}"
ceilometer_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/ceilometer.tgz
## System info
ceilometer_system_user_name: ceilometer
ceilometer_system_group_name: ceilometer
@ -87,6 +89,7 @@ ceilometer_apt_packages:
# ceilometer packages that must be installed before anything else
ceilometer_requires_pip_packages:
- virtualenv
- virtualenv-tools
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
# Common pip packages

View File

@ -43,6 +43,58 @@
- ceilometer-install
- ceilometer-pip-packages
- name: Attempt venv download
get_url:
url: "{{ ceilometer_venv_download_url }}"
dest: "/var/cache/{{ ceilometer_venv_download_url | basename }}"
ignore_errors: true
register: get_venv
when: ceilometer_venv_enabled | bool
tags:
- ceilometer-install
- ceilometer-pip-packages
- name: Set ceilometer get_venv fact
set_fact:
ceilometer_get_venv: "{{ get_venv }}"
when: ceilometer_venv_enabled | bool
tags:
- ceilometer-install
- ceilometer-pip-packages
- name: Create ceilometer venv dir
file:
path: "{{ ceilometer_venv_bin | dirname }}"
state: directory
when:
- ceilometer_venv_enabled | bool
- ceilometer_get_venv | success
tags:
- ceilometer-install
- ceilometer-pip-packages
- name: Unarchive pre-built venv
unarchive:
src: "/var/cache/{{ ceilometer_venv_download_url | basename }}"
dest: "{{ ceilometer_venv_bin | dirname }}"
copy: "no"
when:
- ceilometer_venv_enabled | bool
- ceilometer_get_venv | success
tags:
- ceilometer-install
- ceilometer-pip-packages
- name: Update virtualenv path
command: >
virtualenv-tools --update-path=auto {{ ceilometer_venv_bin | dirname }}
when:
- ceilometer_venv_enabled | bool
- ceilometer_get_venv | success
tags:
- ceilometer-install
- ceilometer-pip-packages
- name: Install pip packages (venv)
pip:
name: "{{ item }}"
@ -56,7 +108,9 @@
delay: 2
with_items:
- "{{ ceilometer_pip_packages }}"
when: ceilometer_venv_enabled | bool
when:
- ceilometer_venv_enabled | bool
- ceilometer_get_venv | failed
tags:
- ceilometer-install
- ceilometer-pip-packages