aboutsummaryrefslogtreecommitdiff
path: root/roles/configure-ephemeral/tasks/main.yml
blob: 7d6402c30195a12382ea75e2c9829c5167c5c328 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
# 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