diff --git a/playbooks/os-cinder-install.yml b/playbooks/os-cinder-install.yml index 0a54351ca9..8b67587c1d 100644 --- a/playbooks/os-cinder-install.yml +++ b/playbooks/os-cinder-install.yml @@ -194,7 +194,9 @@ tags: - "os-cinder" - role: "ceph_client" + cinder_venv_bin: "/openstack/venvs/cinder-{{ openstack_release }}/bin" openstack_service_system_user: "{{ cinder_system_user_name }}" + openstack_service_venv_bin: "{{ cinder_venv_bin if cinder_venv_enabled|default(True) else None }}" tags: - "cinder-ceph-client" - "ceph-client" diff --git a/playbooks/os-glance-install.yml b/playbooks/os-glance-install.yml index 1e4ed95df8..627130e217 100644 --- a/playbooks/os-glance-install.yml +++ b/playbooks/os-glance-install.yml @@ -128,7 +128,9 @@ - "os-glance" - { role: "openstack_openrc", tags: [ "openstack-openrc" ] } - role: "ceph_client" + glance_venv_bin: "/openstack/venvs/glance-{{ openstack_release }}/bin" openstack_service_system_user: "{{ glance_system_user_name }}" + openstack_service_venv_bin: "{{ glance_venv_bin if glance_venv_enabled|default(True) else None }}" tags: - "glance-ceph-client" - "ceph-client" diff --git a/playbooks/os-nova-install.yml b/playbooks/os-nova-install.yml index 74943609cd..b70de88dfc 100644 --- a/playbooks/os-nova-install.yml +++ b/playbooks/os-nova-install.yml @@ -200,7 +200,9 @@ tags: - "os-nova" - role: "ceph_client" + nova_venv_bin: "/openstack/venvs/nova-{{ openstack_release }}/bin" openstack_service_system_user: "{{ nova_system_user_name }}" + openstack_service_venv_bin: "{{ nova_venv_bin if nova_venv_enabled|default(True) else None }}" tags: - "nova-ceph-client" - "ceph-client" diff --git a/playbooks/roles/ceph_client/tasks/ceph_all.yml b/playbooks/roles/ceph_client/tasks/ceph_all.yml index a11bc93b0e..8bbe1ac6c4 100644 --- a/playbooks/roles/ceph_client/tasks/ceph_all.yml +++ b/playbooks/roles/ceph_client/tasks/ceph_all.yml @@ -39,6 +39,11 @@ - include: ceph_install.yml tags: ceph-install +- include: ceph_install_python_libs.yml + when: openstack_service_venv_bin != '' + tags: + - ceph-install + - include: ceph_get_mon_host.yml tags: - ceph-config diff --git a/playbooks/roles/ceph_client/tasks/ceph_install_python_libs.yml b/playbooks/roles/ceph_client/tasks/ceph_install_python_libs.yml new file mode 100644 index 0000000000..3ef574ec46 --- /dev/null +++ b/playbooks/roles/ceph_client/tasks/ceph_install_python_libs.yml @@ -0,0 +1,44 @@ +--- +# 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: Register rados module path + command: python -c 'import rados; print rados.__file__' + register: rados_module_path + tags: + - ceph-python-libs + +- name: Register rbd module path + command: python -c 'import rbd; print rbd.__file__' + register: rbd_module_path + tags: + - ceph-python-libs + +- name: Link rados module into the venv + file: + src: "{{ rados_module_path.stdout }}" + dest: "{{ openstack_service_venv_bin | dirname }}/lib/python2.7/site-packages/{{ rados_module_path.stdout | basename }}" + state: link + force: "yes" + tags: + - ceph-python-libs + +- name: Link rbd module into the venv + file: + src: "{{ rbd_module_path.stdout }}" + dest: "{{ openstack_service_venv_bin | dirname }}/lib/python2.7/site-packages/{{ rbd_module_path.stdout | basename }}" + state: link + force: "yes" + tags: + - ceph-python-libs