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
853748e63f
commit
08a046d696
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue