X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=roles%2Fbootstrap-host%2Ftasks%2Fprepare_loopback_cinder.yml;fp=roles%2Fbootstrap-host%2Ftasks%2Fprepare_loopback_cinder.yml;h=38fd224cc20ea2edecd13d13692a61deebf10e92;hb=74a49ba6ef2ea715fa492db0bcd85c30398688e8;hp=0000000000000000000000000000000000000000;hpb=a936af362724cca0c5dc2c424902d398f9833410;p=ta%2Finfra-ansible.git diff --git a/roles/bootstrap-host/tasks/prepare_loopback_cinder.yml b/roles/bootstrap-host/tasks/prepare_loopback_cinder.yml new file mode 100644 index 0000000..38fd224 --- /dev/null +++ b/roles/bootstrap-host/tasks/prepare_loopback_cinder.yml @@ -0,0 +1,72 @@ +--- +# 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