From 01e0ea8b4b1e2c28421686463295688816afdca2 Mon Sep 17 00:00:00 2001 From: Sandwich Date: Fri, 2 Jan 2026 13:58:01 +0100 Subject: [PATCH] Move pre-tasks into global defaults --- .ansible-lint | 2 +- main.yml | 108 --------------------------- roles/global_defaults/tasks/main.yml | 108 +++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 109 deletions(-) diff --git a/.ansible-lint b/.ansible-lint index f25316d..e4cde01 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,4 +1,4 @@ skip_list: - run-once exclude_paths: - - roles/global_defaults/defaults/main.yml + - roles/global_defaults/ diff --git a/main.yml b/main.yml index 75feea9..fbe8899 100644 --- a/main.yml +++ b/main.yml @@ -30,114 +30,6 @@ ansible.builtin.import_role: name: global_defaults - - name: Validate variables - ansible.builtin.assert: - that: - - install_type is defined and install_type in ["virtual", "physical"] - - hypervisor in ["libvirt", "proxmox", "vmware", "none"] - - >- - install_type is defined and ( - install_type == "physical" - or hypervisor in ["libvirt", "proxmox", "vmware"] - ) - - filesystem is defined and filesystem in ["btrfs", "ext4", "xfs"] - - install_drive is defined and install_drive | length > 0 - - hostname is defined and hostname | length > 0 - - >- - os is defined and os in [ - "archlinux", "almalinux", "debian11", "debian12", "debian13", "fedora", - "rhel8", "rhel9", "rhel10", "rocky", "ubuntu", "ubuntu-lts" - ] - - >- - os is defined and ( - os not in ["rhel8", "rhel9", "rhel10"] - or (rhel_iso is defined and rhel_iso | length > 0) - ) - - >- - install_type is defined and ( - install_type == "physical" - or (boot_iso is defined and boot_iso | length > 0) - ) - - >- - install_type is defined and ( - install_type == "physical" - or (vm_cpus is defined and (vm_cpus | int) > 0) - ) - - >- - install_type is defined and ( - install_type == "physical" - or (vm_size is defined and (vm_size | float) > 0) - ) - - >- - install_type is defined and ( - install_type == "physical" - or (vm_memory is defined and (vm_memory | float) > 0) - ) - - >- - install_type is defined and filesystem is defined and ( - install_type == "physical" - or ( - vm_size is defined - and ( - (filesystem == "btrfs" and (vm_size | int) >= 10) - or (filesystem != "btrfs" and (vm_size | int) >= 20) - ) - ) - ) - - >- - install_type is defined and ( - install_type == "physical" - or ( - vm_size is defined - and vm_memory is defined - and ( - (vm_size | float) - >= ( - (vm_memory | float / 1024 >= 16.0) - | ternary( - (vm_memory | float / 2048), - [vm_memory | float / 1024, 4.0] | max - ) - + 16 - ) - ) - ) - ) - - >- - vm_ip is not defined - or vm_ip | length == 0 - or (vm_nms is defined and (vm_nms | int) > 0) - fail_msg: Invalid input specified, please try again. - - - name: Set OS family flags - ansible.builtin.set_fact: - is_rhel: "{{ os | lower in ['almalinux', 'fedora', 'rhel8', 'rhel9', 'rhel10', 'rocky'] }}" - is_debian: "{{ os | lower in ['debian11', 'debian12', 'debian13', 'ubuntu', 'ubuntu-lts'] }}" - changed_when: false - - - name: Set Python interpreter for RHEL-based installers - when: - - ansible_python_interpreter is not defined - - os | lower in ["almalinux", "rhel8", "rhel9", "rhel10", "rocky"] - ansible.builtin.set_fact: - ansible_python_interpreter: /usr/bin/python3 - changed_when: false - - - name: Set SSH access - when: - - install_type == "virtual" - - hypervisor != "vmware" - ansible.builtin.set_fact: - ansible_user: "{{ user_name }}" - ansible_password: "{{ user_password }}" - ansible_become_password: "{{ user_password }}" - ansible_ssh_extra_args: "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - - - name: Set connection for VMware - when: hypervisor == "vmware" - ansible.builtin.set_fact: - ansible_connection: vmware_tools - roles: - role: virtualization when: install_type == "virtual" diff --git a/roles/global_defaults/tasks/main.yml b/roles/global_defaults/tasks/main.yml index 6f5ce42..703455b 100644 --- a/roles/global_defaults/tasks/main.yml +++ b/roles/global_defaults/tasks/main.yml @@ -3,3 +3,111 @@ ansible.builtin.debug: msg: Global defaults loaded. changed_when: false + +- name: Validate variables + ansible.builtin.assert: + that: + - install_type is defined and install_type in ["virtual", "physical"] + - hypervisor in ["libvirt", "proxmox", "vmware", "none"] + - >- + install_type is defined and ( + install_type == "physical" + or hypervisor in ["libvirt", "proxmox", "vmware"] + ) + - filesystem is defined and filesystem in ["btrfs", "ext4", "xfs"] + - install_drive is defined and install_drive | length > 0 + - hostname is defined and hostname | length > 0 + - >- + os is defined and os in [ + "archlinux", "almalinux", "debian11", "debian12", "debian13", "fedora", + "rhel8", "rhel9", "rhel10", "rocky", "ubuntu", "ubuntu-lts" + ] + - >- + os is defined and ( + os not in ["rhel8", "rhel9", "rhel10"] + or (rhel_iso is defined and rhel_iso | length > 0) + ) + - >- + install_type is defined and ( + install_type == "physical" + or (boot_iso is defined and boot_iso | length > 0) + ) + - >- + install_type is defined and ( + install_type == "physical" + or (vm_cpus is defined and (vm_cpus | int) > 0) + ) + - >- + install_type is defined and ( + install_type == "physical" + or (vm_size is defined and (vm_size | float) > 0) + ) + - >- + install_type is defined and ( + install_type == "physical" + or (vm_memory is defined and (vm_memory | float) > 0) + ) + - >- + install_type is defined and filesystem is defined and ( + install_type == "physical" + or ( + vm_size is defined + and ( + (filesystem == "btrfs" and (vm_size | int) >= 10) + or (filesystem != "btrfs" and (vm_size | int) >= 20) + ) + ) + ) + - >- + install_type is defined and ( + install_type == "physical" + or ( + vm_size is defined + and vm_memory is defined + and ( + (vm_size | float) + >= ( + (vm_memory | float / 1024 >= 16.0) + | ternary( + (vm_memory | float / 2048), + [vm_memory | float / 1024, 4.0] | max + ) + + 16 + ) + ) + ) + ) + - >- + vm_ip is not defined + or vm_ip | length == 0 + or (vm_nms is defined and (vm_nms | int) > 0) + fail_msg: Invalid input specified, please try again. + +- name: Set OS family flags + ansible.builtin.set_fact: + is_rhel: "{{ os | lower in ['almalinux', 'fedora', 'rhel8', 'rhel9', 'rhel10', 'rocky'] }}" + is_debian: "{{ os | lower in ['debian11', 'debian12', 'debian13', 'ubuntu', 'ubuntu-lts'] }}" + changed_when: false + +- name: Set Python interpreter for RHEL-based installers + when: + - ansible_python_interpreter is not defined + - os | lower in ["almalinux", "rhel8", "rhel9", "rhel10", "rocky"] + ansible.builtin.set_fact: + ansible_python_interpreter: /usr/bin/python3 + changed_when: false + +- name: Set SSH access + when: + - install_type == "virtual" + - hypervisor != "vmware" + ansible.builtin.set_fact: + ansible_user: "{{ user_name }}" + ansible_password: "{{ user_password }}" + ansible_become_password: "{{ user_password }}" + ansible_ssh_extra_args: "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + +- name: Set connection for VMware + when: hypervisor == "vmware" + ansible.builtin.set_fact: + ansible_connection: vmware_tools