summaryrefslogtreecommitdiffstats
path: root/roles/openshift_openstack/tasks/prepare-and-format-cinder-volume.yaml
diff options
context:
space:
mode:
authorTomas Sedovic <tomas@sedovic.cz>2017-10-23 12:57:29 +0200
committerTomas Sedovic <tomas@sedovic.cz>2017-11-07 14:35:46 +1100
commit4ed9aef6f8ed0850e70b498e780d0d8e22bc277f (patch)
treea2c63b7379e46d2aca4379eccceaaf91ef92fc4f /roles/openshift_openstack/tasks/prepare-and-format-cinder-volume.yaml
parent8b8eeab919b76bee6a2e0ad1336bd4dbb1db1e95 (diff)
downloadopenshift-4ed9aef6f8ed0850e70b498e780d0d8e22bc277f.tar.gz
openshift-4ed9aef6f8ed0850e70b498e780d0d8e22bc277f.tar.bz2
openshift-4ed9aef6f8ed0850e70b498e780d0d8e22bc277f.tar.xz
openshift-4ed9aef6f8ed0850e70b498e780d0d8e22bc277f.zip
Add openshift_openstack role and move tasks there
All the tasks that were previously in playbooks are now under `roles/openshift_openstack`. The `openshift-cluster` directory now only contains playbooks that include tasks from that role. This makes the structure much closer to that of the AWS provider.
Diffstat (limited to 'roles/openshift_openstack/tasks/prepare-and-format-cinder-volume.yaml')
-rw-r--r--roles/openshift_openstack/tasks/prepare-and-format-cinder-volume.yaml59
1 files changed, 59 insertions, 0 deletions
diff --git a/roles/openshift_openstack/tasks/prepare-and-format-cinder-volume.yaml b/roles/openshift_openstack/tasks/prepare-and-format-cinder-volume.yaml
new file mode 100644
index 000000000..fc51f6dc2
--- /dev/null
+++ b/roles/openshift_openstack/tasks/prepare-and-format-cinder-volume.yaml
@@ -0,0 +1,59 @@
+---
+- 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 }}"