--- # 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: Create sparse Cinder file command: "truncate -s {{ bootstrap_host_loopback_cinder_size }}G /openstack/cinder.img" args: creates: /openstack/cinder.img register: cinder_create tags: - cinder-file-create - name: Get a loopback device for cinder file command: losetup -f when: cinder_create | changed register: cinder_losetup tags: - cinder-device-get - name: Create the loopback device command: "losetup {{ cinder_losetup.stdout }} /openstack/cinder.img" when: cinder_create | changed tags: - cinder-device-create - name: Ensure that rc.local exists file: path: "{{ rc_local }}" state: touch mode: "u+x" tags: - cinder-rc-file # As the cinder loopback is an LVM VG, it needs to be mounted differently # to the other loopback files. It requires the use of rc.local to attach # the loopback device on boot so that the VG becomes available immediately # after the boot process completes. - name: Create loopback devices at boot time lineinfile: dest: "{{ rc_local }}" line: "losetup $(losetup -f) /openstack/cinder.img" insertbefore: "{{ rc_local_insert_before }}" tags: - cinder-rc-config - name: Make LVM physical volume on the cinder device command: "{{ item }}" when: cinder_create | changed with_items: - "pvcreate {{ cinder_losetup.stdout }}" - "pvscan" tags: - cinder-lvm-pv - name: Add cinder-volumes volume group lvg: vg: cinder-volumes pvs: "{{ cinder_losetup.stdout }}" when: cinder_create | changed tags: - cinder-lvm-vg