Merge "Implement shippable venvs"
This commit is contained in:
commit
2c00d6b7b5
@ -63,6 +63,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- role: "os_aodh"
|
- role: "os_aodh"
|
||||||
aodh_venv_tag: "{{ openstack_release }}"
|
aodh_venv_tag: "{{ openstack_release }}"
|
||||||
|
aodh_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/aodh-{{ openstack_release }}.tgz"
|
||||||
tags:
|
tags:
|
||||||
- "os-aodh"
|
- "os-aodh"
|
||||||
- { role: "openstack_openrc", tags: [ "openstack-openrc" ] }
|
- { role: "openstack_openrc", tags: [ "openstack-openrc" ] }
|
||||||
|
@ -74,6 +74,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- role: "os_ceilometer"
|
- role: "os_ceilometer"
|
||||||
ceilometer_venv_tag: "{{ openstack_release }}"
|
ceilometer_venv_tag: "{{ openstack_release }}"
|
||||||
|
ceilometer_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/ceilometer-{{ openstack_release }}.tgz"
|
||||||
tags:
|
tags:
|
||||||
- "os-ceilometer"
|
- "os-ceilometer"
|
||||||
- { role: "openstack_openrc", tags: [ "openstack-openrc" ] }
|
- { role: "openstack_openrc", tags: [ "openstack-openrc" ] }
|
||||||
|
@ -157,6 +157,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- role: "os_cinder"
|
- role: "os_cinder"
|
||||||
cinder_venv_tag: "{{ openstack_release }}"
|
cinder_venv_tag: "{{ openstack_release }}"
|
||||||
|
cinder_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/cinder-{{ openstack_release }}.tgz"
|
||||||
cinder_galera_address: "{{ internal_lb_vip_address }}"
|
cinder_galera_address: "{{ internal_lb_vip_address }}"
|
||||||
cinder_storage_address: "{{ container_address }}"
|
cinder_storage_address: "{{ container_address }}"
|
||||||
cinder_glance_host: "{{ internal_lb_vip_address }}"
|
cinder_glance_host: "{{ internal_lb_vip_address }}"
|
||||||
|
@ -92,6 +92,7 @@
|
|||||||
- role: "os_glance"
|
- role: "os_glance"
|
||||||
glance_galera_address: "{{ galera_address }}"
|
glance_galera_address: "{{ galera_address }}"
|
||||||
glance_venv_tag: "{{ openstack_release }}"
|
glance_venv_tag: "{{ openstack_release }}"
|
||||||
|
glance_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/glance-{{ openstack_release }}.tgz"
|
||||||
tags:
|
tags:
|
||||||
- "os-glance"
|
- "os-glance"
|
||||||
- { role: "openstack_openrc", tags: [ "openstack-openrc" ] }
|
- { role: "openstack_openrc", tags: [ "openstack-openrc" ] }
|
||||||
|
@ -74,6 +74,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- role: "os_heat"
|
- role: "os_heat"
|
||||||
heat_venv_tag: "{{ openstack_release }}"
|
heat_venv_tag: "{{ openstack_release }}"
|
||||||
|
heat_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/heat-{{ openstack_release }}.tgz"
|
||||||
heat_galera_address: "{{ galera_address }}"
|
heat_galera_address: "{{ galera_address }}"
|
||||||
tags:
|
tags:
|
||||||
- "os-heat"
|
- "os-heat"
|
||||||
|
@ -76,6 +76,7 @@
|
|||||||
horizon_galera_address: "{{ galera_address }}"
|
horizon_galera_address: "{{ galera_address }}"
|
||||||
horizon_server_name: "{{ container_name }}"
|
horizon_server_name: "{{ container_name }}"
|
||||||
horizon_venv_tag: "{{ openstack_release }}"
|
horizon_venv_tag: "{{ openstack_release }}"
|
||||||
|
horizon_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/horizon-{{ openstack_release }}.tgz"
|
||||||
tags:
|
tags:
|
||||||
- "os-horizon"
|
- "os-horizon"
|
||||||
- role: "rsyslog_client"
|
- role: "rsyslog_client"
|
||||||
|
@ -74,6 +74,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- role: "os_keystone"
|
- role: "os_keystone"
|
||||||
keystone_venv_tag: "{{ openstack_release }}"
|
keystone_venv_tag: "{{ openstack_release }}"
|
||||||
|
keystone_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/keystone-{{ openstack_release }}.tgz"
|
||||||
keystone_galera_address: "{{ galera_address }}"
|
keystone_galera_address: "{{ galera_address }}"
|
||||||
tags:
|
tags:
|
||||||
- "os-keystone"
|
- "os-keystone"
|
||||||
|
@ -125,6 +125,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- role: "os_neutron"
|
- role: "os_neutron"
|
||||||
neutron_venv_tag: "{{ openstack_release }}"
|
neutron_venv_tag: "{{ openstack_release }}"
|
||||||
|
neutron_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/neutron-{{ openstack_release }}.tgz"
|
||||||
neutron_galera_address: "{{ galera_address }}"
|
neutron_galera_address: "{{ galera_address }}"
|
||||||
neutron_local_ip: "{{ _local_ip }}"
|
neutron_local_ip: "{{ _local_ip }}"
|
||||||
neutron_overlay_network: "{{ _overlay_network }}"
|
neutron_overlay_network: "{{ _overlay_network }}"
|
||||||
|
@ -160,6 +160,7 @@
|
|||||||
nova_galera_address: "{{ internal_lb_vip_address }}"
|
nova_galera_address: "{{ internal_lb_vip_address }}"
|
||||||
nova_management_address: "{{ management_address }}"
|
nova_management_address: "{{ management_address }}"
|
||||||
nova_venv_tag: "{{ openstack_release }}"
|
nova_venv_tag: "{{ openstack_release }}"
|
||||||
|
nova_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/nova-{{ openstack_release }}.tgz"
|
||||||
tags:
|
tags:
|
||||||
- "os-nova"
|
- "os-nova"
|
||||||
- role: "ceph_client"
|
- role: "ceph_client"
|
||||||
|
@ -133,6 +133,7 @@
|
|||||||
roles:
|
roles:
|
||||||
- role: "os_swift"
|
- role: "os_swift"
|
||||||
swift_venv_tag: "{{ openstack_release }}"
|
swift_venv_tag: "{{ openstack_release }}"
|
||||||
|
swift_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/swift-{{ openstack_release }}.tgz"
|
||||||
swift_storage_address: "{{ storage_address }}"
|
swift_storage_address: "{{ storage_address }}"
|
||||||
swift_replication_address: "{{ replication_address }}"
|
swift_replication_address: "{{ replication_address }}"
|
||||||
tags:
|
tags:
|
||||||
|
@ -18,7 +18,11 @@
|
|||||||
max_fail_percentage: 20
|
max_fail_percentage: 20
|
||||||
user: root
|
user: root
|
||||||
roles:
|
roles:
|
||||||
- { role: "os_tempest", tags: [ "os-tempest" ] }
|
- role: "os_tempest"
|
||||||
|
tempest_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/tempest-{{ openstack_release }}.tgz"
|
||||||
|
tempest_git_repo: "{{ openstack_repo_git_url }}/tempest"
|
||||||
|
tags:
|
||||||
|
- "os-tempest"
|
||||||
- role: "rsyslog_client"
|
- role: "rsyslog_client"
|
||||||
rsyslog_client_log_rotate_file: utility_log_rotate
|
rsyslog_client_log_rotate_file: utility_log_rotate
|
||||||
rsyslog_client_log_dir: "/var/log/utility"
|
rsyslog_client_log_dir: "/var/log/utility"
|
||||||
|
@ -107,6 +107,7 @@ class DependencyFileProcessor(object):
|
|||||||
self.pip = dict()
|
self.pip = dict()
|
||||||
self.pip['git_package'] = list()
|
self.pip['git_package'] = list()
|
||||||
self.pip['py_package'] = list()
|
self.pip['py_package'] = list()
|
||||||
|
self.pip['role_packages'] = dict()
|
||||||
self.git_pip_install = 'git+%s@%s'
|
self.git_pip_install = 'git+%s@%s'
|
||||||
self.file_names = self._get_files(path=local_path)
|
self.file_names = self._get_files(path=local_path)
|
||||||
|
|
||||||
@ -231,6 +232,7 @@ class DependencyFileProcessor(object):
|
|||||||
ext=ext
|
ext=ext
|
||||||
)
|
)
|
||||||
|
|
||||||
|
role_name = None
|
||||||
for file_name in file_names:
|
for file_name in file_names:
|
||||||
with open(file_name, 'rb') as f:
|
with open(file_name, 'rb') as f:
|
||||||
# If there is an exception loading the file continue
|
# If there is an exception loading the file continue
|
||||||
@ -244,6 +246,11 @@ class DependencyFileProcessor(object):
|
|||||||
if not loaded_config:
|
if not loaded_config:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if 'roles' in file_name:
|
||||||
|
_role_name = file_name.split('roles%s' % os.sep)[-1]
|
||||||
|
role_name = _role_name.split(os.sep)[0]
|
||||||
|
|
||||||
|
|
||||||
for key, values in loaded_config.items():
|
for key, values in loaded_config.items():
|
||||||
# This conditional is set to ensure we're not processes git repos
|
# This conditional is set to ensure we're not processes git repos
|
||||||
# from the defaults file which may conflict with what is being set
|
# from the defaults file which may conflict with what is being set
|
||||||
@ -258,6 +265,17 @@ class DependencyFileProcessor(object):
|
|||||||
if [i for i in BUILT_IN_PIP_PACKAGE_VARS if i in key]:
|
if [i for i in BUILT_IN_PIP_PACKAGE_VARS if i in key]:
|
||||||
self.pip['py_package'].extend(values)
|
self.pip['py_package'].extend(values)
|
||||||
|
|
||||||
|
if role_name:
|
||||||
|
if not role_name in self.pip['role_packages']:
|
||||||
|
self.pip['role_packages'][role_name] = values
|
||||||
|
else:
|
||||||
|
self.pip['role_packages'][role_name].extend(values)
|
||||||
|
self.pip['role_packages'][role_name] = list(
|
||||||
|
set(
|
||||||
|
self.pip['role_packages'][role_name]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _abs_path(path):
|
def _abs_path(path):
|
||||||
return os.path.abspath(
|
return os.path.abspath(
|
||||||
@ -334,5 +352,6 @@ class LookupModule(object):
|
|||||||
) for i in return_data['remote_packages']
|
) for i in return_data['remote_packages']
|
||||||
]
|
]
|
||||||
return_data['remote_package_parts'] = remote_package_parts
|
return_data['remote_package_parts'] = remote_package_parts
|
||||||
|
return_data['role_packages'] = dfp.pip['role_packages']
|
||||||
|
|
||||||
return [return_data]
|
return [return_data]
|
||||||
|
@ -31,6 +31,9 @@
|
|||||||
- repo-set-requirement-names-filtered
|
- repo-set-requirement-names-filtered
|
||||||
- repo-set-constraints
|
- repo-set-constraints
|
||||||
- repo-build-constraints-file
|
- repo-build-constraints-file
|
||||||
|
- repo-create-venv-archive
|
||||||
|
- repo-venv-compress-archive
|
||||||
|
- repo-build-venvs
|
||||||
roles:
|
roles:
|
||||||
- role: "repo_build"
|
- role: "repo_build"
|
||||||
repo_build_release_tag: "{{ openstack_release }}"
|
repo_build_release_tag: "{{ openstack_release }}"
|
||||||
|
@ -29,6 +29,8 @@ aodh_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
aodh_bin: "{{ aodh_venv_bin }}"
|
aodh_bin: "{{ aodh_venv_bin }}"
|
||||||
|
|
||||||
|
aodh_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/aodh.tgz
|
||||||
|
|
||||||
## System info
|
## System info
|
||||||
aodh_system_user_name: aodh
|
aodh_system_user_name: aodh
|
||||||
aodh_system_group_name: aodh
|
aodh_system_group_name: aodh
|
||||||
@ -85,6 +87,7 @@ aodh_apt_packages:
|
|||||||
# aodh packages that must be installed before anything else
|
# aodh packages that must be installed before anything else
|
||||||
aodh_requires_pip_packages:
|
aodh_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
# Common pip packages
|
# Common pip packages
|
||||||
|
@ -43,6 +43,58 @@
|
|||||||
- aodh-install
|
- aodh-install
|
||||||
- aodh-pip-packages
|
- aodh-pip-packages
|
||||||
|
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ aodh_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ aodh_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when: aodh_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- aodh-install
|
||||||
|
- aodh-pip-packages
|
||||||
|
|
||||||
|
- name: Set aodh get_venv fact
|
||||||
|
set_fact:
|
||||||
|
aodh_get_venv: "{{ get_venv }}"
|
||||||
|
when: aodh_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- aodh-install
|
||||||
|
- aodh-pip-packages
|
||||||
|
|
||||||
|
- name: Create aodh venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ aodh_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- aodh_venv_enabled | bool
|
||||||
|
- aodh_get_venv | success
|
||||||
|
tags:
|
||||||
|
- aodh-install
|
||||||
|
- aodh-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ aodh_venv_download_url | basename }}"
|
||||||
|
dest: "{{ aodh_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- aodh_venv_enabled | bool
|
||||||
|
- aodh_get_venv | success
|
||||||
|
tags:
|
||||||
|
- aodh-install
|
||||||
|
- aodh-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ aodh_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- aodh_venv_enabled | bool
|
||||||
|
- aodh_get_venv | success
|
||||||
|
tags:
|
||||||
|
- aodh-install
|
||||||
|
- aodh-pip-packages
|
||||||
|
|
||||||
- name: Install pip packages (venv)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -56,7 +108,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ aodh_pip_packages }}"
|
- "{{ aodh_pip_packages }}"
|
||||||
when: aodh_venv_enabled | bool
|
when:
|
||||||
|
- aodh_venv_enabled | bool
|
||||||
|
- aodh_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- aodh-install
|
- aodh-install
|
||||||
- aodh-pip-packages
|
- aodh-pip-packages
|
||||||
|
@ -29,6 +29,8 @@ ceilometer_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
ceilometer_bin: "{{ ceilometer_venv_bin }}"
|
ceilometer_bin: "{{ ceilometer_venv_bin }}"
|
||||||
|
|
||||||
|
ceilometer_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/ceilometer.tgz
|
||||||
|
|
||||||
## System info
|
## System info
|
||||||
ceilometer_system_user_name: ceilometer
|
ceilometer_system_user_name: ceilometer
|
||||||
ceilometer_system_group_name: ceilometer
|
ceilometer_system_group_name: ceilometer
|
||||||
@ -87,6 +89,7 @@ ceilometer_apt_packages:
|
|||||||
# ceilometer packages that must be installed before anything else
|
# ceilometer packages that must be installed before anything else
|
||||||
ceilometer_requires_pip_packages:
|
ceilometer_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
# Common pip packages
|
# Common pip packages
|
||||||
|
@ -43,6 +43,58 @@
|
|||||||
- ceilometer-install
|
- ceilometer-install
|
||||||
- ceilometer-pip-packages
|
- 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)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -56,7 +108,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ ceilometer_pip_packages }}"
|
- "{{ ceilometer_pip_packages }}"
|
||||||
when: ceilometer_venv_enabled | bool
|
when:
|
||||||
|
- ceilometer_venv_enabled | bool
|
||||||
|
- ceilometer_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- ceilometer-install
|
- ceilometer-install
|
||||||
- ceilometer-pip-packages
|
- ceilometer-pip-packages
|
||||||
|
@ -28,6 +28,8 @@ cinder_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
cinder_bin: "{{ cinder_venv_bin }}"
|
cinder_bin: "{{ cinder_venv_bin }}"
|
||||||
|
|
||||||
|
cinder_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/cinder.tgz
|
||||||
|
|
||||||
# Enable/Disable Ceilometer
|
# Enable/Disable Ceilometer
|
||||||
cinder_ceilometer_enabled: False
|
cinder_ceilometer_enabled: False
|
||||||
|
|
||||||
@ -226,6 +228,7 @@ cinder_apt_packages:
|
|||||||
# Cinder packages that must be installed before anything else
|
# Cinder packages that must be installed before anything else
|
||||||
cinder_requires_pip_packages:
|
cinder_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
# Common pip packages
|
# Common pip packages
|
||||||
|
@ -52,6 +52,58 @@
|
|||||||
- cinder-install
|
- cinder-install
|
||||||
- cinder-pip-packages
|
- cinder-pip-packages
|
||||||
|
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ cinder_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ cinder_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when: cinder_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- cinder-install
|
||||||
|
- cinder-pip-packages
|
||||||
|
|
||||||
|
- name: Set cinder get_venv fact
|
||||||
|
set_fact:
|
||||||
|
cinder_get_venv: "{{ get_venv }}"
|
||||||
|
when: cinder_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- cinder-install
|
||||||
|
- cinder-pip-packages
|
||||||
|
|
||||||
|
- name: Create cinder venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ cinder_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- cinder_venv_enabled | bool
|
||||||
|
- cinder_get_venv | success
|
||||||
|
tags:
|
||||||
|
- cinder-install
|
||||||
|
- cinder-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ cinder_venv_download_url | basename }}"
|
||||||
|
dest: "{{ cinder_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- cinder_venv_enabled | bool
|
||||||
|
- cinder_get_venv | success
|
||||||
|
tags:
|
||||||
|
- cinder-install
|
||||||
|
- cinder-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ cinder_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- cinder_venv_enabled | bool
|
||||||
|
- cinder_get_venv | success
|
||||||
|
tags:
|
||||||
|
- cinder-install
|
||||||
|
- cinder-pip-packages
|
||||||
|
|
||||||
- name: Install pip packages (venv)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -65,7 +117,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ cinder_pip_packages }}"
|
- "{{ cinder_pip_packages }}"
|
||||||
when: cinder_venv_enabled | bool
|
when:
|
||||||
|
- cinder_venv_enabled | bool
|
||||||
|
- cinder_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- cinder-install
|
- cinder-install
|
||||||
- cinder-pip-packages
|
- cinder-pip-packages
|
||||||
|
@ -37,6 +37,8 @@ glance_venv_etc_dir: "{{ glance_bin | dirname }}/etc/glance"
|
|||||||
glance_non_venv_etc_dir: "/usr/local/etc/glance"
|
glance_non_venv_etc_dir: "/usr/local/etc/glance"
|
||||||
glance_etc_dir: "{{ (glance_venv_enabled | bool) | ternary(glance_venv_etc_dir, glance_non_venv_etc_dir) }}"
|
glance_etc_dir: "{{ (glance_venv_enabled | bool) | ternary(glance_venv_etc_dir, glance_non_venv_etc_dir) }}"
|
||||||
|
|
||||||
|
glance_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/glance.tgz
|
||||||
|
|
||||||
# Enable/Disable Ceilometer
|
# Enable/Disable Ceilometer
|
||||||
glance_ceilometer_enabled: False
|
glance_ceilometer_enabled: False
|
||||||
|
|
||||||
@ -175,6 +177,7 @@ glance_apt_packages:
|
|||||||
# Cinder packages that must be installed before anything else
|
# Cinder packages that must be installed before anything else
|
||||||
glance_requires_pip_packages:
|
glance_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
# Common pip packages
|
# Common pip packages
|
||||||
|
@ -52,6 +52,58 @@
|
|||||||
- glance-install
|
- glance-install
|
||||||
- glance-pip-packages
|
- glance-pip-packages
|
||||||
|
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ glance_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ glance_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when: glance_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- glance-install
|
||||||
|
- glance-pip-packages
|
||||||
|
|
||||||
|
- name: Set glance get_venv fact
|
||||||
|
set_fact:
|
||||||
|
glance_get_venv: "{{ get_venv }}"
|
||||||
|
when: glance_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- glance-install
|
||||||
|
- glance-pip-packages
|
||||||
|
|
||||||
|
- name: Create glance venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ glance_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- glance_venv_enabled | bool
|
||||||
|
- glance_get_venv | success
|
||||||
|
tags:
|
||||||
|
- glance-install
|
||||||
|
- glance-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ glance_venv_download_url | basename }}"
|
||||||
|
dest: "{{ glance_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- glance_venv_enabled | bool
|
||||||
|
- glance_get_venv | success
|
||||||
|
tags:
|
||||||
|
- glance-install
|
||||||
|
- glance-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ glance_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- glance_venv_enabled | bool
|
||||||
|
- glance_get_venv | success
|
||||||
|
tags:
|
||||||
|
- glance-install
|
||||||
|
- glance-pip-packages
|
||||||
|
|
||||||
- name: Install pip packages (venv)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -65,7 +117,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ glance_pip_packages }}"
|
- "{{ glance_pip_packages }}"
|
||||||
when: glance_venv_enabled | bool
|
when:
|
||||||
|
- glance_venv_enabled | bool
|
||||||
|
- glance_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- glance-install
|
- glance-install
|
||||||
- glance-pip-packages
|
- glance-pip-packages
|
||||||
|
@ -35,6 +35,8 @@ heat_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
heat_bin: "{{ heat_venv_bin }}"
|
heat_bin: "{{ heat_venv_bin }}"
|
||||||
|
|
||||||
|
heat_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/heat.tgz
|
||||||
|
|
||||||
heat_fatal_deprecations: False
|
heat_fatal_deprecations: False
|
||||||
|
|
||||||
heat_clients_endpoint: internalURL
|
heat_clients_endpoint: internalURL
|
||||||
@ -157,6 +159,7 @@ heat_apt_packages:
|
|||||||
# Heat packages that must be installed before anything else
|
# Heat packages that must be installed before anything else
|
||||||
heat_requires_pip_packages:
|
heat_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
# Common pip packages
|
# Common pip packages
|
||||||
|
@ -52,6 +52,58 @@
|
|||||||
- heat-install
|
- heat-install
|
||||||
- heat-pip-packages
|
- heat-pip-packages
|
||||||
|
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ heat_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ heat_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when: heat_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- heat-install
|
||||||
|
- heat-pip-packages
|
||||||
|
|
||||||
|
- name: Set heat get_venv fact
|
||||||
|
set_fact:
|
||||||
|
heat_get_venv: "{{ get_venv }}"
|
||||||
|
when: heat_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- heat-install
|
||||||
|
- heat-pip-packages
|
||||||
|
|
||||||
|
- name: Create heat venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ heat_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- heat_venv_enabled | bool
|
||||||
|
- heat_get_venv | success
|
||||||
|
tags:
|
||||||
|
- heat-install
|
||||||
|
- heat-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ heat_venv_download_url | basename }}"
|
||||||
|
dest: "{{ heat_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- heat_venv_enabled | bool
|
||||||
|
- heat_get_venv | success
|
||||||
|
tags:
|
||||||
|
- heat-install
|
||||||
|
- heat-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ heat_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- heat_venv_enabled | bool
|
||||||
|
- heat_get_venv | success
|
||||||
|
tags:
|
||||||
|
- heat-install
|
||||||
|
- heat-pip-packages
|
||||||
|
|
||||||
- name: Install pip packages (venv)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -65,7 +117,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ heat_pip_packages }}"
|
- "{{ heat_pip_packages }}"
|
||||||
when: heat_venv_enabled | bool
|
when:
|
||||||
|
- heat_venv_enabled | bool
|
||||||
|
- heat_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- heat-install
|
- heat-install
|
||||||
- heat-pip-packages
|
- heat-pip-packages
|
||||||
|
@ -29,6 +29,8 @@ horizon_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
horizon_bin: "{{ horizon_venv_bin }}"
|
horizon_bin: "{{ horizon_venv_bin }}"
|
||||||
|
|
||||||
|
horizon_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/horizon.tgz
|
||||||
|
|
||||||
## System info
|
## System info
|
||||||
horizon_system_user_name: horizon
|
horizon_system_user_name: horizon
|
||||||
horizon_system_group_name: www-data
|
horizon_system_group_name: www-data
|
||||||
@ -137,6 +139,7 @@ horizon_apt_packages:
|
|||||||
# horizon packages that must be installed before anything else
|
# horizon packages that must be installed before anything else
|
||||||
horizon_requires_pip_packages:
|
horizon_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
horizon_pip_packages:
|
horizon_pip_packages:
|
||||||
|
@ -50,7 +50,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ horizon_pip_packages }}"
|
- "{{ horizon_pip_packages }}"
|
||||||
when: horizon_venv_enabled | bool
|
when:
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- horizon-pip-packages
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
@ -71,6 +71,58 @@
|
|||||||
tags:
|
tags:
|
||||||
- horizon-pip-packages
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ horizon_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when: horizon_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Set horizon get_venv fact
|
||||||
|
set_fact:
|
||||||
|
horizon_get_venv: "{{ get_venv }}"
|
||||||
|
when: horizon_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Create horizon venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ horizon_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | success
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
||||||
|
dest: "{{ horizon_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | success
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ horizon_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | success
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
- name: Create horizon venv
|
- name: Create horizon venv
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -80,8 +132,11 @@
|
|||||||
extra_args: "{{ pip_install_options|default('') }}"
|
extra_args: "{{ pip_install_options|default('') }}"
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ horizon_requires_pip_packages }}"
|
- "{{ horizon_requires_pip_packages }}"
|
||||||
when: horizon_venv_enabled | bool
|
when:
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
|
- horizon-install
|
||||||
- horizon-pip-packages
|
- horizon-pip-packages
|
||||||
|
|
||||||
- name: Create horizon links for venv
|
- name: Create horizon links for venv
|
||||||
@ -96,6 +151,7 @@
|
|||||||
dest: "{{ horizon_lib_dir }}"
|
dest: "{{ horizon_lib_dir }}"
|
||||||
when: horizon_venv_enabled | bool
|
when: horizon_venv_enabled | bool
|
||||||
tags:
|
tags:
|
||||||
|
- horizon-install
|
||||||
- horizon-configs
|
- horizon-configs
|
||||||
|
|
||||||
- name: Create static horizon dir
|
- name: Create static horizon dir
|
||||||
|
@ -29,6 +29,8 @@ keystone_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
keystone_bin: "{{ keystone_venv_bin }}"
|
keystone_bin: "{{ keystone_venv_bin }}"
|
||||||
|
|
||||||
|
keystone_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/keystone.tgz
|
||||||
|
|
||||||
keystone_fatal_deprecations: False
|
keystone_fatal_deprecations: False
|
||||||
|
|
||||||
## System info
|
## System info
|
||||||
@ -347,6 +349,7 @@ keystone_idp_apt_packages:
|
|||||||
# Keystone packages that must be installed before anything else
|
# Keystone packages that must be installed before anything else
|
||||||
keystone_requires_pip_packages:
|
keystone_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
# Common pip packages
|
# Common pip packages
|
||||||
|
@ -80,6 +80,58 @@
|
|||||||
- keystone-install
|
- keystone-install
|
||||||
- keystone-pip-packages
|
- 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)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -93,7 +145,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ keystone_pip_packages }}"
|
- "{{ keystone_pip_packages }}"
|
||||||
when: keystone_venv_enabled | bool
|
when:
|
||||||
|
- keystone_venv_enabled | bool
|
||||||
|
- keystone_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- keystone-install
|
- keystone-install
|
||||||
- keystone-pip-packages
|
- keystone-pip-packages
|
||||||
|
@ -32,6 +32,8 @@ neutron_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
neutron_bin: "{{ neutron_venv_bin }}"
|
neutron_bin: "{{ neutron_venv_bin }}"
|
||||||
|
|
||||||
|
neutron_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/neutron.tgz
|
||||||
|
|
||||||
# Set the lib dir path to that of the local python path where neutron is installed.
|
# Set the lib dir path to that of the local python path where neutron is installed.
|
||||||
# This is used for role access to the db migrations.
|
# This is used for role access to the db migrations.
|
||||||
# Example:
|
# Example:
|
||||||
@ -296,6 +298,7 @@ neutron_apt_remove_packages:
|
|||||||
# neutron packages that must be installed before anything else
|
# neutron packages that must be installed before anything else
|
||||||
neutron_requires_pip_packages:
|
neutron_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
neutron_pip_packages:
|
neutron_pip_packages:
|
||||||
|
@ -65,6 +65,58 @@
|
|||||||
- neutron-install
|
- neutron-install
|
||||||
- neutron-pip-packages
|
- neutron-pip-packages
|
||||||
|
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ neutron_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ neutron_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when: neutron_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- neutron-install
|
||||||
|
- neutron-pip-packages
|
||||||
|
|
||||||
|
- name: Set neutron get_venv fact
|
||||||
|
set_fact:
|
||||||
|
neutron_get_venv: "{{ get_venv }}"
|
||||||
|
when: neutron_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- neutron-install
|
||||||
|
- neutron-pip-packages
|
||||||
|
|
||||||
|
- name: Create neutron venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ neutron_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- neutron_venv_enabled | bool
|
||||||
|
- neutron_get_venv | success
|
||||||
|
tags:
|
||||||
|
- neutron-install
|
||||||
|
- neutron-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ neutron_venv_download_url | basename }}"
|
||||||
|
dest: "{{ neutron_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- neutron_venv_enabled | bool
|
||||||
|
- neutron_get_venv | success
|
||||||
|
tags:
|
||||||
|
- neutron-install
|
||||||
|
- neutron-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ neutron_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- neutron_venv_enabled | bool
|
||||||
|
- neutron_get_venv | success
|
||||||
|
tags:
|
||||||
|
- neutron-install
|
||||||
|
- neutron-pip-packages
|
||||||
|
|
||||||
- name: Install pip packages (venv)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -78,7 +130,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ neutron_pip_packages }}"
|
- "{{ neutron_pip_packages }}"
|
||||||
when: neutron_venv_enabled | bool
|
when:
|
||||||
|
- neutron_venv_enabled | bool
|
||||||
|
- neutron_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- neutron-install
|
- neutron-install
|
||||||
- neutron-pip-packages
|
- neutron-pip-packages
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
when:
|
when:
|
||||||
- inventory_hostname in groups['neutron_server']
|
- inventory_hostname in groups['neutron_server']
|
||||||
|
- neutron_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- neutron-install
|
- neutron-install
|
||||||
- neutron-pip-packages
|
- neutron-pip-packages
|
||||||
|
@ -32,6 +32,8 @@ nova_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
nova_bin: "{{ nova_venv_bin }}"
|
nova_bin: "{{ nova_venv_bin }}"
|
||||||
|
|
||||||
|
nova_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/nova.tgz
|
||||||
|
|
||||||
nova_fatal_deprecations: False
|
nova_fatal_deprecations: False
|
||||||
|
|
||||||
## System info
|
## System info
|
||||||
@ -289,6 +291,7 @@ nova_compute_kvm_apt_packages:
|
|||||||
# nova packages that must be installed before anything else
|
# nova packages that must be installed before anything else
|
||||||
nova_requires_pip_packages:
|
nova_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
nova_compute_pip_packages:
|
nova_compute_pip_packages:
|
||||||
|
@ -51,7 +51,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ nova_compute_pip_packages }}"
|
- "{{ nova_compute_pip_packages }}"
|
||||||
when: nova_venv_enabled | bool
|
when:
|
||||||
|
- nova_venv_enabled | bool
|
||||||
|
- nova_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- nova-install
|
- nova-install
|
||||||
- nova-pip-packages
|
- nova-pip-packages
|
||||||
|
@ -68,7 +68,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ nova_novnc_pip_packages }}"
|
- "{{ nova_novnc_pip_packages }}"
|
||||||
when: nova_venv_enabled | bool
|
when:
|
||||||
|
- nova_venv_enabled | bool
|
||||||
|
- nova_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- nova-install
|
- nova-install
|
||||||
- nova-pip-packages
|
- nova-pip-packages
|
||||||
|
@ -52,6 +52,58 @@
|
|||||||
- nova-install
|
- nova-install
|
||||||
- nova-pip-packages
|
- 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)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -65,7 +117,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ nova_pip_packages }}"
|
- "{{ nova_pip_packages }}"
|
||||||
when: nova_venv_enabled | bool
|
when:
|
||||||
|
- nova_venv_enabled | bool
|
||||||
|
- nova_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- nova-install
|
- nova-install
|
||||||
- nova-pip-packages
|
- nova-pip-packages
|
||||||
|
@ -32,6 +32,8 @@ swift_venv_enabled: true
|
|||||||
# system path used when the installing.
|
# system path used when the installing.
|
||||||
swift_bin: "{{ swift_venv_bin }}"
|
swift_bin: "{{ swift_venv_bin }}"
|
||||||
|
|
||||||
|
swift_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/swift.tgz
|
||||||
|
|
||||||
# Set the full path to the swift recon cron
|
# Set the full path to the swift recon cron
|
||||||
recon_cron_path: "{{ swift_bin }}/swift-recon-cron"
|
recon_cron_path: "{{ swift_bin }}/swift-recon-cron"
|
||||||
|
|
||||||
@ -177,6 +179,7 @@ swift: {}
|
|||||||
# swift packages that must be installed before anything else
|
# swift packages that must be installed before anything else
|
||||||
swift_requires_pip_packages:
|
swift_requires_pip_packages:
|
||||||
- virtualenv
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
|
||||||
|
|
||||||
swift_pip_packages:
|
swift_pip_packages:
|
||||||
|
@ -52,6 +52,58 @@
|
|||||||
- swift-install
|
- swift-install
|
||||||
- swift-pip-packages
|
- swift-pip-packages
|
||||||
|
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ swift_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ swift_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when: swift_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- swift-install
|
||||||
|
- swift-pip-packages
|
||||||
|
|
||||||
|
- name: Set swift get_venv fact
|
||||||
|
set_fact:
|
||||||
|
swift_get_venv: "{{ get_venv }}"
|
||||||
|
when: swift_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- swift-install
|
||||||
|
- swift-pip-packages
|
||||||
|
|
||||||
|
- name: Create swift venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ swift_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- swift_venv_enabled | bool
|
||||||
|
- swift_get_venv | success
|
||||||
|
tags:
|
||||||
|
- swift-install
|
||||||
|
- swift-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ swift_venv_download_url | basename }}"
|
||||||
|
dest: "{{ swift_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- swift_venv_enabled | bool
|
||||||
|
- swift_get_venv | success
|
||||||
|
tags:
|
||||||
|
- swift-install
|
||||||
|
- swift-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ swift_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- swift_venv_enabled | bool
|
||||||
|
- swift_get_venv | success
|
||||||
|
tags:
|
||||||
|
- swift-install
|
||||||
|
- swift-pip-packages
|
||||||
|
|
||||||
- name: Install pip packages (venv)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -65,7 +117,9 @@
|
|||||||
delay: 2
|
delay: 2
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ swift_pip_packages }}"
|
- "{{ swift_pip_packages }}"
|
||||||
when: swift_venv_enabled | bool
|
when:
|
||||||
|
- swift_venv_enabled | bool
|
||||||
|
- swift_get_venv | failed
|
||||||
tags:
|
tags:
|
||||||
- swift-install
|
- swift-install
|
||||||
- swift-pip-packages
|
- swift-pip-packages
|
||||||
|
@ -19,6 +19,7 @@ is_metal: true
|
|||||||
## Verbosity Options
|
## Verbosity Options
|
||||||
debug: False
|
debug: False
|
||||||
verbose: True
|
verbose: True
|
||||||
|
tempest_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/tempest.tgz
|
||||||
tempest_fatal_deprecations: False
|
tempest_fatal_deprecations: False
|
||||||
|
|
||||||
tempest_private_subnet_cidr: "192.168.74.0/24"
|
tempest_private_subnet_cidr: "192.168.74.0/24"
|
||||||
@ -71,6 +72,17 @@ tempest_volume_multi_backend_enabled: False
|
|||||||
tempest_main_group: tempest_all
|
tempest_main_group: tempest_all
|
||||||
|
|
||||||
tempest_requires_pip_packages:
|
tempest_requires_pip_packages:
|
||||||
|
- python-glanceclient
|
||||||
|
- python-keystoneclient
|
||||||
|
- python-neutronclient
|
||||||
|
- python-novaclient
|
||||||
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
|
|
||||||
|
tempest_pip_packages:
|
||||||
|
- fixtures
|
||||||
|
- junitxml
|
||||||
|
- nose
|
||||||
- oslo.serialization
|
- oslo.serialization
|
||||||
- python-ceilometerclient
|
- python-ceilometerclient
|
||||||
- python-cinderclient
|
- python-cinderclient
|
||||||
@ -81,17 +93,12 @@ tempest_requires_pip_packages:
|
|||||||
- python-neutronclient
|
- python-neutronclient
|
||||||
- python-novaclient
|
- python-novaclient
|
||||||
- python-openstackclient
|
- python-openstackclient
|
||||||
|
- python-subunit
|
||||||
- python-swiftclient
|
- python-swiftclient
|
||||||
- virtualenv
|
- tempest-lib
|
||||||
|
|
||||||
tempest_pip_packages:
|
|
||||||
- fixtures
|
|
||||||
- nose
|
|
||||||
- testrepository
|
- testrepository
|
||||||
- testscenarios
|
- testscenarios
|
||||||
- testtools
|
- testtools
|
||||||
- python-subunit
|
|
||||||
- junitxml
|
|
||||||
|
|
||||||
# Please update SHA in tempest_images below when changing the cirros version.
|
# Please update SHA in tempest_images below when changing the cirros version.
|
||||||
cirros_version: 0.3.4
|
cirros_version: 0.3.4
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
- include: tempest_install.yml
|
||||||
|
|
||||||
- include: tempest_resources.yml
|
- include: tempest_resources.yml
|
||||||
when: >
|
when: >
|
||||||
inventory_hostname == groups[tempest_main_group][0]
|
inventory_hostname == groups[tempest_main_group][0]
|
||||||
@ -22,7 +24,6 @@
|
|||||||
when: >
|
when: >
|
||||||
inventory_hostname != groups[tempest_main_group][0]
|
inventory_hostname != groups[tempest_main_group][0]
|
||||||
|
|
||||||
- include: tempest_install.yml
|
|
||||||
- include: tempest_post_install.yml
|
- include: tempest_post_install.yml
|
||||||
|
|
||||||
- name: Flush handlers
|
- name: Flush handlers
|
||||||
|
@ -26,7 +26,8 @@
|
|||||||
- "{{ tempest_requires_pip_packages }}"
|
- "{{ tempest_requires_pip_packages }}"
|
||||||
tags:
|
tags:
|
||||||
- tempest-pip-requires-packages
|
- tempest-pip-requires-packages
|
||||||
- tempest-pip-install
|
- tempest-install
|
||||||
|
- tempest-pip-packages
|
||||||
|
|
||||||
- name: Get tempest from git
|
- name: Get tempest from git
|
||||||
git:
|
git:
|
||||||
@ -42,17 +43,83 @@
|
|||||||
- tempest-git-clone
|
- tempest-git-clone
|
||||||
- tempest-pip-install
|
- tempest-pip-install
|
||||||
|
|
||||||
- name: Install pip packages for tempest
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ tempest_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ tempest_venv_download_url | basename }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
tags:
|
||||||
|
- tempest-install
|
||||||
|
- tempest-pip-packages
|
||||||
|
|
||||||
|
- name: Set tempest get_venv fact
|
||||||
|
set_fact:
|
||||||
|
tempest_get_venv: "{{ get_venv }}"
|
||||||
|
tags:
|
||||||
|
- tempest-install
|
||||||
|
- tempest-pip-packages
|
||||||
|
|
||||||
|
- name: Create tempest venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ tempest_git_dest }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- tempest_get_venv | success
|
||||||
|
tags:
|
||||||
|
- tempest-install
|
||||||
|
- tempest-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ tempest_venv_download_url | basename }}"
|
||||||
|
dest: "{{ tempest_git_dest }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- tempest_get_venv | success
|
||||||
|
tags:
|
||||||
|
- tempest-install
|
||||||
|
- tempest-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ tempest_git_dest }}
|
||||||
|
when:
|
||||||
|
- tempest_get_venv | success
|
||||||
|
tags:
|
||||||
|
- tempest-install
|
||||||
|
- tempest-pip-packages
|
||||||
|
|
||||||
|
- name: Install pip packages for tempest (prebuilt venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ tempest_git_dest }}"
|
||||||
state: present
|
state: present
|
||||||
virtualenv: "{{ tempest_git_dest }}"
|
virtualenv: "{{ tempest_git_dest }}"
|
||||||
virtualenv_site_packages: "yes"
|
virtualenv_site_packages: "no"
|
||||||
extra_args: "{{ tempest_pip_instructions }}"
|
extra_args: "{{ tempest_pip_instructions }}"
|
||||||
register: install_packages
|
register: install_packages
|
||||||
until: install_packages|success
|
until: install_packages|success
|
||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
|
when:
|
||||||
|
- tempest_get_venv | success
|
||||||
|
tags:
|
||||||
|
- tempest-pip-packages
|
||||||
|
- tempest-pip-install
|
||||||
|
|
||||||
|
- name: Install pip packages for tempest (no prebuilt venv)
|
||||||
|
pip:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
virtualenv: "{{ tempest_git_dest }}"
|
||||||
|
virtualenv_site_packages: "no"
|
||||||
|
extra_args: "{{ tempest_pip_instructions }}"
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
when:
|
||||||
|
- tempest_get_venv | failed
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ tempest_pip_packages }}"
|
- "{{ tempest_pip_packages }}"
|
||||||
- "{{ tempest_git_dest }}"
|
- "{{ tempest_git_dest }}"
|
||||||
|
@ -30,3 +30,13 @@ repo_build_pip_default_index: "https://pypi.python.org/simple"
|
|||||||
repo_build_pip_extra_index: "https://pypi.python.org/simple"
|
repo_build_pip_extra_index: "https://pypi.python.org/simple"
|
||||||
|
|
||||||
repo_build_timeout: 120
|
repo_build_timeout: 120
|
||||||
|
|
||||||
|
repo_build_venv_force_rebuild: false
|
||||||
|
repo_build_venv_build_dir: "/tmp/openstack-venv-builder"
|
||||||
|
repo_build_venv_dir: "/var/www/repo/venvs"
|
||||||
|
repo_build_venv_pip_install_options: >
|
||||||
|
--timeout 120
|
||||||
|
--find-links {{ repo_build_release_path }}/{{ repo_build_release_tag }}
|
||||||
|
--no-index
|
||||||
|
--verbose
|
||||||
|
--log /var/log/repo/repo_venv_builder.log
|
||||||
|
@ -13,8 +13,14 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
# Wheel building
|
||||||
- include: repo_clone_git.yml
|
- include: repo_clone_git.yml
|
||||||
- include: repo_set_facts.yml
|
- include: repo_set_facts.yml
|
||||||
- include: repo_pre_build.yml
|
- include: repo_pre_build.yml
|
||||||
- include: repo_build.yml
|
- include: repo_build.yml
|
||||||
- include: repo_post_build.yml
|
- include: repo_post_build.yml
|
||||||
|
|
||||||
|
# Venv building
|
||||||
|
- include: repo_venv.yml
|
||||||
|
tags:
|
||||||
|
- repo-build-venvs
|
||||||
|
18
playbooks/roles/repo_build/tasks/repo_venv.yml
Normal file
18
playbooks/roles/repo_build/tasks/repo_venv.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
- include: repo_venv_pre_build.yml
|
||||||
|
- include: repo_venv_build.yml
|
||||||
|
- include: repo_venv_post_build.yml
|
81
playbooks/roles/repo_build/tasks/repo_venv_build.yml
Normal file
81
playbooks/roles/repo_build/tasks/repo_venv_build.yml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
# 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: Get venv command path
|
||||||
|
command: which virtualenv
|
||||||
|
register: virtualenv_path
|
||||||
|
tags:
|
||||||
|
- repo-command-bin
|
||||||
|
- repo-create-venv
|
||||||
|
|
||||||
|
- name: Set virtualenv command path
|
||||||
|
set_fact:
|
||||||
|
virtualenv_bin: "{{ virtualenv_path.stdout }}"
|
||||||
|
tags:
|
||||||
|
- repo-command-bin
|
||||||
|
- repo-create-venv
|
||||||
|
|
||||||
|
- name: Check for created venvs
|
||||||
|
command: >
|
||||||
|
ls -1 "{{ repo_build_venv_dir }}/{{ repo_build_release_tag }}/{{ ansible_distribution | lower }}/"
|
||||||
|
register: created_venvs
|
||||||
|
tags:
|
||||||
|
- repo-create-venv
|
||||||
|
|
||||||
|
- name: Set existing venv fact
|
||||||
|
set_fact:
|
||||||
|
existing_venvs: "{{ created_venvs.stdout_lines }}"
|
||||||
|
tags:
|
||||||
|
- repo-command-bin
|
||||||
|
- repo-create-venv
|
||||||
|
|
||||||
|
- name: Create role based venv
|
||||||
|
pip:
|
||||||
|
name: "{{ item.value | join(' ') }}"
|
||||||
|
state: present
|
||||||
|
virtualenv: "{{ repo_build_venv_build_dir }}/venvs/{{ item.key | replace('os_', '') }}"
|
||||||
|
virtualenv_site_packages: "no"
|
||||||
|
virtualenv_command: "{{ virtualenv_bin }} --always-copy"
|
||||||
|
extra_args: "{{ repo_build_venv_pip_install_options }}"
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_dict: local_packages.results.0.item.role_packages
|
||||||
|
when:
|
||||||
|
- '"os_" in item.key'
|
||||||
|
- "'{{ item.key | replace('os_', '') }}.tgz' not in existing_venvs"
|
||||||
|
tags:
|
||||||
|
- repo-create-venv
|
||||||
|
|
||||||
|
- name: Create venv archive
|
||||||
|
shell: |
|
||||||
|
# This is to clean up pyc files which makes the archived venv smaller
|
||||||
|
# TODO(cloudnull) This should use the find module when we move to Ansible 2.0
|
||||||
|
find "{{ repo_build_venv_build_dir }}/venvs/{{ item.key | replace('os_', '') }}" -name '*.pyc' -delete
|
||||||
|
# Create archive
|
||||||
|
tar -czf "{{ item.key | replace('os_', '') }}-{{ repo_build_release_tag }}.tgz" \
|
||||||
|
-C "{{ repo_build_venv_build_dir }}/venvs/{{ item.key | replace('os_', '') }}" .
|
||||||
|
args:
|
||||||
|
chdir: "{{ repo_build_venv_dir }}/{{ repo_build_release_tag }}/{{ ansible_distribution | lower }}"
|
||||||
|
creates: "{{ repo_build_venv_dir }}/{{ repo_build_release_tag }}/{{ ansible_distribution | lower }}/{{ item.key | replace('os_', '') }}.tgz"
|
||||||
|
with_dict: local_packages.results.0.item.role_packages
|
||||||
|
when:
|
||||||
|
- '"os_" in item.key'
|
||||||
|
tags:
|
||||||
|
- skip_ansible_lint
|
||||||
|
- repo-venv-compress-archive
|
||||||
|
- repo-create-venv-archive
|
||||||
|
- repo-create-venv
|
23
playbooks/roles/repo_build/tasks/repo_venv_post_build.yml
Normal file
23
playbooks/roles/repo_build/tasks/repo_venv_post_build.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
# 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: Cleanup venv directory
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: absent
|
||||||
|
with_items:
|
||||||
|
- "{{ repo_build_venv_build_dir }}"
|
||||||
|
tags:
|
||||||
|
- repo-cleanup-venv-location
|
49
playbooks/roles/repo_build/tasks/repo_venv_pre_build.yml
Normal file
49
playbooks/roles/repo_build/tasks/repo_venv_pre_build.yml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
# 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: Make sure old venv build directories are clean
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: "absent"
|
||||||
|
with_items:
|
||||||
|
- "{{ repo_build_venv_build_dir }}"
|
||||||
|
tags:
|
||||||
|
- repo-create-venv-location
|
||||||
|
- repo-venv-compress-archive
|
||||||
|
- repo-create-venv-archive
|
||||||
|
|
||||||
|
- name: Destroy base venvs to rebuild them
|
||||||
|
file:
|
||||||
|
path: "{{ repo_build_venv_dir }}/{{ repo_build_release_tag }}/{{ ansible_distribution | lower }}"
|
||||||
|
state: "absent"
|
||||||
|
when: repo_build_venv_force_rebuild | bool
|
||||||
|
tags:
|
||||||
|
- repo-create-venv-location
|
||||||
|
- repo-venv-compress-archive
|
||||||
|
- repo-create-venv-archive
|
||||||
|
|
||||||
|
- name: Create venv directory
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: "directory"
|
||||||
|
owner: "{{ repo_build_service_user_name }}"
|
||||||
|
mode: "2755"
|
||||||
|
with_items:
|
||||||
|
- "{{ repo_build_venv_build_dir }}/venvs"
|
||||||
|
- "{{ repo_build_venv_dir }}/{{ repo_build_release_tag }}/{{ ansible_distribution | lower }}"
|
||||||
|
tags:
|
||||||
|
- repo-create-venv-location
|
||||||
|
- repo-venv-compress-archive
|
||||||
|
- repo-create-venv-archive
|
@ -85,6 +85,8 @@ repo_pip_packages:
|
|||||||
- turbolift
|
- turbolift
|
||||||
- wheel
|
- wheel
|
||||||
- yaprt
|
- yaprt
|
||||||
|
- virtualenv
|
||||||
|
- virtualenv-tools
|
||||||
|
|
||||||
# Main web server port
|
# Main web server port
|
||||||
repo_server_port: 8181
|
repo_server_port: 8181
|
||||||
|
Loading…
x
Reference in New Issue
Block a user