For some reason it doesn't work in raxflex, i.e. the created filesystems
label is not seen.
Change-Id: I9c805b866ee359d2da150438ca78be25b1462988
(cherry picked from commit a6a15966aa)
70 lines
2.0 KiB
YAML
70 lines
2.0 KiB
YAML
---
|
|
# 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 }}"
|
|
|
|
- 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: "{{ ephemeral_device }}"
|
|
fstype: ext4
|
|
state: mounted
|