aboutsummaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/configure-ephemeral/defaults/main.yml2
-rw-r--r--roles/configure-ephemeral/tasks/main.yml70
2 files changed, 72 insertions, 0 deletions
diff --git a/roles/configure-ephemeral/defaults/main.yml b/roles/configure-ephemeral/defaults/main.yml
new file mode 100644
index 000000000..5879e49e1
--- /dev/null
+++ b/roles/configure-ephemeral/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+configure_ephemeral_mountpoint: "/var/lib/docker"
diff --git a/roles/configure-ephemeral/tasks/main.yml b/roles/configure-ephemeral/tasks/main.yml
new file mode 100644
index 000000000..8fe7d6f63
--- /dev/null
+++ b/roles/configure-ephemeral/tasks/main.yml
@@ -0,0 +1,70 @@
+---
+# On RAX hosts, we have a small root partition and a large,
+# unallocated ephemeral device attached at /dev/xvde
+- name: Set ephemeral device if /dev/xvde exists
+ when: ansible_devices["xvde"] is defined
+ set_fact:
+ ephemeral_device: "/dev/xvde"
+
+# On other providers, we have a device called "ephemeral0".
+- name: Set ephemeral device by label
+ when: ephemeral_device is undefined
+ block:
+ - name: Get ephemeral0 device node
+ command: /sbin/blkid -L ephemeral0
+ register: ephemeral0
+ # rc !=0 is expected
+ failed_when: False
+ changed_when: False
+
+ - name: Set ephemeral device if LABEL exists
+ when: "ephemeral0.rc == 0"
+ set_fact:
+ ephemeral_device: "{{ ephemeral0.stdout }}"
+
+- name: Configure additional disk (if available)
+ become: true
+ when: ephemeral_device is defined
+ block:
+ - name: Ensure ephemeral device is unmounted
+ ansible.posix.mount:
+ name: "{{ ephemeral_device }}"
+ state: "{{ item }}"
+ loop:
+ - unmounted
+ - absent
+
+ - name: Get existing partitions
+ community.general.parted:
+ device: "{{ ephemeral_device }}"
+ unit: MiB
+ state: info
+ register: ephemeral_partitions
+
+ - name: Remove any existing partitions
+ community.general.parted:
+ device: "{{ ephemeral_device }}"
+ number: "{{ item.num }}"
+ state: absent
+ loop: "{{ ephemeral_partitions.partitions }}"
+
+ - name: Create filesystem on additional disk
+ community.general.filesystem:
+ fstype: ext4
+ dev: "{{ ephemeral_device }}"
+ opts: "-L kolla"
+
+ - name: "Ensure {{ configure_ephemeral_mountpoint }} mountpoint is created"
+ ansible.builtin.file:
+ path: "{{ configure_ephemeral_mountpoint }}"
+ owner: root
+ group: root
+ state: directory
+ mode: 0755
+
+ - name: Mount additional filesystem
+ ansible.posix.mount:
+ path: "{{ configure_ephemeral_mountpoint }}"
+ src: "LABEL=kolla"
+ fstype: ext4
+ state: mounted