--- - hosts: localhost gather_facts: False become: False tasks: - set_fact: cinder_volume: "{{ hostvars[groups.masters[0]].openshift_hosted_registry_storage_openstack_volumeID }}" cinder_fs: "{{ hostvars[groups.masters[0]].openshift_hosted_registry_storage_openstack_filesystem }}" - name: Attach the volume to the VM os_server_volume: state: present server: "{{ groups['masters'][0] }}" volume: "{{ cinder_volume }}" register: volume_attachment - set_fact: attached_device: >- {{ volume_attachment['attachments']|json_query("[?volume_id=='" + cinder_volume + "'].device | [0]") }} - delegate_to: "{{ groups['masters'][0] }}" block: - name: Wait for the device to appear wait_for: path={{ attached_device }} - name: Create a temp directory for mounting the volume tempfile: prefix: cinder-volume state: directory register: cinder_mount_dir - name: Format the device filesystem: fstype: "{{ cinder_fs }}" dev: "{{ attached_device }}" - name: Mount the device mount: name: "{{ cinder_mount_dir.path }}" src: "{{ attached_device }}" state: mounted fstype: "{{ cinder_fs }}" - name: Change mode on the filesystem file: path: "{{ cinder_mount_dir.path }}" state: directory recurse: true mode: 0777 - name: Unmount the device mount: name: "{{ cinder_mount_dir.path }}" src: "{{ attached_device }}" state: absent fstype: "{{ cinder_fs }}" - name: Delete the temp directory file: name: "{{ cinder_mount_dir.path }}" state: absent - name: Detach the volume from the VM os_server_volume: state: absent server: "{{ groups['masters'][0] }}" volume: "{{ cinder_volume }}"