diff --git a/roles/bootstrap/defaults/main.yml b/roles/bootstrap/defaults/main.yml new file mode 100644 index 0000000..83d62cd --- /dev/null +++ b/roles/bootstrap/defaults/main.yml @@ -0,0 +1,15 @@ +--- +# OS → task file mapping for bootstrap dispatch. +# Each key matches a supported `os` value; value is the task file to include. +bootstrap_os_task_map: + almalinux: _dnf_family.yml + alpine: alpine.yml + archlinux: archlinux.yml + debian: debian.yml + fedora: _dnf_family.yml + opensuse: opensuse.yml + rocky: _dnf_family.yml + rhel: rhel.yml + ubuntu: ubuntu.yml + ubuntu-lts: ubuntu.yml + void: void.yml diff --git a/roles/bootstrap/tasks/_normalize.yml b/roles/bootstrap/tasks/_normalize.yml index ca5edfe..c50760c 100644 --- a/roles/bootstrap/tasks/_normalize.yml +++ b/roles/bootstrap/tasks/_normalize.yml @@ -9,16 +9,3 @@ Unsupported OS '{{ os | default("undefined") }}' for bootstrap. Supported: {{ bootstrap_os_task_map | dict2items | map(attribute='key') | join(', ') }} quiet: true - vars: - bootstrap_os_task_map: - almalinux: _dnf_family.yml - alpine: alpine.yml - archlinux: archlinux.yml - debian: debian.yml - fedora: _dnf_family.yml - opensuse: opensuse.yml - rocky: _dnf_family.yml - rhel: rhel.yml - ubuntu: ubuntu.yml - ubuntu-lts: ubuntu.yml - void: void.yml diff --git a/roles/bootstrap/tasks/main.yml b/roles/bootstrap/tasks/main.yml index d6b50ca..095e397 100644 --- a/roles/bootstrap/tasks/main.yml +++ b/roles/bootstrap/tasks/main.yml @@ -31,18 +31,6 @@ - name: Run OS-specific bootstrap process vars: - bootstrap_os_task_map: - almalinux: _dnf_family.yml - alpine: alpine.yml - archlinux: archlinux.yml - debian: debian.yml - fedora: _dnf_family.yml - opensuse: opensuse.yml - rocky: _dnf_family.yml - rhel: rhel.yml - ubuntu: ubuntu.yml - ubuntu-lts: ubuntu.yml - void: void.yml bootstrap_var_key: "{{ 'bootstrap_' + (os | replace('-lts', '') | replace('-', '_')) }}" ansible.builtin.include_tasks: "{{ bootstrap_os_task_map[os] }}" diff --git a/roles/configuration/defaults/main.yml b/roles/configuration/defaults/main.yml new file mode 100644 index 0000000..f8ab1b6 --- /dev/null +++ b/roles/configuration/defaults/main.yml @@ -0,0 +1,7 @@ +--- +# Network configuration dispatch — maps OS name to the task file +# that writes network config. Default (NetworkManager) applies to +# all OSes not explicitly listed. +configuration_network_task_map: + alpine: network_alpine.yml + void: network_void.yml diff --git a/roles/configuration/tasks/network.yml b/roles/configuration/tasks/network.yml index 23dbc53..6a4cc2a 100644 --- a/roles/configuration/tasks/network.yml +++ b/roles/configuration/tasks/network.yml @@ -30,8 +30,4 @@ fail_msg: Failed to detect any network interfaces. - name: Configure networking - vars: - configuration_network_task_map: - alpine: network_alpine.yml - void: network_void.yml ansible.builtin.include_tasks: "{{ configuration_network_task_map[os] | default('network_nm.yml') }}" diff --git a/roles/environment/defaults/main.yml b/roles/environment/defaults/main.yml new file mode 100644 index 0000000..e2f26c4 --- /dev/null +++ b/roles/environment/defaults/main.yml @@ -0,0 +1,10 @@ +--- +# Connection and timing +environment_wait_timeout: 180 +environment_wait_delay: 5 + +# Pacman installer settings +environment_parallel_downloads: 20 +environment_pacman_lock_timeout: 120 +environment_pacman_retries: 4 +environment_pacman_retry_delay: 15 diff --git a/roles/environment/tasks/_detect_live.yml b/roles/environment/tasks/_detect_live.yml index ae15d89..8f233fb 100644 --- a/roles/environment/tasks/_detect_live.yml +++ b/roles/environment/tasks/_detect_live.yml @@ -1,8 +1,8 @@ --- - name: Wait for connection ansible.builtin.wait_for_connection: - timeout: 180 - delay: 5 + timeout: "{{ environment_wait_timeout }}" + delay: "{{ environment_wait_delay }}" - name: Gather facts ansible.builtin.setup: diff --git a/roles/environment/tasks/_prepare_installer.yml b/roles/environment/tasks/_prepare_installer.yml index dfa9a97..be62742 100644 --- a/roles/environment/tasks/_prepare_installer.yml +++ b/roles/environment/tasks/_prepare_installer.yml @@ -4,14 +4,14 @@ ansible.builtin.lineinfile: path: /etc/pacman.conf regexp: ^#ParallelDownloads = - line: ParallelDownloads = 20 + line: "ParallelDownloads = {{ environment_parallel_downloads }}" - name: Wait for pacman lock to be released when: not (custom_iso | bool) ansible.builtin.wait_for: path: /var/lib/pacman/db.lck state: absent - timeout: 120 + timeout: "{{ environment_pacman_lock_timeout }}" changed_when: false - name: Setup Pacman @@ -31,8 +31,8 @@ - { name: ubuntu-keyring, os: [ubuntu, ubuntu-lts] } loop_control: label: "{{ item.name }}" - retries: 4 - delay: 15 + retries: "{{ environment_pacman_retries }}" + delay: "{{ environment_pacman_retry_delay }}" - name: Prepare /iso mount and repository for RHEL-based systems when: os == "rhel"