diff --git a/roles/configuration/tasks/bootloader.yml b/roles/configuration/tasks/bootloader.yml index 803a923..9785e90 100644 --- a/roles/configuration/tasks/bootloader.yml +++ b/roles/configuration/tasks/bootloader.yml @@ -23,7 +23,7 @@ changed_when: configuration_bootloader_result.rc == 0 - name: Ensure lvm2 for non btrfs filesystems - when: os | lower == "archlinux" and filesystem != "btrfs" + when: os | lower == "archlinux" and system_cfg.filesystem != "btrfs" ansible.builtin.lineinfile: path: /mnt/etc/mkinitcpio.conf regexp: "^(HOOKS=.*block)(?!.*lvm2)(.*)" diff --git a/roles/configuration/tasks/fstab.yml b/roles/configuration/tasks/fstab.yml index bf67b50..4701442 100644 --- a/roles/configuration/tasks/fstab.yml +++ b/roles/configuration/tasks/fstab.yml @@ -17,7 +17,7 @@ mode: "0644" - name: Adjust XFS mount options and disable large extent - when: os in ["almalinux", "rocky", "rhel"] and filesystem == "xfs" + when: os in ["almalinux", "rocky", "rhel"] and system_cfg.filesystem == "xfs" ansible.builtin.replace: path: /mnt/etc/fstab regexp: "(xfs.*?)(attr2)" diff --git a/roles/configuration/tasks/grub.yml b/roles/configuration/tasks/grub.yml index 5c903d7..eff9c52 100644 --- a/roles/configuration/tasks/grub.yml +++ b/roles/configuration/tasks/grub.yml @@ -20,7 +20,7 @@ {{ ( partitioning_main_uuid.stdout - if (filesystem | lower) == 'btrfs' + if (system_cfg.filesystem | lower) == 'btrfs' else (partitioning_uuid_root | default([]) | first | default('')) ) | default('') @@ -36,11 +36,11 @@ else [] ) ) - if (filesystem | lower) != 'btrfs' + if (system_cfg.filesystem | lower) != 'btrfs' else [] }} grub_root_flags: >- - {{ ['rootflags=subvol=@'] if (filesystem | lower) == 'btrfs' else [] }} + {{ ['rootflags=subvol=@'] if (system_cfg.filesystem | lower) == 'btrfs' else [] }} grub_cmdline_linux_base: >- {{ (['crashkernel=auto'] + grub_lvm_args) diff --git a/roles/global_defaults/defaults/main.yml b/roles/global_defaults/defaults/main.yml index ff3ac07..fa54e92 100644 --- a/roles/global_defaults/defaults/main.yml +++ b/roles/global_defaults/defaults/main.yml @@ -21,6 +21,7 @@ system_defaults: type: "virtual" # virtual|physical os: "" version: "" + filesystem: "" name: "" id: "" cpus: 0 diff --git a/roles/global_defaults/tasks/system.yml b/roles/global_defaults/tasks/system.yml index 6524aba..0081855 100644 --- a/roles/global_defaults/tasks/system.yml +++ b/roles/global_defaults/tasks/system.yml @@ -16,6 +16,7 @@ system_raw: "{{ system_defaults | combine(system, recursive=True) }}" system_type: "{{ system_raw.type | string | lower }}" system_os_input: "{{ system_raw.os | default('') | string | lower }}" + system_filesystem_input: "{{ system_raw.filesystem | default('') | string | lower }}" system_name: >- {{ system_raw.name | string | trim @@ -100,6 +101,7 @@ type: "{{ system_type }}" os: "{{ system_os_input if system_os_input | length > 0 else ('archlinux' if system_type == 'physical' else '') }}" version: "{{ system_raw.version | default('') | string }}" + filesystem: "{{ system_filesystem_input }}" name: "{{ system_name }}" id: "{{ system_raw.id | default('') | string }}" cpus: "{{ [system_raw.cpus | default(0) | int, 0] | max }}" diff --git a/roles/global_defaults/tasks/validation.yml b/roles/global_defaults/tasks/validation.yml index ddf54b1..7ce7385 100644 --- a/roles/global_defaults/tasks/validation.yml +++ b/roles/global_defaults/tasks/validation.yml @@ -10,8 +10,8 @@ - hypervisor_cfg is mapping - hypervisor_type is defined - hypervisor_type in ["libvirt", "proxmox", "vmware", "xen", "none"] - - filesystem is defined - - filesystem in ["btrfs", "ext4", "xfs"] + - system_cfg.filesystem is defined + - system_cfg.filesystem in ["btrfs", "ext4", "xfs"] - install_drive is defined - install_drive | string | length > 0 - hostname is defined @@ -272,7 +272,7 @@ - (system_cfg.disks[0].size | float) > 0 - (system_cfg.disks[0].size | float) >= 20 - >- - filesystem != "btrfs" + system_cfg.filesystem != "btrfs" or ( (system_cfg.disks[0].size | float) >= ( diff --git a/roles/partitioning/defaults/main.yml b/roles/partitioning/defaults/main.yml index 56c3e6f..7ee8ee7 100644 --- a/roles/partitioning/defaults/main.yml +++ b/roles/partitioning/defaults/main.yml @@ -31,8 +31,8 @@ partitioning_separate_boot: >- }} partitioning_boot_fs_fstype: >- {{ - (filesystem | lower) - if (filesystem | lower) != 'btrfs' + (system_cfg.filesystem | lower) + if (system_cfg.filesystem | lower) != 'btrfs' else ('xfs' if is_rhel else 'ext4') }} partitioning_boot_fs_partition_suffix: >- diff --git a/roles/partitioning/tasks/main.yml b/roles/partitioning/tasks/main.yml index 4a81ba8..9ec1338 100644 --- a/roles/partitioning/tasks/main.yml +++ b/roles/partitioning/tasks/main.yml @@ -246,7 +246,7 @@ partitioning_luks_uuid: "{{ partitioning_luks_uuid_result.stdout | trim }}" - name: Create LVM logical volumes - when: filesystem != 'btrfs' + when: system_cfg.filesystem != 'btrfs' block: - name: Create LVM volume group community.general.lvg: @@ -432,14 +432,14 @@ - name: Create swap filesystem when: - - filesystem != 'btrfs' + - system_cfg.filesystem != 'btrfs' - system_cfg.features.swap.enabled | bool community.general.filesystem: fstype: swap dev: /dev/sys/swap - name: Create filesystem - ansible.builtin.include_tasks: "{{ filesystem }}.yml" + ansible.builtin.include_tasks: "{{ system_cfg.filesystem }}.yml" - name: Get UUID for boot filesystem ansible.builtin.command: blkid -s UUID -o value '{{ install_drive }}{{ partitioning_boot_partition_suffix }}' @@ -459,14 +459,14 @@ changed_when: false - name: Get UUID for LVM root filesystem - when: filesystem != 'btrfs' + when: system_cfg.filesystem != 'btrfs' ansible.builtin.command: blkid -s UUID -o value /dev/sys/root register: partitioning_uuid_root_result changed_when: false - name: Get UUID for LVM swap filesystem when: - - filesystem != 'btrfs' + - system_cfg.filesystem != 'btrfs' - system_cfg.features.swap.enabled | bool ansible.builtin.command: blkid -s UUID -o value /dev/sys/swap register: partitioning_uuid_swap_result @@ -474,7 +474,7 @@ - name: Get UUID for LVM home filesystem when: - - filesystem != 'btrfs' + - system_cfg.filesystem != 'btrfs' - system_cfg.features.cis.enabled ansible.builtin.command: blkid -s UUID -o value /dev/sys/home register: partitioning_uuid_home_result @@ -482,7 +482,7 @@ - name: Get UUID for LVM var filesystem when: - - filesystem != 'btrfs' + - system_cfg.filesystem != 'btrfs' - system_cfg.features.cis.enabled ansible.builtin.command: blkid -s UUID -o value /dev/sys/var register: partitioning_uuid_var_result @@ -490,7 +490,7 @@ - name: Get UUID for LVM var_log filesystem when: - - filesystem != 'btrfs' + - system_cfg.filesystem != 'btrfs' - system_cfg.features.cis.enabled ansible.builtin.command: blkid -s UUID -o value /dev/sys/var_log register: partitioning_uuid_var_log_result @@ -498,14 +498,14 @@ - name: Get UUID for LVM var_log_audit filesystem when: - - filesystem != 'btrfs' + - system_cfg.filesystem != 'btrfs' - system_cfg.features.cis.enabled ansible.builtin.command: blkid -s UUID -o value /dev/sys/var_log_audit register: partitioning_uuid_var_log_audit_result changed_when: false - name: Assign UUIDs to Variables - when: filesystem != 'btrfs' + when: system_cfg.filesystem != 'btrfs' ansible.builtin.set_fact: partitioning_uuid_root: "{{ partitioning_uuid_root_result.stdout_lines | default([]) }}" partitioning_uuid_swap: >- @@ -546,17 +546,17 @@ - >- system_cfg.features.cis.enabled or ( not system_cfg.features.cis.enabled and ( - (filesystem == 'btrfs' and item.path in ['/home', '/var/log', '/var/cache/pacman/pkg']) + (system_cfg.filesystem == 'btrfs' and item.path in ['/home', '/var/log', '/var/cache/pacman/pkg']) or (item.path not in ['/home', '/var', '/var/log', '/var/log/audit', '/var/cache/pacman/pkg']) ) ) - >- - not (item.path in ['/swap', '/var/cache/pacman/pkg'] and filesystem != 'btrfs') + not (item.path in ['/swap', '/var/cache/pacman/pkg'] and system_cfg.filesystem != 'btrfs') - system_cfg.features.swap.enabled | bool or item.path != '/swap' ansible.posix.mount: path: /mnt{{ item.path }} - src: "{{ 'UUID=' + (partitioning_main_uuid.stdout if filesystem == 'btrfs' else item.uuid) }}" - fstype: "{{ filesystem }}" + src: "{{ 'UUID=' + (partitioning_main_uuid.stdout if system_cfg.filesystem == 'btrfs' else item.uuid) }}" + fstype: "{{ system_cfg.filesystem }}" opts: "{{ item.opts }}" state: mounted loop: @@ -565,7 +565,7 @@ opts: >- {{ 'defaults' - if filesystem != 'btrfs' + if system_cfg.filesystem != 'btrfs' else [ 'rw', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@' @@ -584,7 +584,7 @@ opts: >- {{ 'defaults,nosuid,nodev' - if filesystem != 'btrfs' + if system_cfg.filesystem != 'btrfs' else [ 'rw', 'nosuid', 'nodev', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@home' @@ -595,7 +595,7 @@ opts: >- {{ 'defaults,nosuid,nodev' - if filesystem != 'btrfs' + if system_cfg.filesystem != 'btrfs' else [ 'rw', 'nosuid', 'nodev', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@var' @@ -606,7 +606,7 @@ opts: >- {{ 'defaults,nosuid,nodev,noexec' - if filesystem != 'btrfs' + if system_cfg.filesystem != 'btrfs' else [ 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@var_log' @@ -617,7 +617,7 @@ opts: >- {{ 'defaults,nosuid,nodev,noexec' - if filesystem != 'btrfs' + if system_cfg.filesystem != 'btrfs' else [ 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@pkg' @@ -628,7 +628,7 @@ opts: >- {{ 'defaults,nosuid,nodev,noexec' - if filesystem != 'btrfs' + if system_cfg.filesystem != 'btrfs' else [ 'rw', 'nosuid', 'nodev', 'noexec', 'relatime', partitioning_btrfs_compress_opt, 'ssd', 'space_cache=v2', 'discard=async', 'subvol=@var_log_audit' @@ -655,7 +655,7 @@ when: system_cfg.features.swap.enabled | bool vars: partitioning_swap_cmd: >- - {{ 'swapon /mnt/swap/swapfile' if filesystem == 'btrfs' else 'swapon -U ' + partitioning_uuid_swap[0] }} + {{ 'swapon /mnt/swap/swapfile' if system_cfg.filesystem == 'btrfs' else 'swapon -U ' + partitioning_uuid_swap[0] }} ansible.builtin.command: "{{ partitioning_swap_cmd }}" register: partitioning_swap_activate_result changed_when: partitioning_swap_activate_result.rc == 0