--- - name: Setup BTRFS block: - name: Create btrfs filesystem in main volume community.general.filesystem: dev: "{{ install_drive }}{{ main_partition_suffix }}" fstype: btrfs force: true - name: Prepare BTRFS Subvolume ansible.posix.mount: path: /mnt src: "{{ install_drive }}{{ main_partition_suffix }}" fstype: btrfs opts: rw,relatime,compress=zstd:15,ssd,space_cache=v2,discard=async state: mounted - name: Enable quotas on Btrfs filesystem ansible.builtin.command: btrfs quota enable /mnt - name: Make root subvolumes when: cis | bool or item.subvol not in ['var_log', 'var_log_audit'] ansible.builtin.command: btrfs su cr /mnt/{{ '@' if item.subvol == 'root' else '@' + item.subvol }} loop: - { subvol: root } - { subvol: home } - { subvol: var } - { subvol: var_log } - { subvol: var_log_audit } - name: Set quotas for subvolumes when: cis | bool or item.subvol not in ['var_log', 'var_log_audit'] ansible.builtin.command: btrfs qgroup limit {{ item.quota }} /mnt/{{ '@' if item.subvol == 'root' else '@' + item.subvol }} loop: - { subvol: home, quota: 2G } - name: Unmount Partition ansible.posix.mount: path: /mnt src: "{{ install_drive }}{{ main_partition_suffix }}" fstype: btrfs state: unmounted