diff --git a/tasks/cinder_backends.yml b/tasks/cinder_backends.yml index c9a5e961..f4c555a5 100644 --- a/tasks/cinder_backends.yml +++ b/tasks/cinder_backends.yml @@ -22,6 +22,11 @@ retries: 10 delay: 10 +- name: Create singular cinder_backends variable for all hosts + set_fact: + _cinder_backends: "{{ (_cinder_backends | default(cinder_backends | default({}))) | combine(hostvars[item]['cinder_backends'] | default({})) }}" + with_items: "{{ groups['cinder_volume'] }}" + - name: Add in cinder devices types shell: | . {{ ansible_env.HOME }}/openrc @@ -29,7 +34,7 @@ {{ cinder_bin }}/cinder {{ keystone_service_adminuri_insecure | bool | ternary('--insecure','') }} type-create "{{ item.key }}" {{ cinder_bin }}/cinder {{ keystone_service_adminuri_insecure | bool | ternary('--insecure','') }} type-key "{{ item.key }}" set volume_backend_name="{{ item.value.volume_backend_name }}" fi - with_dict: "{{ cinder_backends|default({}) }}" + with_dict: "{{ _cinder_backends|default({}) }}" changed_when: false - name: Add extra cinder volume types @@ -41,7 +46,7 @@ {{ cinder_bin }}/cinder {{ keystone_service_adminuri_insecure | bool | ternary('--insecure','') }} type-key "{{ evtype }}" set volume_backend_name="{{ item.value.volume_backend_name }}" fi {% endfor %} - with_dict: "{{ cinder_backends|default({}) }}" + with_dict: "{{ _cinder_backends|default({}) }}" when: item.value.extra_volume_types is defined - include: cinder_qos.yml diff --git a/tasks/main.yml b/tasks/main.yml index 0aa46da1..53fa66ab 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -62,7 +62,7 @@ - include: cinder_backends.yml when: - groups['cinder_volume'] | length > 0 - - inventory_hostname in groups['cinder_volume'][0] + - inventory_hostname == groups['cinder_volume'][0] tags: - cinder-install diff --git a/tests/host_vars/cinder_vol.yml b/tests/host_vars/cinder_vol.yml new file mode 100644 index 00000000..4dd846ec --- /dev/null +++ b/tests/host_vars/cinder_vol.yml @@ -0,0 +1,30 @@ +--- +# Copyright 2016, 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. + +ansible_host: 10.1.1.104 +ansible_become: True +ansible_user: root +cinder_backends: + lvm: + volume_group: cinder-volumes + volume_driver: cinder.volume.drivers.lvm.LVMVolumeDriver + volume_backend_name: LVM_iSCSI + lvm2: + volume_group: cinder-volumes + volume_driver: cinder.volume.drivers.lvm.LVMVolumeDriver + volume_backend_name: LVM_iSCSI +# In order to use loopback devices we set this line +lxc_container_config_list: + - "lxc.cgroup.devices.allow = b 7:* rwm" diff --git a/tests/inventory b/tests/inventory index 93ed5a0e..c3e91481 100644 --- a/tests/inventory +++ b/tests/inventory @@ -3,11 +3,13 @@ localhost infra1 keystone cinder +cinder_vol [all_containers] infra1 keystone cinder +cinder_vol [rabbitmq_all] infra1 @@ -40,6 +42,7 @@ cinder [cinder_volume] localhost +cinder_vol [cinder_all:children] cinder_api