diff --git a/datavol.yml b/datavol.yml new file mode 100644 index 0000000..e16225a --- /dev/null +++ b/datavol.yml @@ -0,0 +1,52 @@ +- hosts: all + vars: + mkfs_package: + btrfs: btrfs-progs + ext2: e2fsprogs + ext3: e2fsprogs + ext4: e2fsprogs + xfs: xfsprogs + + tasks: + - name: ensure filesystem tools are installed + package: + name: >- + {{ + data_volumes + | map(attribute='fstype') + | map('extract', mkfs_package) + | list + }} + tags: + - install + + - name: ensure data volume filesystem exists + filesystem: + dev: '{{ item.dev }}' + fstype: '{{ item.fstype }}' + opts: '{{ item.opts|d(omit) }}' + loop: '{{ data_volumes|d([]) }}' + tags: + - mkfs + + - name: ensure data volume is mounted + mount: + path: '{{ item.mountpoint }}' + src: '{{ item.dev }}' + fstype: '{{ item.fstype }}' + opts: '{{ item.mountopts|d(omit) }}' + state: mounted + loop: '{{ data_volumes|d([]) }}' + notify: + - reload systemd + - fix data volume selinux context + + handlers: + - name: reload systemd + systemd: + daemon_reload: true + + - name: fix data volume selinux context + command: + restorecon -RF {{ item.mountpoint }} + loop: '{{ data_volumes }}'